Does anyone know how to document regression testing or any other kind of testion for that matter?Stanko 19:10, 27 September 2006 (UTC)StankoReply
| This is the talk page for discussing improvements to the Regression testing article. This is not a forum for general discussion of the subject of the article. |
Article policies
|
| Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
| This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||
| ||||||||||||||
Does anyone know how to document regression testing or any other kind of testion for that matter?Stanko 19:10, 27 September 2006 (UTC)Stanko
I removed this line, as it clearly belongs in talk and not in the article itself: Remaining questions - who invented the term? Who was the first to use it systematically?
And I'm not sure about this quote (I left it in, but added quotations marks to make clear that it's a quote.)
"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. In practice, such regression testing must indeed approximate this theoretical idea, and it is very costly." -- Fred Brooks, Mythical Man Month (p 122)
-starwed
The article would really need some references/external links. Anyone having some? Cheers - David Björklund 11:21, 13 Mar 2005 (UTC)
The last paragraph states that "regression testing is an integral part of the extreme programming software development methodology". This is IMO abusive since it is part of many, if not all, of those methodologies. Furthermore, the article about extreme programming does not mention regression testing, which tends to prove my point. Regression testing is merely a software engineering trick that many of us use (whereas all should). - 81.56.146.158 15:58, 25 October 2005 (UTC)
I hoped to see a definition of regression testing that applied to systems in general, not just software. Is there some reason this definition shouldn't be applied to entire systems, subsystems, and integrated hardware/software units? —The preceding unsigned comment was added by 192.45.72.26 (talk • contribs) 23:53, 25 September 2006 (UTC).
Regression testing is one of the key elements when designing integrated circuits, ASICs and FPGA based designs. In this field there are quite a lot of specialiced tools on the marked to help designers with it. On this top 10 asic design and verfication list, regression testing is on the second place. the problem is a bit, that this article belongs to the software testing portal (which is ok) and that there is no article about asic design methods and verification where it would also belong to. --84.20.36.138 (talk) 07:13, 20 April 2011 (UTC)
The article does not answer 2 important questions:
I recommend you to read the much better article "Regression Testing" at http://www.wrox.com/WileyCDA/Section/id-291252.html by Adam Kolawa
—The preceding unsigned comment was added by 195.72.132.1 (talk • contribs) 09:58, 28 March 2007 (UTC1)
(NJgeezer (talk) 15:51, 16 November 2010 (UTC)) The Wiley article has this definition: "Regression testing identifies when code modifications cause previously-working functionality to regress, or fail..." The important point here is that the existing def in this wiki article does not explain the added nuance of "regression" , just "testing". The function of regression testing is not to test the change itself (commonly known as unit testing), but to ensure through broader testing that the change has not caused a different bug. This will almost always involve programs or modules outside the scope of the actual code changes. e.g. a change to a DB extract may have resolved a missing country's records, but those "new" records may contain data that causes a completely separate, downstream system to crash since their code does not allow for that new country's currency code. So we are testing not that the change works, but that it has not caused any application regression (loss of functionality) i.e. a failure of previously working, unchanged code.
61.95.203.186, I removed your edits. First, I don't think that those are types of regression. Maybe they would belong under the risk mitigation section. And in that case, I think "Complete test suite repetition" and "Partial test repetition based on traceability and analysis of technical and business risks" cover your points. Does anyone disagree? DRogers 12:48, 23 May 2007 (UTC)
Since this topic is lacking cited content, I added some from Albert Savoia and Kent Beck. Kent Beck is the father of XP and JUnit (although I deliberately avoided making the new content Java-specific and stuck with what would transcend multiple languages). Alberto Savoia has written extensively on unit testing, regression testing, and developer testing.
In order to avoid tying content to any language, I dropped "JUnit Factory" down to the bottom as an external link instead of making it a reference.
Cheers. MickeyWiki (talk) 16:25, 29 November 2007 (UTC)
I dont know what regression testing is - but as i understand the explanation here, it is a test applied just after changes to software have been made. These changes may be "normal" changes or bugfixes. If this definition is correct, i find the the second sentence "The intend of regression testing is to assure that a bug fix has been successfully corrected.." mistakable; this sounds to me like "it is a test, that is applied after trying to fix a bugfix". So there was a mistake _fixing a bug_? I think this is too special..
In the case that my interpretation is correct, i suggest following two sentences for the beginning:
Regression testing is any type of software testing that seeks to uncover software errors after changes to the program (e.g. bugfixes) have been made, by partially retesting the program. The intent of regression testing is to assure that a bugfix itself is correct, or more general, that a change did not introduce new bugs.
and maybe the next sentence should be shorted as to not become repetitive.
len48 —Preceding unsigned comment added by 95.119.140.35 (talk) 19:07, 30 December 2009 (UTC)
In the corporate world, regression testing has traditionally been performed by a software quality assurance team after the development team has completed work. However, defects found at this stage are the most costly to fix.
This latter statement in the background section seems to be a bit odd and does not have any citation or reference. I would have thought defects found after QA would be even more expensive, but does agree that QA tests are more costly then dev team tests. — Preceding unsigned comment added by 95.45.199.134 (talk) 10:20, 10 June 2011 (UTC)
Should this article be merged with Non-regression testing? What is the difference between these two terms (I do not see any). Is one of the terms more correct than the other (I was always saying Regression Testing, but recently met people that always say Non-regression Testing)? — Preceding unsigned comment added by Loomchild (talk • contribs) 14:19, 10 January 2012 (UTC)
I propose to remove the link and comparison to the non-regression testing page. I think the non-regression testing article is quite problematical with its lack of relevant citations and references (I couldn't find one that was relevant in the article.) I didn't find any published references and literature on non-regression testing that described it in any other way than testing, so I think the article needs a lot of work to be useful.Yorkyabroad (talk) 14:46, 31 December 2017 (UTC)
These edits are not correct. You want to find errors, not defects. The errors are created by developers and they are not defects until someone actually triggers them. Also, defect is a euphemism for a software bug which is described as "A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways." This is why we should not be using defect. As for "or other software properties", what sort of weasel words are those? Functionality is all that is important in regression testing. There are no other relevant "software properties" (whatever that means). --Walter Görlitz (talk) 22:59, 28 February 2012 (UTC)
I have no hope of convincing Walter but here are some definitions that should illuminate the two issues. Emphasis added.
error – “a human ACTION that produces an incorrect result, such as software containing a fault" (ISO 24765:2010, Systems & Software Engineering Vocabulary)
defect – “a problem which, IF NOT CORRECTED, could CAUSE an application to either fail or to produce incorrect results” (Id.)
regression testing – “testing required to determine that a change to a system component has not adversely affected functionality, RELIABILITY OR PERFORMANCE, and has not introduced additional defects” (Id. Also: ISO 90003:2004, Software Engineering Guidelines for the Application of ISO 9001:2000 to Computer Software)
The other option is to argue with international standards. — Preceding unsigned comment added by 69.183.41.121 (talk) 02:44, 29 February 2012 (UTC)
I gave my sources of authority. What are yours? — Preceding unsigned comment added by 69.183.41.121 (talk) 03:30, 29 February 2012 (UTC)
ISO standards come into existence through world-wide consensus among experts in the subject domain. May I ask one more time for the precise sources for your def’ns of error, defect and regression testing, with quotation of these definitions, so everybody can compare authority and actual words. 69.183.41.121 (talk) 04:02, 29 February 2012 (UTC)
That's what I did and that's why I made the changes - just in the first sentence, for a start, the article needs it. If the present version is representative, nobody should be surprised by the sorry outcomes of much of the software engineering industry. Cheers, 69.183.41.121 (talk) 04:47, 29 February 2012 (UTC)
Expanded phrase, done. Thanks. 69.183.41.121 (talk) 05:05, 29 February 2012 (UTC)
No, you don't understand the whole - but that's ok. Your edit sounds as if it comes from a German or Dutch speaker. No verbs at the end of a sentence. Try again. 69.183.41.121 (talk) 07:45, 29 February 2012 (UTC)
Good to see “error” removed and “non-functional” introduced. The non-functional aspects are the “number one risk” in software engineering. (CrossTalk, April2007, p.12) Being such a risk the non-functionals need full attention by regression testing. 69.183.41.121 (talk) 15:55, 29 February 2012 (UTC)
You have to start moving to different circles. 69.183.41.121 (talk) 16:12, 29 February 2012 (UTC)
A few comments on the heading of this article, if I may:
Here, "regressions" are equated with "new software bugs". 'Regressing', or 'taking a step back', clearly points to the past, whereas 'new' does not. Regression testing seeks to verify that a system has not regressed to a prior, less functional or less operational state after the introduction of changes.
Regression tests are pre-existing tests (made during earlier development) that either test functionality or bug fixes, and as such can only test for known conditions, not new ones. The kinds of tests suggested here regarding enhancements etc. might be called progression tests.
To illustrate: in the latter case (testing bug fixes), when a bug is found during use of a system, a test case is written that reproduces the occurrence of the bug, testing for the expected outcome. When the bug is fixed, the test will pass. These fixes and tests are committed to the system's source repository to ensure the bug does not re-appear unnoticed. While fixing such a bug, the test is usually classified as a unit test or functional test, depending on the scope. In future software revisions, re-running those earlier tests is what constitutes regression testing.
This is, IMHO, besides the point; such determinations are the purpose of Integration testing.
This is more to the point; however, regression testing only consists of rerunning previous tests. Any new tests added will not be regression tests until they are re-run in the future; while they are new, they are unit/functional/integration/what-have-you tests. Also, "checking whether program behavior has changed" is too vague of a purpose; perhaps "verifying program behaviour has not changed" is more precise.
I would expect the heading to present a clear, concise definition and not go into details about the possibility of optimizing for efficiency. Further, it suggests that one of the purposes of regression testing is to be able to only select those tests that test the impact of a change, which it is not. Typically, regression tests are "blind": they test system functionality to ensure a change does not have unintended side-effects, which goes counter to being able to adequately determine all the effects of any change.
Now this is good; and it is easily seen that when future changes are made, re-running such a test is considered a regression test as it will assert that the previously added functionality is still in effect.
Kenneyw (talk) 13:17, 27 June 2015 (UTC)
Regression means to revert to a former or less developed state. https://en.oxforddictionaries.com/definition/regress. Regression testing is when you ensure that the bug you fixed yesterday isn't reintroduced today. Any new bugs might be discovered in functional testing, integration testing, or even in unit testing. The idea that old and new bugs are found in regression testing would imply that the only testing there is, or needs to be, is regression testing since all bugs, old and new, are found there. If you go through the functional testing and it breaks - you have a bug. But the expectation is that you shouldn't have yesterday's bugs and since you (should) have already created a test for yesterday's bug when you fixed it, you run your regression test, or suite of tests related to bugs you fixed, to ensure that no regression exists before moving on. You may run your regression tests and your functional tests in the same click of the mouse or you may separate them, but the purposes are distinct. New bugs are not regression. They cannot be, by the definition of regression. - Dale — Preceding unsigned comment added by 138.32.32.166 (talk) 16:11, 20 February 2018 (UTC)
Hey, I had edited the content of regression testing in Wikipedia page and was left with your comment
"Revert as WP:OR the content is focused on web testing and was almost entirely unreferenced. The writing style was inappropriate with a lot of bullet lists. Refs do not go into headings"
1) I had the same feeling that there were a lot of bullet points and am working on correcting them.
2) I had posted a few references from published journal papers. Are journal papers not a good source for content?
3) And about the web testing, some of the tools were mentioned and not all. NarenThanikesh (talk) 15:43, 14 September 2016 (UTC)— Preceding unsigned comment added by NarenThanikesh (talk • contribs) 15:30, 14 September 2016 (UTC)
The use of regression testing in blockchain technology and cryptocurrencies is important to mention in this article due to following reason:
Therefore, regression test mode in blockchain can be more important than traditional software technology. Joeccho (talk) 02:59, 17 April 2023 (UTC)
I think the risk are different. We cannot have a section in this article based on your personal opinion that there is some sort of difference between testing blockchain software vs anything else - there is no such difference, which is why there are no secondary sources to support your claims. MrOllie (talk) 03:48, 17 April 2023 (UTC)
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.