Software regression: Difference between revisions

Content deleted Content added
Added {{Unreliable sources}} tag to article (TW)
m Script-assisted fixes: per CS1 and MOS:ITALICS
Line 1:
{{Unreliable sources|date=December 2019}}
A '''software regression''' is a [[software bug]] that makes a feature stop functioning as intended after a certain event (for example, a system upgrade, [[Patch (computing)|system patching]] or a change to [[daylight saving time]]).<ref name=ibm-locating-bugs>{{cite conference |last1=Yehudai|first1=Amiram |last2=Tyszberowicz|first2=Shmuel |last3=Nir|first3=Dor|title=Locating Regression Bugs|url=https://www.researchgate.net/profile/Avi_Ziv/publication/225437428_Using_Virtual_Coverage_to_Hit_Hard-To-Reach_Events/links/544a2c590cf2ea6541343ef8/Using-Virtual-Coverage-to-Hit-Hard-To-Reach-Events.pdf#page=235|conference=Haifa Verification Conference|conference-url=https://www.research.ibm.com/haifa/conferences/hvc2017/previous.shtml|year=2007|accessdate=10 March 2018}}</ref> A '''software performance regression''' is a situation where the software still functions correctly, but performs more slowly or uses more memory or resources than before.<ref>{{Cite journal|last=Shang|first=Weiyi|last2=Hassan|first2=Ahmed E.|last3=Nasser|first3=Mohamed|last4=Flora|first4=Parminder|date=11 December 2014|title=Automated Detection of Performance Regressions Using Regression Models on Clustered Performance Counters|url=https://sail.cs.queensu.ca/Downloads/ICPE2015_AutomatedDetectionofPerformanceRegressionsUsingRegressionModelsOnClusteredPerformanceCounters.pdf#page=1|journal=|volume=|pages=|via=}}</ref>
 
Regressions are often caused by [[Hotfix|encompassed bug fixes]] included in [[software patch]]es. One approach to avoiding this kind of problem is [[regression testing]]. A properly designed [[test plan]] aims at preventing this possibility before releasing any software.<ref>{{cite book |last=Richardson |first=Jared |author2=Gwaltney, William Jr |title=Ship It! A Practical Guide to Successful Software Projects |url=https://archive.org/details/shipitpracticalg0000rich/page/32 |year=2006 |publisher=The Pragmatic Bookshelf |___location=Raleigh, NC |pages=[https://archive.org/details/shipitpracticalg0000rich/page/32 32, 193] |isbn=978-0-9745140-4-8 }}</ref> [[Automated testing]] and well-written [[test case]]s can reduce the likelihood of a regression.
 
A software regression can be of one of three types:<ref>{{Cite web|url=https://apphawks.com/blog/regression-testing-types-technique-benefits/|title=Regression testing: Types, Techniques and Benefits - QA Service - Apphawks|date=2019-02-20|website=Software Testing Company & QA Services - Apphawks|language=en-GB|access-date=2019-12-21}}</ref><ref>{{Cite web|url=https://airbrake.io/blog/what-is/regression-testing|title=Regression Testing: What It Is and How to Use It|last=Andrew Powell-Morse|date=2018-02-07|website=Airbrake Blog|language=en-US|access-date=2019-12-22}}</ref>
 
* Local – a change introduces a new bug in the changed module or component.