QA Process Ideas
The following lists QA processes that have worked/not worked for
Cal Poly software engineering teams.
The definition of "worked" is subjective; for example, some
teams have achieved minor success with the "Big Bang" integration process but
only with much angst and many sleepless nights.
QA Processes that have generally worked well
- Program Manager
Assign a specific team member to watch over requirements and ensure
that the team will meet the SRS requirements.
- Correctness
Perform lots (daily!) real builds with a robust integration test
(manual tests OK) to exercise the builds.
Build an automated unit test system; appoint a unit test manager with
authority.
Appoint a build/integration test nazi with lots of authority.
Release builds to the user and watch while he uses the system.
Schedule real Beta tests with friends and users.
- Code Standards
Appoint a team code nazi, with lots of authority and ability to
invoke consequences.
Have lots of public team code inspections. (one inspection is required)
Show code to Prof. Stearns on a regular basis.
Do some form of Pair programming with dual responsibility and equal
consequences.
- Defect Finding
Appoint a specific team member to facilitate (not do!) QA; give
person lots of authority.
Schedule inspections and feedback sessions (lots!)
Use a bug tracking tool - because bugs seem to reappear!
Wait for tests to find defects and then fix them (team probably needs
excellent regression tests
Trade systems with another team; have a defect finding party.
QA Processes that have generally not worked
- Requirements
Ask each team member to read and follow the SRS.
- Correctness
Do Big Bang integration with little focus on integration testing.
- Code Standards
Tell each team member to follow the code standards
(this has NEVER worked anywhere!)
Rewrite code to meet standards, late in the quarter.
Hope that Prof. Janzen will forget about standards since the product
works so well.
Don't show code to anyone until the end of the quarter.
- Defect Finding
Tell everyone to avoid defects.
Fix bugs as soon as you find them; don't track bugs and fixes.
Contributed by Dan Stearns
Last updated 2/22/06