Pages

Tuesday, July 26, 2011

The Software Testing Life Cycle – Automation Software Testing

The Software Testing Life Cycle, (STLC), is the road map to automation success. It consists of a set of phases that define what testing activities to do and when to do them. It also enables communication and synchronization between the various groups that have input to the overall testing process. In the best of worlds the STLC parallels the Software Development Life Cycle, coordinating activities, thus providing the vehicle for a close working relationship between testing and development departments.
The following is a "meat-and-potatoes" list of name for the phases of the STLC:
  1. Planning
  2. Analysis
  3. Design
  4. Construction
  5. Testing – Initial test cycles, bug fixes and re-testing
  6. Final Testing and Implementation
  7. Post Implementation
Each phase defines five to twenty high level testing tasks or processes to prepare and execute both manual and automated testing. A few examples are in order:
  1. Planning
    • Marketing group writes a document defining the product
    • Define problem reporting procedures
    • High level test plan
    • Begin analyzing scope of project
    • Identify acceptance criteria
    • Setup automated test environment

  1. Analysis
    • Marketing and Development groups work together to write a product requirements document
    • Develop functional validation matrices based on business requirements
    • Identify which test cases make sense to automate
    • Setup database to track components of the automated testing system, i.e. reusable modules
    • Map baseline data to test cases

  1. Design
    • Development group writes a detailed document defining the architecture of the product
    • Revise test plan and cases based on changes
    • Revisit test cycle matrices and timelines
    • Develop risk assessment criteria (McCabe tools help here)
    • Formalize details of the automated testing system, i.e. file naming conventions and variables
    • Decide if any set of test cases to be automated lend themselves to a data driven/template model
    • Begin scripting automated test cases and building reusable modules
As the STLC is continually refined it will spell out the organization of the testing process. What steps need to be taken and when, to ensure that when the software is ready to test, both the manual and automated testing system will be in place and ready to go. The idea here is to start early and be ready to respond to change.
One of the biggest reasons automation fails is the lack of preparation early in the process. This is due in part to a lack of understanding of what needs to be done and when. The steps are not difficult, it is just a matter of understanding how the STLC works. It does not take any more time and effort to succeed than it does to fail.

No comments:

Post a Comment