I have been a professional software tester in various capacities since 2005. In my current role, I am a consulting software tester and writer working with Excelon Development. Outside of work, I am currently serving on the Association For Software Testing Board of Directors as VP of Education helping to facilitate and develop projects like BBST and WHOSE. I am also a student in the Miagi-Do school of software testing, and facilitate sessions for Weekend Testing Americas.
I am deeply interested in software testing and delivery, and also helping organizations fix problems in measurement and metrics programs.
A kata is a small programming task you build a solution to. The point is to develop programming skill through familiarity with programming patterns, which is a useful practice for testers today. You’ll learn about software development, testing, continuous integration, exploration—and even how to be a better person.
Many companies have some notion of an ideal tester-to-developer ratio, or the number of testers they need for every certain number of developers. It may seem like a superficial standard, but it's rooted in a very real need to understand staffing requirements and budgets. Let's dig deeper into the team balance.
People using behavior-driven development (BDD) say conversation is the most important part of the process. They use a “given-when-then” format to describe the current state, an action that is supposed to occur, and what results to expect. But if that structure isn't working for your team, don't restrain discussion.
Building a test automation strategy involves all members of the technical team, layering tests throughout the technology stack, and using this approach to design better software and catch simple problems earlier in the development cycle. But working like that requires a shift in mindset across the organization.
There's a recent trend in having generalists on the software team—there are no developers or testers, only "team members." The idea of the two roles learning from each other is a good one, but it's usually a one-way street: Testers learn to write production code or test tooling, but no one focuses on deep testing.
We use test design techniques to answer the questions “What do I need to test?” and “What tests should I perform?” We try to ensure test coverage during test automation too, except that choosing poorly creates slower builds and unreliable information about product quality. Here are some guidelines for test selection.
Pair programming generally involves two programmers working on a single change from start to finish. You can augment this pattern by adding a test specialist, so you can test-drive feature changes first and the tester can ask questions and guide test and code design. What you get is quality built in from the start.