Software testing is a major step of software development. You know willingly or unwillingly, we test our software. We may create some automated tests or manually test our software. Testing is, your satisfaction that yap, I have developed a good software.
Ok today I would like to discuss a type of software testing, which is called regression testing. Regression testing is any type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes, such as enhancements, patches or configuration changes, have been made to them.
Suppose you made some bugfixs of your software. Now you need to see that your current system is working properly. You are not fixing whole software right? The bug might be in some section or module of your software that you fixed. Now there some testing needs to see that the whole system is working properly. Now the test you will do to insure that your system is working well after these bug fixing is called regression testing.
A good strategy for regression testing is to run the good old tests! You have done some tests at the last stable release of your software, or the last state of your software before fixing bugs, so re run them after fixing bugs, it will reveal (if the test suite is good enough) if there any problem with you current system. Running old test is a good practice for regression testing.
You may call regression testing as a branch of testing, but actually it is either functional testing or unit testing or a combination of both. So I am still not sure you can say that regression testing is a type of testing. I am little bit confused on that!
“The problem with troubleshooting is that trouble shoots back.” – Author Unknown
“A pinch of probability is worth a pound of perhaps.” – James Thurber
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you are as clever as you can be when you write it, how will you ever debug it?” – Brian Kernighan
“If you don’t care about quality, you can meet any other requirement.” – Gerald M. Weinberg
“Testing is an infinite process of comparing the invisible to the ambiguous in order to avoid the unthinkable happening to the anonymous.” – James Bach
“When your car is about to go off a cliff, it’s a weird time to be thinking about gas mileage and drag coefficients; better to take the right control action—look out the window and steer or use the brake until you’re back on course.” – Michael Bolton
“If at first you don’t succeed, try, try again. Then quit. There’s no point in being a damn fool about it.” – W. C. Fields
“I never make stupid mistakes. Only very, very clever ones.” – John Peel
“Treat your password like your toothbrush. Don’t let anybody else use it, and get a new one every six months.” – Clifford Stoll
“It’s more important to have the right people involved than it is to follow the process exactly right.“ – Rex Black
“There are 10 types of people in this world: those who understand binary and those who don’t.” – Author Unknown
“There are two major products that came out of Berkeley: LSD and UNIX. We do not believe this to be a coincidence.” – Jeremy S. Anderson
“Knowing a great deal is not the same as being smart; intelligence is not information alone but also judgment, the manner in which information is collected and used.” – Carl Sagan
“The internet? That thing is still around?” – Homer Simpson
“I love deadlines. I like the whooshing sound they make as they fly by.” – Douglas Adam
“Everything is theoretically impossible, until it is done.” – Robert A. Heinlein
“Have a great weekend everyone.” – Mike Brown
In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:
Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. That attribute can also be described as the fitness for purpose of a piece of software or how it compares to competitors in the marketplace as a worthwhile product;
Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements, such as robustness or maintainability, the degree to which the software was produced correctly.
Structural quality is evaluated through the analysis of the software inner structure, its source code, in effect how its architecture adheres to sound principles of software architecture. In contrast, functional quality is typically enforced and measured through software testing.