The Test Discipline

The goal of this discipline is to perform an objective evaluation to ensure quality. This includes finding defects, validating that the system works as designed, and verifying that the requirements are met.

 

Workflow

 

Tips

 

Figure 1. The FLOOT lifecycle.

 

Phase by Phase

Phase Activities
Inception Initial test planning.  Should be very high-level at first.  The main goal is to identify how much testing you'll need to do, who will be responsible for it, the level of stakeholder participation required, and the types of tools and environments required (an Environment discipline issue).

Review initial project management work products.  Towards the end of this phase the initial project plan, vision, and so on should be available.  These work products are often reviewed, typically as part of the milestone review, by key project stakeholders.

Review initial models.  A high-level, initial requirements model, and perhaps even an initial architecture model, should be produced by your modeling efforts.  You may choose to review this work with stakeholders, particularly if you want to communicate the scope and potential architecture of your system to a wider range of people than were actively involved in the development of the models.

Elaboration Validate the architecture.  You should take a test-driven development (TDD) approach to building your technical prototype which proves the architecture of your system.  An important aspect of the milestone review is the validation of the architecture, which might be something as simple as presenting an overview of the architecture and the results of your prototyping efforts to your stakeholders.  Or, it might be something as complex as a formal review of all your work during this phase. 

Evolve your test model.  Your team will develop a regression test suite, comprised of unit tests from your test driven development (TDD) efforts in implementation, your acceptance tests from your modeling efforts, and your system tests (e.g. for function, integration, load, ... testing).  You may also need to maintain traceability between your requirements, tests, and source code to show how you have validated the implemented requirements.  At this point your defect reports would simply be the output of your test suite.

Construction Test the software.  In addition to unit testing by developers you need to do installation testing of your deployment scripts, system testing efforts such as load/stress testing and function testing, and user acceptance testing.  Because your software evolves throughout your projects so will your test suite.  The more often you promote your code into a pre-production test environment, and then test it appropriately, the better your Transition phase testing activities will be.

Evolve your test model.  See above.

Transition Validate the system.  Your focus will be on "testing in the large" activities such as system testing, integration testing, acceptance testing, and pilot/beta testing.  Your goal is to fully test the system within your pre-production testing environment(s).

Validate the documentation.  Your system documentation (system overview, user, support, and operations documentation), and your training materials will need to be validated.  This can be done in reviews or better yet as part of your pilot/beta testing.

Finalize your test model.  You will continue to run your regression test suite, and update it as needed, until your system is ready to be deployed into production.  Your defect reporting will likely become more formal, the found defects will likely be recorded, along with appropriate details, so that developers can implement fixes.

 

Suggested Reading



Page last updated: May 13, 2006

This page is tailored with permission from Ambysoft Inc.'s Agile UP Product

Original page is Copyright © 2005-2006 Ambysoft Inc.