Maintenance Programmer Skills – Parallel Testing 3/3
Creating test harnesses if needed, or utilizing other drivers of test execution is important for executing the code being tested if it is not easily callable in a frequently repeated way. One of my own maxims: the easier it is to test, the more you will test, and the better results you will obtain. The more the manual overhead required to execute a test, the less the programmer will actually do so. It is therefore, an important skill to be able to creatively find ways to initiate program execution at non-standard points and stop it at non-standard points in order exercise modified...
read moreMaintenance Programmer Skills – Parallel Testing 2/3
…continuing from part 1/3… Defining the required scope of the parallel tests comes back to, again, system-level program slicing, both backward and forward. Backward in order to identify all the code paths that lead to execution of all modified code being tested, and forward in order to identify all downstream paths and outputs that may be effected by all modified code. Another principal the programmer should be aware of is error localization. This means that the programmer wants to be sure that some of the tests will be oriented specifically to initiating and monitoring the tests...
read moreMaintenance Programmer Skills – Parallel Testing 1/3
What are the techniques that can be used for regression testing? How important is this question? Let me quote from The Mythical Man-Month by Frederick Brooks, “Also as a consequence of the introduction of new bugs, program maintenance requires far more system testing per statement written than any other programming. Theoretically, after each fix one must run the entire batch of test cases previously run against the system, to ensure that it has not been damaged in an obscure way.” (emphasis is mine) In theory, you could change one statement in a program and have to completely...
read moreMaintenance Programmer Skills – Test Identification
How do you define appropriate tests when you have made a program change? In maintenance programming there are two main flavors of such tests: Functional testing, to test that the code changes produce the desired result Regression testing, to test that everything else works as it did before the changes were made A lot can be written about setting up systems for cataloging test cases, but that’s not my purpose here. My purpose is focused on defining desirable skills of maintenance programs for purposes of hiring and training. So what should a good maintenance programmer...
read moreMaintenance Programmer Skills – Testing
Surely one of the most critical skills for maintaining software is testing. Why is testing important and how is it used in the process? Testing is used for at least these purposes: In corrective maintenance (fixing production defects): To reproduce and locate problems To test fixed functionality To regression test code that has been fixed In adaptive maintenance (enhancements) To test new functionality To regression test changed code An important technique for any of these types of testing is the use of “test harnesses”, I believe first labeled as such in Working...
read moreMaintenance Programmers – Skills and Training
What are the skills that a good AS/400 – iSeries RPG maintenance programmer should have? I have done a lot of research on software maintenance and I have to admit I have yet to see anyone attempt to define this as a particular skilllset. So I’m gonna try. Shown below is a beginning outline. I don’t intend this as an RPG technical knowledge inventory, rather as a skillset surrounding the practice of software maintenance. This draft may have major and minor sections missing, or it may need some reorganization, but it is a start. The first couple of sections are a...
read more