How to Improve Testing


I work in a company that does internal software development for users inside the organization, so most of my experience is specific to software development projects, database development projects, and general IT project management. During the testing phase of these software development projects, we typically experience the following problems:

  1. Our development team expends approximately 20% to 25% of the overall development effort in the bug-fixing phase.
  2. Our project team discovers a lot of missing functionality during the testing phase.
  3. Quality assurance (QA) and development teams have different mindsets, so they usually understand the same feature in different ways.
  4. Test cases written by QA are a conversion of a software requirements specifications document, usually converted into an excel format.
  5. During and after the coding phase, the developer doesn’t often test the application himself and instead leaves everything for QA to evaluate. He tends to believe bug identification isa task for QA and that the developer should only be responsible for fixing reported bugs.

I think the software testing cycle usually works on the 80:20 rule: Eighty percent of the project takes 50% of the allocated time, while the remaining 20% takes the other 50% of the time. After expending a lot thought on this process, I have some solutions that may reduce the testing and bug fixing cycle:

  1. Let the QA and development teams both review the requirements and get necessary clarifications from the client. This will prevent different interpretations of the requirements, and make the testing process shorter.
  2. Ask the developer to give a presentation of his project understanding to QA and his project lead. This will verify the developer has the same understanding as the other members, so there is less opportunity for mistakes or misunderstandings as the project moves into testing.
  3. Have QA prepare the test cases and share them with the developers as early as possible. One team creates the test cases, and that is the same team that will evaluate the test cases while it is being actively tested.
  4. Ensure test cases cover the functionality as well as the user cases and scenarios.
  5. Have the developer also review and log defects. The developer should be involved in the process and communicating directly with the QA team.
  6. After the completion of the coding phase, ask the developer to run high priority test cases prepared by QA. This makes sure the developer has completed basic testing and understands what the high priority items are and has a better understanding of how testing is performed.
  7. The developer should submit the test log to QA.
  8. QA shall start the formal testing. QA conducts the testing and determines what is the pass/fail criteria.
  9. Each discovered bug should have a corresponding test case ID. If the test case doesn’t exist for the bug, then QA should add a new test case for it. This will ensure the test cases have covered all the use cases.
  10. In the test log for each failed test case, enter the bug ID. This will ensure all bugs are raised and tracked to closure.
  11. Perform the Root Cause Analysis (RCA) for each bug and improve the coding process.
  12. Track the bugs raised by QA versus the bugs raised in user acceptance testing or bugs raised in production.
  13. Test cases should be data-oriented, and QA should be trained enough to write simple SQL (Structured Query Language) queries. Bugs should be accompanied by evidence, not general statements or simple screen shots.
  14. The test log should show the number of rounds executed with the number of test cases that have failed, passed or have not been executed for each round of testing. You should track improvements in testing trends over the entire testing cycle, reporting on the trends to indicate if the bugs are getting better or worse.
  15. Track the actual effort spent in the testing and bug fixing phases to better plan for the next module or project. If you can identify the development effort or developer that needs improvement, don’t be shy about recommending changes.

One thought on “How to Improve Testing”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s