In the recently past two projects I have been involved with software testing. Lots of things learned in these experiences. Here are some lessons learned that I want to share with you all.
- Define the testing levels you are going to use for the project: unit testing, integration testing, system testing or user acceptance testing (UAT). Depending on the kind of project you might not need all of them.
- Have experienced resources in testing efforts define a reasonable schedule for each testing level.
- Define the staff that is going to be participating in each testing level. Their responsibilities should be very clear.
- Define you exit criteria for each testing phase, especially for UAT. Get the client involved in the definition of the exit criteria for UAT.
- Prepare scenarios and test scripts for the testers. The scripts should be clear on the goal of each step and expected results.
- Have the users define the most common scenarios to test. Focus your effort in define test scenarios and scripts to address these common business scenarios.
- Specially for User Acceptance Testing make sure that the test scripts are very clear, with print-out materials, using figures if possible to make every step understandable for the testers since they are might not be familiar with the new software product.
- Conduct a quick demo of the main features of the software product so the UAT testers get familiar with it.
- Make sure all equipment to be used during testing is ready: environment, credentials, computers, access to database, etc.
- Define and communicate a process and tool for tracking and reporting testing results.
- Define and communicate a process and tool to track defects detected during testing.
- Reinforce use of testing and defects process defined while executing testing.
- Conduct quick follow up meetings everyday, in the morning or at the end of the day to review defects and discuss potential solutions.