This week i chose to write about the article Restest Vs Regression Testing – How much Regression Testers Should be Doing? by Swati S.
The article begins by defining both Retesting and Regression Testing, this was especially helpful since i am new to all forms of Testing.
Retesting was defined simply as testing again, “the reason does not matter(Swati 1)”. The reason could be as simple as you were not paying attention the first time that the test was run.
Regression Testing is a little bit more complicated. The article gave an example that i believe beautifully illustrates it’s function. “Imagine yourself making a block tower, by adding one block over the other. You don’t take the time to reinforce or strengthen the base. It won’t be long before the tower crashes, isn’t it?(Swati 1)”. It is based on the idea that software continues to grow and as you continue to release updates it is important to go back and test the base of your software to make sure it is still stable. This is a version of retesting, the only thing is that there is a specific reason this time. The reason being to make sure updates to the software have not made any “before working functionality unstable”.
Before a Regression Testing is implemented it is important to do a “Regression Analysis” in order to understand how much testing needs to be done. This is something that is application specific, depending on what is being updated perhaps you do not need to test all the way back to the bottom block but only half way down. According to the article there are three important factors when doing a “Regression Analysis’:
- “Nature of the change”
- “Relationship/impact of the change on the current system/feature”
- “Availability time and resources”
Based on those above factors and the decisions that the developers make they can do a few different types of regression tests:
- Unit Regression – Only test the area of the application that has been modified.
- Partial Regression – Test the are of the application that has been modified and all those areas that interact with that area.
- Full Regression – Retest the entire application regardless of where the actual change was done.
Essentially the difference between the two types of testing is that Regression Testing is only implemented when there is a change to the application. Yes it is a version or Retesting but it is different. Retesting can be done without a change, for any reason the developer sees necessary.
Here are some other articles that i found interesting:
http://www.mkltesthead.com/2016/10/the-humans-in-machine-talking-machine.html
https://www.stickyminds.com/better-software-magazine-article/evolution-software-monetization
From the blog CS@Worcester – Computer Science Journal by jtassone93 and used with permission of the author. All other rights reserved by the author.