Testing start process has got 4 main phases namely:
– Requirements analysis
– Programming and construction
– Operation and maintenance
In this article we shall see the fourth phase i.e., the operation and maintenance phase in detail.
1. Making changes to the program under testing is a frequent thing in the development cycle.
2. A more common thing is testing the application again after the changes have been made.
3. Things like extensions, corrections and modifications are common for even the small programs and now you can imagine how much maintenance might be required by the larger programs.
4. Doing testing again and again for the sake of maintenance is known as the regression testing.
5. The testers should be ready with the following 3 things from the original program:
– Test set
– Test plan
– Test results
6. Making modifications to the program is perhaps the only way to accommodate the changes made to a program.
7. But once a modification is introduced in one part of the program, it is a usual phenomenon for the other parts of the program to be left affected by that modification.
8. To check the affect of the modification on the other parts of the program regressions testing is a mandatory thing.
9. Once you are done with the regression testing, you should not forget to make appropriate updates in the test documentation and program as well.
10. The modifications which are made to the software system or application after the software has been delivered fall under maintenance.
11. Maintenance is much required to keep the application software going with the same performance, quality and other aspects.
12. Maintenance involves fixing the defects – most of us have this kind of perception.
13. However, most of the maintenance is not meant for corrective reasons.
14. There are basically two types of management issues namely:
– Managerial issues and
– Technical issues
Managerial issues include the following:
– Alignment with customer priorities
– Estimating maintenance costs
– Staffing and so on.
Technical issues include the following:
– Impact analysis
– Limited understanding
– Measurement of maintainability and so on.
Categories of Maintenance Activities
According to the Lientz and Swanson the maintenance activities can be classified in to the following 4 categories:
1. Perfective Activities
These activities involve implementation of the changed or new user requirements which are concerned with the functional enhancements of the software system or application.
2. Preventive Activities
These activities involve increasing the reliability as well as the maintainability of the software system or application so as to avoid many of the potential problems.
3. Adaptive Activities
These activities involve making modifications to the software system or application so as to make it capable of coping with the changes made to environment of the software.
4. Corrective Activities
These activities involve fixing and diagnostics of the errors that are reported by the users.
For the analysis of the new requirements contribution from the end users in the form of feedback is very much necessary. This phase occupies a larger part of the testing start process as well as of the costs. A lack of maintenance can cause a lack of business opportunities since the market is ever changing and demands the same thing from the software systems and applications as a part of the competition.
What are different Maintenance Factors?
Below given are some of the maintenance factors:
– Maintenance experts
– Table driven variables and data
– Special search engines
– Re engineering tools
– Reverse engineering tools
– Defect tracking tools
– Automated change control tools
– Quality measurements
– Regression test libraries
– Annual training
– Help desk automation
– On line defect reporting
– Ease of use
– High team morale
– Measurement of user satisfaction
– Productivity measurements
– No error prone modules
– High management experience
– Excellent response time
– Formal base code inspections
– Unpaid overtime
– Mass update specialists
– Complexity analysis tools
– High level programming languages
– Code restructuring tools
– Low complexity of the base code
– High staff experience