4. Development
4.1. Approach of the Testing Process applying the Project Management Theory
The testing process did not have the organization that it should have had. The different phases of the testing lifecycle were completed without any monitoring or progress reports; this caused the invaluable history to be lost.
The testing process is designed depending on the Application Software that will be developed (requirements, prototype, etc). This process is unique and it should be planed carefully, this is a kind of service that will be offered together with the development.
That’s why the Testing Process can be organized using the Project Management Theory (PMBok, 2004), completing all the process groups:
1. Initiating 2. Planning 3. Executing
4. Monitoring and Controlling 5. Closing
Defining the tasks to complete in each of the nine knowledge areas:
1. Project Integration Management 2. Project Scope Management 3. Project Time Management 4. Project Cost Management 5. Project Quality Management
6. Project Human Resource Management 7. Project Communications Management 8. Project Risk Management
9. Project Procurement Management
For example
In the initiation process, the QA Testing Team needs to understand the Software or the requirements that should be tested (it depends on the project needs). Having this information, the Technical Lead can make an estimation based on the customer’s needs and the standards, doing a preliminary approach (How should this software be tested? How will the QA Team perform the testing?) of the testing, adding the basic information that this estimation must have.
In the Planning process, the test plan should be created; this document has the information for planning the testing process for a Development Project. Here, the team that will work on this project, the training, and the Hardware and Software required are defined. Moreover, the testing approach (What should be tested or not? How will the team perform the testing?). The schedule and the roles/responsibilities are also defined.
In the execution process, the test cases3 are created and executed as the main activities.
In the Monitor and Control process, the QA Project Manager is in charge of guaranteeing that the tasks are on schedule, and that the deliverables for the QA Team are on time, corrected and completed to start each task correctly. The QA Project Manager acts as a catalyst to resolve project problems and conflicts (escalating when necessary), assess, strengths and weaknesses at project completion, and documents knowledge gained for his or her next project. Furthermore, the QA Project Manager ensures that effected teams are
involved and informed as early as possible in the project management process, develops detailed project schedules, resource plans, and status progress reports, contributes to the effectiveness of a team, ensures that the Development Project Manager keeps the QA Testing team posted with the latest updates, ensures that all the documentation is being made, and that the procedures are being followed with the Isthmus standards.
In the closing process, the QA Project Manager ensures that the product has been tested as planned and has accomplished all the key factors to release the product, likewise the lessons learned should be gathered and applied to the next testing process.
Regarding the nine knowledge areas, there are several aspects of the testing process that fit into them. For example:
4.1.1. Project Integration Management
There should be harmony in the phases and the control of the testing process. This harmony should be monitored and controlled and must met the requirements that should be defined in the next knowledge areas.
This process is part of the Software Development Project and there should be a strong communication between the different processes to keep updated if there are any changes in the project.
4.1.2. Project Scope Management
The test plan defines the scope that the testing should have for particular Software (What should be or not tested? and how?). However, the QA Team
does not do this kind of documentation least the approach of the testing to do the preliminary estimation.
The preliminary testing approach is one of the most important parts that should be defined before the estimation.
4.1.3. Project Time Management
There are several activities in the testing process that should be organized into phases and should be estimated in order to gather information as historical data to use it in future projects. Every task should have estimation depending on the complexity and the software itself, with this information metrics and history can be gathered.
The testing process should have milestones and deadlines in order to perform the tasks and plan ahead to take corrective or preventive actions. In this way, the follow-up and the management are easier to perform.
There should be a measure to see if the QA Team is behind or on schedule; also the measure will help know when and what activities should be completed at a certain point.
4.1.4. Project Cost Management
The estimation that the Technical Lead and the QA Project Manager did at the beginning should calculate the amount of work per QA Tester that must be carried out in the testing process.
This estimation should follow several criteria and depending on the person who estimates, it could be very optimistic or pessimistic.
It is essential to create an estimation procedure with the basic information that should be taken into consideration and that must be included in the schedule.
Also, the QA Tech lead must think about the tentative team that could be doing this job.
4.1.5. Project Quality Management
There should be defined metrics or key factors to know if the Software accomplishes the minimum requirements to be tested and then released to the customer.
There should be standards for the Test Cases Design; in this moment, it depends on the QA Tester that does it.
It is essential to define metrics and the basic criteria that the Software must meet in order to release it to the customer.
There should be metrics to improve the current process of how the working hours are being tracked in order to keep updated on the progress and plan ahead.
4.1.6. Project Human Resource Management
There should be training programs to improve the hard and soft skills of the QA Team.
There should be roles and responsibilities defined for each team member in the testing process.
Defining those aspects to improve the effectiveness of the team members in this process is necessary.
4.1.7. Project Communications Management
There should be a Communication Path between Development Project Managers and QA Project Managers. They don’t know how to coordinate with each other or what is needed and when.
It is important to define the correct form to coordinate between the both Project managers, what the QA PM needs to know and what the Dev PM needs to deliver so QA Testing can perform the activities without any delay.
4.1.8. Project Risk Management
There should be information about the possible risks that could be faced during the testing process. There should be tracking of these kinds of situations in the different testing phases.
There should be a procedure that the Technical Leads follow; for example filling out a form when a risk is happening and documenting the corrective and the preventive actions.
This form could be a matrix that should be updated and has to include all the possible risks with its probability, impact, action, etc.
4.1.9. Project Procurement Management
There should be Software and Hardware resources to perform testing activities.
It is essential to create proposals that have the minimum requirements in Software, Hardware and Trainings for the QA Testing Team.
The trainings should include the new tendencies of the testing Software.
The Hardware and Software should meet these expectations in parallel with the trainings. These resources should be able to support the new techniques taught in the trainings.
There is a tracking tool that can help gather information for metrics but the projects are disorganized and the tasks need to be redefined as it was mentioned earlier.