Thursday, July 26, 2012

Software Process

Based on the experience gained over the past few years in Software Testing have put down some points to be followed to have effective testing. This can be set as a process if there is no defined process.

1. Systematic Requirement Analysis.
  •      Prioritize the requirements.
  •      List the function requirements.
  •      List the non-functional requirements.
  •      Prepare a requirement traceability metrics.
2. Use Cases.
  •      Identify the different users.
  •      Create a user profile for each category of user, including all the relevant roles the user play.
  •      Create a use case for each goal, following the use case template. Maintain the same level of  abstraction throughout the use case.
  •      Review & validate the use cases. (*Review should be done by someone other than the author* )
3. Prototype.
  •      Identify the basic requirements.
  •      Develop initial prototype.
  •      Review. (Get customer’s feedback)
  •      Revise & enhance the prototype. (*Review should be done by someone other than the author* )
4. Test Plan.
  •      All the testing activities should be mentioned in a test plan.
  •      It should define what is to be tested & what is to be overlooked.
  •      It should contain only the necessary information & nothing more.
  •      Use the standard test plan template.
  •      Review the test plan.
  •      Revise & enhance the test plan. (*Review should be done by someone other than the author*) 
* All the reviews should be done formally. The documents of comments or feedback by the reviewer should be maintained always. Revision history chart should also be maintained, so that we can trace the change made.

5. Test Cases.
  •      Good test cases should expose a maximum numbers of defects.
  •      It should cover all the functionalities of an application.
  •      A tool or a template can be used for time saving.
  •      Review the test cases.
  •      Revise & enhance the test cases. (*Review should be done by someone other than the author *)
6. Code Review.
  •      Follow the coding standards.
  •      Revise & enhance the code developed. (*Review should be done by someone other developer*)
 7. Informal Testing.
  •      There can be an informal round of testing, before the module is released for actual testing.
  •      This testing is also done by testers.
  •      This should be an informal discussion between developers & testers.
  •      This avoids more bugs to occur.    
8. Cycle 1 Testing. 
  •      Don’t waste time in testing the wrong things. Test what matters.
  •      Perform the dynamic testing in the test server.
  •      Communicate the bugs or defects.
  •      Try to get most of the bugs fixed in this version only.
9. Cycle 2 Testing.
  •      Spend more time for testing in this phase.
  •      Perform the dynamic testing in the online server.
  •      Communicate the bugs.
  •      Get all the found bugs fixed.
  •      Review the process before internal release.   
10. Internal Release.
  •      Internal releases builds up the confidence for quality.
  •      Communicate the found bugs & get it fixed immediately.
  •      Review the process before UAT.    
11.  User Acceptance Testing.
  •      Get the feedback from the client.
  •      Communicate the found bugs & get it fixed immediately.
  •      Review the process before the release of the application.   
12. Release.

No comments:

Post a Comment