Testing for Programmers
You will learn how to deal with testing tasks that are part of the development process effectively and in accordance with the development process at hand.
From the popularity of the new agile methodologies that emphasize a „test first“ approach to programming, to the long-established importance of solid programmer testing before handing the system to an independent test team, it’s clear that programmers need to understand the fundamentals of unit and integration testing. What are the key techniques, skills and ideas programmers need? Based on professional experience and a survey of techniques, the course, developed by Rex Black, will introduce programmers to successful unit and integration testing techniques.
Through presentation, discussion and hands-on exercises attendees will learn to:
- Design and develop tests based on expected behavior (black box), using various techniques
- Measure and enhance test coverage based on implementation details (white box), using various techniques
- Perform effective and efficient reviews
- Understand how testing fits into the development lifecycle
- Design and develop appropriate integration tests, using various techniques
- Select appropriate unit and integration test automation strategies, using tools like:
- API test harnesses (e.g. xUnit)
- CLI test scripts (e.g. Korn-shell)
- GUI „screen-scrapers“ (e.g. QuickTest Professional)
- Introductions, objectives and overview
- Fundamental black box tests
- Advanced black box tests
- White box coverage and techniques
- Requirements, design and code reviews
- Programmer testing in the development process
- Automated testing options
The units tested in the course are written in C or C++, using both procedural and object-oriented techniques. Each has known bugs hiding in it. Clients may choose to customize the course by supplying their own code for testing.
In addition to their course material, attendees will recieve the following documentation:
- A test requirement catalog containing general-purpose clues (developer version) that are useful in a wide range of programs.
- A set of scripts and programs which are used to demonstrate the topics which are described (corrupter, ooticketcalc, ootree, pairs, and triangle)
- Business Analytiker
- Requirements Engineers
- System Architects