In part one of our Learning for Agile Testers series, we addressed general "thinking" skills that go beyond technical competence and how learning these enhances the value you contribute. In part two, we discuss some specific technical skills that benefit testers and how to acquire them.
For automation to succeed, we need to apply good design practices. For example, we strive to keep each automated test to a single, clear purpose and extract duplication into macros and modules. Our goal is to make it easy to diagnose test failures and change the tests in only one place when the code changes. When testers collaborate with programmers and other team members, this is much easier to accomplish.
New-and-improved tools are available to help agile teams improve software development.
Lisa’s Story: Back in 2003, my team had zero test automation and no automated build process, but we knew it had to be our number-one priority. Our system administrator researched build tools, and we decided to use CruiseControl. Meanwhile, I was evaluating GUI test tools, and we decided to use Canoo WebTest, partly because it integrated seamlessly with CruiseControl. My previous teams had continuous integration (CI), but I wanted to learn more, so I read the CI article on Martin Fowler's website  and we used his guidelines to set up our own. As a team, we have worked to keep up with the latest CI practices and tools, and our build process continues to evolve and improve.
Learn how to evaluate and choose the right tools, so you can help your team create maintainable automated regression tests. You can free up time for essential testing activities such as exploratory testing.
Acceptance Test-driven Development
Communication skills and good domain understanding enable testers to help business experts give good examples of both desired and undesired system behavior. We can turn these examples into tests that help the programmers understand what code to write. This is called acceptance test-driven development, and it is a major step toward building quality into the code and preventing defects. When we automate the acceptance and story tests during coding using a collaborative test automation tool, such as FitNesse, the tests can immediately be added to the regression suite. This helps testing "keep up" with programming.
Some of us are auditory learners—we learn by listening. Some of us are visual learners—we need to see pictures. And then there are those of us who need to do—we call that kinaesthetic learning . Many times we need to take in information in more than one way. For example, Janet is an auditory learner, but she needs to practice skills to "set" them. When she tries to get a concept across, Janet needs to draw it out to help explain. Understand your style so you can get the best out of each learning experience.
Emotional aspects of learning have a big impact. We all have blind spots that may prevent us from learning or triggers where we shut down and don't hear the message anymore. To learn and question, we need a safe environment. Keep your emotional "hot buttons" in mind and focus on what you can learn from instructors, material, or teammates to enhance your abilities.
A good mentor can give you guidance when you don't even realize you need it. Mentors with different backgrounds or from other industries besides testing and software development might work best with your learning style. Don't limit yourself to coaches, mentors, and instructors who work specifically in software testing.
Janet's Story: When Lisa and I started developing and teaching our agile testing course, I began to read about teaching strategies. I picked up a few tips from the books and applied them. I also watched other instructors and tried to find the style that suited me. However, one of the people I turned to the most to mentor