An open source QA stack testing tools for agile teams Presented by Aaron Evans aarone@one-shore.com What do you mean by QA stack? tools used by: • testers • developers • customers to ensure quality including: • documentation • defect tracking • version control • build and deployment • code analysis • automated regression testing By "QA stack", I mean the collection of tools used by everyone (not just testers) to help to ensure quality. The specific stack I'll discuss includes the following general categories: • documentation • defect tracking • version control • build and deployment • code analysis • automated regression testing It could easily include documentation for requirements and features, test cases and defects, acceptance criteria and domain knowledge, environment setup and deployments. But this "stack" is specifically about moving knowledge out of documentation and into automation. Code and utilities to make sure a product is build, deployed, and tested in a consistent, repeatable way. Isn't that a broad definition of QA? Yes. Yes, but quality isn't just the job of testers. It's just that they get blamed when quality is lacking. The development stack might consist of a compiler, an IDE, various libaries, a database, and a server to deploy to, but while many of these tools are for programmers, they're not part of the product being delivered. And while developers may have and use a copy of the database or web server installed locally, adminstering those applications isn't really in their domain of expertise, but for convenience (of testing), they have to learn to use them. Ask a developer, and they'll tell you that they have to do everything. So when I talk about the testing tools for agile teams Isn't that a broad definition of QA? Why open source? What do you need? Requirements Test Cases Test Execution Test Results Defects Feature Requests Acceptance Criteria First, kill all the managers Test management Requirements management Defect management Task management Project management Document management What do you really need? Keep it simple A solid foundation Version control • CVS • Subversion • Git • Mercurial • Bazaar The most basic QA tool Defect tracking A better compiler Unit tests & Code analysis (code coverage, lint, formatting, document generation.) Getting from here to there Deployment Do it again and again Automation A framework for success Test Harness Putting it all together Continuous integration