Send
Close Add comments:
(status displays here)
Got it! This site "creationpie.com" uses cookies. You consent to this by clicking on "Got it!" or by continuing to use this website. Note: This appears on each machine/browser from which this site is accessed.
Regression testing
1. Comparison methods
Regression testing, to be covered here, is a useful way to do change management as part of software engineering for both development and long-term maintenance.
Regression testing techniques are also useful for data forensics investigations and in data science applications that involve complex text processing.
2. Manual testing
Manual testing involves manually testing the system.
This is done using input from a keyboard and mouse.
Manual testing can be tedious, time-intensive, and error-prone.
3. Automated testing
Test automation software helps create and use test cases for software (e.g., unit testing, integration testing, etc.).
Often, a scripting language is provided.
4. Regression testing
In
regression testing, a module has one or more input test data sets. For each input data set, the module produces simple output in text file form.
Then, if a change is made, each module can be automatically tested by rerunning it (automatically) on the test data sets and seeing if the text output is the same.
Each output data set that is different from the previous version must be evaluated to determine if that is what is actually desired, or is there an inconsistency that has been introduced into the software.
One way to do this is as follows.
Prepare a general-purpose set of test cases.
Run the existing program version with these test cases and save the result files.
Make program modifications.
Run the modified program to create a new set of result files.
Automatically compare the two results files and resolve any discrepancies.
5. File comparators
A file comparator program compares two files and indicates the differences between the two files.
Some form of file comparator program is needed to make regression testing possible.
6. Regression testing
In simple
regression testing, every unit of code to be tested is given some input in text form and produces some output in text form. We come up with test cases that given the input will produce the output.
Now, we make a change to the software.
We can now run all of the input test cases to produce new output text, and then compare the new output text with the old output text.
Using file comparison techniques, if there is a change, then something
might be wrong. What are the four possibilities?
Is the new code wrong in that the new output text is incorrect but the old was correct?
Was the old code wrong in that the new output text is correct but the old was incorrect?
Did the change to the code cause the new output text to change, but the old was not really wrong?
Maybe both the old output text and the new output text are wrong and we do not know it yet.
The advantage of regression testing is that you can automate lots of testing and quickly locate the problem areas.
7. Change management
The relevant questions in change management are the following.
How did the code change?
How did the output change?
In order to make decisions based on code and/or output changes, the code and/or output needs to be saved in some backup or version control system.
8. End of page