Software Testing Strategies

Software testing belongs to a wider topic, Verification and Validation, where testing procedures try to achieve these goals.

  • Verification: Check whether we are building the product right
  • Validation: Whether we are building the right product

Some authors propose several strategies to improve software testing results:

  • Quantify Requirements long before the testing begins: So testers can measure how close the product is to the client’s idea.
  • Specify testing goals: Time between failures, cost of fixing a failure, etc
  • Understand the client’s behaviour and develop a profile:¬† Focus software testing on its real usage
  • Testing plan featuring ‘Quick Testing Cycles’
  • Self-ControlProduct: Failure detection
  • Formal Testing Techniques: (Alright, they might be cool but too expensive)
  • Continuous Integration

 Strategies for Testing Software

Unit Testing:

  • Verification of each module to check whether it implements the contract it relays on.
  • Since some other components it depends on might not be yet available, some interface simulation must be developed.

Integration Testing:

  • The goal of this process is to test the interaction between modules and prevent any problema when interconecting interfaces
  • Top-Botton Aproach needs to generate simulators for no yet available modules
  • Bottom-Up Approach tests first low-level modules and keeps adding higher-level ones so no simulation is needed
  • Regression Tests are needed to be sure that when some modules has been modified all other keeps working ok
  • Smoke Testing is a lightweight tests which aims to detect problem in a early stage. It must be tested daily

Validation

  • Focuses to check whether the product stays close to the requirements
  • Uses Alpha (developer + user) and Beta (only user) tests

 

2 thoughts on “Software Testing Strategies

  1. >Formal Testing Techniques: (Alright, they might be cool but too expensive)

    Why? Expensive in what sense?

Comments are closed.