According to Project Management Body of Knowledge (PMBOK) published by Project Management Institute (PMI), a project is a temporary endeavor to create a product or service. A project is said to be temporary because it has a well defined start date and an end date, and it does not continue for an unlimited timeframe. In this tutorial, you will learn about various phases and advantages of Project Management in Software testing.You can also refer other tutorials on various Project Management topics and the PDF Guide version of this tutorial.
Project Management in Software Testing
Similar to any software development activity, software testing has a definite start date and an end date. Therefore, you can define software testing as a project, and use project management principles and tools to manage it effectively. Any project that you undertake is essentially divided into following phases:
As soon as software is handed over to the software testing team, you start with the initiation phase. In this phase, you select a project manager. As the project manager, you review and analyze the business requirements of the software. Then, you identify the processes and procedures that need to be followed, and collect historical data, if available, that can be used as a reference when testing the software.
After understanding the project, you define the initial requirements for the project and risks involved. Next, you define measurable objectives for the project and communicate the same to the stakeholders, which includes the management and the software development teams.
Planning is the most important phase in software testing. The level of planning involved in a project determines the success level of the project. A poorly planned project is destined to be doomed.
To create a successful plan, you can further divide the planning phase into following sub-phases:
- Define Scope of the Testing
- Define a Test Strategy
- Finalize the Requirements
- Create a Work Breakdown Structure
- Estimate Test Efforts and Define the Team
- Define a Test Schedule
- Define Test Metrics
- Define and Approve a Software Test Plan
Define Scope of the Testing
One of the most important activities of a software testing project is to define the scope of the software testing and get it approved by the stake holders. A well defined and approved scope of the projects ensures that there is no misunderstanding across teams and the scope does not change very frequently.
When defining the scope of the project, you must define the software items to be tested. You must select the test items based on how the end user is expected to use the software. The software items you select to test are based on what the software intend to do.
Define a Test Strategy
Based on the scope you have defined, the next phase is to define a test strategy. Test strategy is a high level document that defines the approach you intend to implement to fulfill the objectives of the software testing. The test strategy document generally consists of the following components:
- Scope and objective of testing
- Testing tools
- Roles and responsibilities of testing teams
- Risk and mitigations
- Tracking and reporting
Finalize the Requirements
For an effective testing, you must identify tools and techniques that you intend to use for software testing. Tools include the possibility of automation based CLI or GUI based tools. Additionally, you must identify the tools that you intend to use to track and mange the project.
Create a Work Breakdown Structure
Creating a work breakdown structure (WBS) helps you to manage the project to the minutest level. Creating the work breakdown structure involves breaking the test projects into small deliverable units of work know as activities. After you have created activities, arrange these activities into a network of activities against the timeline. Arrange the activities such that these show their interdependence from start to end. Note that you can have multiple unrelated activities running at the same time.
Creating a network of the activities help you to identify the critical path of the project, which defines the time required to complete the project.
Estimate Test Efforts and Define the Team
After you have created the WBS, as a next phase, you should estimate efforts needed to complete each activity of the WBS. Make sure that you add sufficient buffer to take care of any contingency requirements. After you have estimated efforts for all activities, map the efforts on the timeline of the WBS network such that the timeline of each activity is arranged in a chronological order. The time frame calculated for the critical path is the critical time of the activity. This means that the entire project needs minimum of the critical time to complete it.
In addition to the efforts, you must also define the test teams and responsibilities of each team. Factors governing the team definition include skills of the team, attitude, and schedule of the team. To make realistic effort estimation, you must review the effort estimations with the team before finalizing it. You must add buffer time only after you have reviewed efforts with the team.
Define a Test Schedule
After mapping the estimated efforts to the WBS, you can define and communicate the test schedule to the stake holders and get it approved.
Define Test Metrics
At the beginning to the project, you must define and get the test metrics approved. Based on these metrics, you can define the quality of the software. Test metrics are measurable units and you must define acceptance criteria for the same. The acceptance criteria is a level at which deviation from the expected results of the software is allowed.
Define and Approve a Software Test Plan
Finally, you must define a software test plan and get it approved from the stakeholders. The software test plan document consists of the following components:
- What to test
- Who will test
- When to test
- How to test
After the plan is ready and approved, next phase is to implement and execute the plan. You must adhere to the defined plan. However, if there is request for changes, you must revisit the plan and get it approved.
Monitor and Control
Monitoring and controlling is an important aspect of the project as well as team management. Make sure that you keep measuring the performance against the base line performance. Always keep the communication lines open to make sure that there is no gap in communication, including between testers and developers. Additionally, make sure that you appreciate and showcase the team members who detect an important defect during the testing process.
After the testing is completed, you must officially close the project and document the lessons learned. Hand over the test report to the management and close the project. Release the resources and complete the handoff the project to the management.
Using project management in software testing has the following advantages:
- Scope management: Project management requires you to define the scope of the software testing. The scope is approved by the stake holders; therefore, there is no ambiguity in the scope of testing. As a result, there is no confusion among the stakeholders of the project.
- Time management: The WBS created for the project enables you to manage efforts across activities and define the time lines for the project.
- Cost management: The WBS of the project enables you to keep track of the project cost and make appropriate changes in case of any deviations.
- Team management: The project management tools help to manage resources better and keep track of the performance of the team members. At the same time, you can utilize the team to the optimum.
- Quality management: The acceptance criteria defined at the beginning of the testing help you to manage quality of the software product.
- Focused approach: Project management results in well defined test plan right at the beginning of the software testing. This helps the team to maintain a focused approach towards the goals of the test items.
- Communication management: A well defined communication process helps in managing communication among stake holders.
Project Management Tutorials