Loading ...
Sorry, an error occurred while loading the content.

Re: [aa-ftt] Java Class

Expand Messages
  • Jeff Morgan
    Dave, You are making a very good point. Each time you move to a higher level language your productivity increases significantly. That is the reason a few of
    Message 1 of 35 , Dec 30, 2011
    • 0 Attachment

      You are making a very good point.  Each time you move to a higher
      level language your productivity increases significantly.  That is the reason
      a few of us are trying to suggest a language that is even higher level and
      simpler than Java.


      On Fri, Dec 30, 2011 at 8:10 AM, Dave Rooney <dave.rooney@...> wrote:

      Hi folks,

      I've spent most of the last two years coaching in C/C++ environment, and one where C and C++ weren't used very well.  I would be *thrilled* if they used Java, warts, age spots and all. :)

      "and a smidgeon of Republican"

      Dude, you slay me!


      Dave Rooney | Agile Coach and Co-founder
      Westboro Systems - Agile Coaching, Training, Organizational Transformation.
      Blog | Twitter | LinkedIn 

      On 2011-12-30, at 7:40 AM, Patrick Wilson-Welsh wrote:

      Hello Lisa and everyone: 

      I'm the worst lurker on the list, and now I too need to pitch in. I know Java well, and I too would wish the programmers would be willing to learn Ruby. Ruby is vastly better, in my judgement. And I suggest it will not hurt the testers to learn some Java, which is the COBOL of our age. 

      But mainly for the same reasons I speak a little French, a little Spanish, a little British, and a smidgeon of Republican: to win trust in the local argot. 

      Because mostly this thread calls to mind the problems that naturally arise from too deep an artificial divide between testing-programmers and production-programmers. Too much like an international border. Lisa you and   Janet have written eloquently about it. 

      By all means everyone go polyglot. Nothing but good comes of it. 

      But if the goals are learning and communication and trust building, how about if the testers learn Java from the local Java experts, and the programmers learn Ruby from the local Ruby experts? 

      Is that even possible, Lisa? What are your political and interpersonal and silo constraints? They form our real context here, yes?


      Sent from a tiny devise with a tiny keyboard. 

      On Dec 29, 2011, at 9:52 PM, Lisa Crispin <lisa.crispin@...> wrote:

      Hi Charley,
      I like Ruby, and I've had a mental block for learning Java, it just doesn't make any sense to me.

      I get a lot of benefit from our Ruby/Watir/Test/Unit scripts. Our Java programmers are perfectly capable of coding in Ruby, and we've thought about trying out the latest Watir/Webdriver version to see if it solves our latest GUI automation issues. But, the Java programmers don't seem to like to switch gears between Java and Ruby. So, it seems like using a Java framework with a Selenium driver might be the way to go. And in that case, it seems like we testers ought to be more knowledgeable about Java, even if the programmers are doing some kind of page object approach with the framework, we might need to still write some Java code.

      But I am speaking in complete ignorance, not knowing Java! 
      -- Lisa

      On Thu, Dec 29, 2011 at 5:05 PM, Charley Baker <charley.baker@...> wrote:

      Why does the team need to know Java for their tests. Familiarity is great and knowing the basics of programming is fine. I'm slightly biased in teaching Ruby to devs, qa and anyone who listens. That's been on Java, .Net and other teams. 



      On Thu, Dec 29, 2011 at 1:34 PM, Lisa Crispin <lisa.crispin@...> wrote:

      Gosh, George, I didn't even think of Jeff, and he's right down the road from us. Thank you!

      On Thu, Dec 29, 2011 at 12:59 PM, George Dinwiddie <lists@...> wrote:

      I would suggest talking with Jeff Langr. He's got a 5-day class 
      (http://langrsoft.com/index.php/agile-java/training) but could probably 
      do something custom if that's not what you want.

      - George

      On 12/28/11 7:06 PM, g_ziebold wrote:
      > I have a QA team that I'm looking to get trained in writing Java code
      > for our automation framework. The hope was to do it at the
      > Oracle/Sun campus in CO, but it doesn't appear they offer the classes
      > anymore on that particular campus. I have a team of 4 people so I
      > need the training to done locally here in Colorado. Any suggestions
      > are greatly appreciated!

      * George Dinwiddie * http://blog.gdinwiddie.com
      Software Development http://www.idiacomputing.com
      Consultant and Coach http://www.agilemaryland.org

      Lisa Crispin
      Co-author with Janet Gregory, _Agile Testing: A Practical Guide for Testers and Agile Teams_ (Addison-Wesley 2009)
      Contributor to _Beautiful Testing_ (O'Reilly 2009)
      @lisacrispin on Twitter

      Lisa Crispin
      Co-author with Janet Gregory, _Agile Testing: A Practical Guide for Testers and Agile Teams_ (Addison-Wesley 2009)
      Contributor to _Beautiful Testing_ (O'Reilly 2009)
      @lisacrispin on Twitter

    • Dave Liebreich
      +1 from me, too. Very well done, David. If you can get to this point, you can have discussions about how to organize, factor, and format the tests to more
      Message 35 of 35 , Dec 31, 2011
      • 0 Attachment
        +1 from me, too. Very well done, David.

        If you can get to this point, you can have discussions about how to organize, factor, and format the tests to more easily detect gaps and duplication.

        If you can't get to this point, then you have other more important problems to solve. <wry grin>


        On Dec 31, 2011, at 13:30, David Vydra <david@...> wrote:

        What a fantastic thread to close the year with! Lots of good stuff here. I don’t feel comfortable rendering advice to Geoff because I don’t know the context of his shop, but let me share my findings from the last 2.5 years working on “Agile” large enterprise projects.

        Here is what I have learned so far:

        Before even getting in the arguments of what language to use, make sure your testers can get comfortable with version control. Apparently most have had years of experience with Excel and shared drives, so using version control was a much bigger issue than any of us “programmers” anticipated and we had to backtrack and provide training and support. In the “Lean Startup” parlance this was the first pivot.

        Even with a simple framework and coaching testers had problems writing tests from scratch -- even when their resume said Masters in CS! if they wrote tests from scratch the code was not maintainable without severe refactoring -- there is a huge jump in skill from simple procedural programming to proper use of OO.

        So the way forward is collaboration and the next pivot is to break the distinction between production and test code in terms of ownership. Developers own the code! Its that simple. If a test breaks developers have to jump on it right away. If the code is difficult to maintain, its developers’ problem. The goal is to the the right number of automated tests that the team needs in order to ship at a level of quality that satisfied business objectives. At the same time developers need to write test code in a way that is accessible to testers so they can take advantage of grow this resource -- the trick is to separate the “what” from the “how”. Actually this is how “clean” code should be written, its just that programmers can muddle through poorly written code and testers usually can’t.

        How do we get testers involved in the code? I think that sending them to a typical training course designed for programmers is a bad idea. It can just reinforce their fears of programming. Its much better to start with developer/tester pairing (of course a coach can really help with this part). Lets take a look at a plausible interaction:

        David is a senior developer. Lisa is a senior tester. Both are veterans of several enterprise projects. The project today is an insurance policy management system.

        David: “Lisa here is the code I wrote to test adding a new car to the policy”

        //use Jane and Buick sample data for this test
          PersonalPolicy policy =
            PersonalPolicyBuilder.ownedBy(Jane_Smith() );
          policy.addCar( BUICK_2000().withComprehensiveCoverage()
            .withDeductibleOf( 500 )
            .withMedicalLimit( 10000));
          assertThat( policy.totalPremium(), equals( 765.00));

        They run the test using Selenium/WebDriver/IE and all looks good. Lisa asks: “I need to see how the system looks when there is more cars that can fit on one page (only 3 cars can fit on the first page). David: “No problem” David modifies the code by adding 3 more cars to the policy.

        policy.addCar( Chevy_2010().withComprehensiveCoverage()
            .withDeductibleOf( 500 )
            .withMedicalLimit( 10000));
        policy.addCar( Totoya_2010().withComprehensiveCoverage()
            .withDeductibleOf( 500 )
            .withMedicalLimit( 10000));
        policy.addCar( Mazda_2010().withComprehensiveCoverage()
            .withDeductibleOf( 500 )
            .withMedicalLimit( 10000));

        This time we run the test without the UI for speed because we want to examine the end result. Sure enough when we press the “Next Page” link we get a NullPointerException. Hooray for pair exploratory testing! Lisa checks in the the new test as “addFourCarsToPlocy()”

        The pairing session is over. Lisa leaves to file the bug that is now easily reproducible. After the bug is filed, Lisa checks out the latest version of the code and starts playing with the deductible amount. She makes a copy of the previous test and changes the deductible to ‘-500’

        policy.addCar( Mazda_2010().withComprehensiveCoverage()
            .withDeductibleOf( -500 )
            .withMedicalLimit( 10000));

        Another exception! The system has not been tested for negative deductible. Lisa files another bug with tag NEEDS_UNIT_TEST. Next she runs the working test using Firefox and Chrome....

        As you can see from the above example Lisa has been programming in Java to speed up the testing process. She had no problem writing in Java because it has been designed and factored in a way that separates the “what” from the “how”. Lisa is not worried that at this point she is just beginning her journey into Java programming because she feels supported by developers and she can learn programming at an appropriate pace while constantly adding value to the project as a tester.

        David is happy with the setup as well. He has great respect for Lisa’s domain knowledge and testing skills. He feels she ‘has his back’ and he can worry about deep technical issues on the project. David like that the tests are written in Java, not because its the best language, but because switching languages is painful, the Java IDEs are world class and he knows how to ‘milk’ their powerful refactoring features to effortlessly refactor the code towards an optimal design.

        In conclusion, I will say that the biggest problem I observed (at least in the Bay Area) is the difficulty of hiring testers who can cut it in the enterprise space in terms of becoming recognised experts in the domain and having decent testing skills. If you can find and hire good testers, getting them to collaborate with developers is typically not a problem using the approach I described above whatever the language.


        On Sat, Dec 31, 2011 at 1:11 AM, Mohinder <mohinder.khosla@...> wrote:

        If you are looking for inspiration then read the article entitled Teach Tourself Programming in 10 Years http://www.readability.com/read?url=http://norvig.com/21-days.html
        With kind regards,

        Mohinder Khosla, PhD

      Your message has been successfully submitted and would be delivered to recipients shortly.