869:, or object methods. Both functional testing tools and unit-testing tools tend to be automated and are often third-party products that are not part of the compiler suite. A functional test may be a scripted series of program inputs, possibly even involving an automated mechanism for controlling mouse movements and clicks. A unit test may be a set of separate functions within the code itself or a driver layer that links to the code without altering the code being tested.
833:
Also 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
810:
components from a third party, performing regression testing can be tricky, as any change in the third-party component may interfere with the rest of the system (and performing regression testing on a third-party component is difficult, because it is an unknown entity).
757:
Prioritize the test cases so as to increase a test suite's rate of fault detection. Test case prioritization techniques schedule test cases so that the test cases that are higher in priority are executed before the test cases that have a lower priority.
652:" in that it fixes the problem in the narrow case where it was first observed but not in more general cases which may arise over the lifetime of the software. Frequently, a fix for a problem in one area inadvertently causes a
659:
It may happen that when a feature is redesigned some of the same mistakes that were made in the original implementation of the feature also occur in the redesign. In most software development situations, it is considered
736:
This technique checks all the test cases on the current program to check its integrity. Though it is expensive as it needs to re-run all the cases, it ensures that there are no errors because of the modified code.
787:
Regression testing is performed when changes are made to the existing functionality of the software or if there is a bug fix in the software. Regression testing can be achieved through multiple approaches; if a
799:—where the software development life cycles are very short, resources are scarce, and changes to the software are very frequent—regression testing might introduce a lot of unnecessary
697:
software development method. In this method, design documents are replaced by extensive, repeatable, and automated testing of the entire software package throughout each stage of the
690:
Common strategies are to run such a system after every successful compile (for small projects), every night, or once a week. Those strategies can be automated by an external tool.
949:
708:
team after the development team has completed work. However, defects found at this stage are the most costly to fix. This problem is being addressed by the rise of
560:
1165:
720:
that verify only intended outcomes. Developer testing compels a developer to focus on unit testing and to include both positive and negative test cases.
792:
approach is followed, it provides certainty that the changes made to the software have not affected the existing functionalities, which are unaltered.
514:
664:, when a bug is located and fixed, to record a test that exposes the bug and re-run that test regularly after subsequent changes to the program.
687:
systems to re-run all regression tests at specified intervals and report any failures (which could imply a regression or an out-of-date test).
637:
As software is updated or changed, or reused on a modified target, emergence of new faults and/or re-emergence of old faults is quite common.
481:
1192:
553:
333:
712:. Although developers have always written test cases as part of the development cycle, these test cases have generally been either
588:
to ensure that previously developed and tested software still performs as expected after a change. If not, that would be called a
471:
323:
1006:
934:
749:(owing to the cost of retest all) if the cost of selecting the part of the test suite is less than the Retest all technique.
546:
446:
202:
187:
701:. Regression testing is done after functional testing has concluded, to verify that the other functionalities are working.
466:
504:
979:
413:
177:
904:
280:
1442:
403:
398:
154:
911:
Testing activities that focus on regression problems are called (non) regression testing. Usually "non" is omitted
829:, regression testing could track the code size and the time it takes to compile and execute the test suite cases.
532:
865:. Functional tests exercise the complete program with various inputs. Unit tests exercise individual functions,
1185:
821:
423:
136:
116:
285:
770:
Version-specific prioritization – Prioritize test cases with respect to a particular version of the software.
222:
212:
162:
1503:
1467:
1406:
698:
509:
237:
53:
958:. The National Academies Press, 2001, page 2: ″Each technology-refresh cycle requires regression testing.″
617:
tend to grow with each found defect, test automation is frequently involved. The evident exception is the
328:
300:
953:
1113:
Yoo, S.; Harman, M. (2010). "Regression testing minimization, selection and prioritization: a survey".
796:
705:
451:
295:
182:
172:
111:
1498:
1411:
1178:
996:
825:
of a program but often also for tracking the quality of its output. For instance, in the design of a
217:
197:
1093:
1452:
1401:
1371:
1313:
618:
358:
227:
207:
1035:
883:
486:
368:
247:
121:
1088:
848:
684:
622:
585:
428:
338:
290:
232:
969:
924:
1331:
1326:
1040:
767:
General prioritization – Prioritize test cases that will be beneficial on subsequent versions
661:
252:
68:
58:
1376:
1366:
649:
606:
348:
192:
126:
93:
73:
34:
8:
1361:
1356:
1346:
1290:
1235:
1225:
800:
694:
679:
contains software tools that allow the testing environment to execute all the regression
590:
343:
262:
88:
20:
1087:. National Conference on Challenges and Opportunities. Mandi Gobindgarh, Punjab, India.
1416:
1351:
1341:
1285:
713:
602:
581:
461:
1144:
779:
This technique is a hybrid of regression test selection and test case prioritization.
19:
This article is about software development. For the statistical analysis process, see
1426:
1252:
1220:
1215:
1002:
975:
930:
672:
610:
1021:
1396:
1381:
1336:
1262:
1247:
1240:
1201:
1122:
641:
418:
381:
363:
353:
78:
1024:, Automated Testing: Selected Best Practices, Elfriede Dustin, Safari Books Online
1421:
878:
858:
704:
In the corporate world, regression testing has traditionally been performed by a
305:
257:
141:
63:
16:
Checking whether changes to software have broken functionality that used to work
1472:
1447:
1386:
1295:
1267:
668:
1492:
48:
1462:
1457:
1300:
1230:
1057:"Developer Testing Is 'In': An interview with Alberto Savoia and Kent Beck"
862:
717:
709:
653:
598:
131:
621:
regression testing, which normally must be executed manually. Sometimes a
1477:
1321:
1257:
1140:
843:
645:
1056:
866:
746:
676:
614:
1126:
838:
must indeed approximate this theoretical idea, and it is very costly.
807:
680:
83:
1170:
826:
640:
Sometimes re-emergence occurs because a fix gets lost through poor
456:
408:
393:
388:
998:
Automated Defect
Prevention: Best Practices in Software Management
906:
Software testing and analysis: process, principles, and techniques
671:
procedures using programming techniques, it is often done using
167:
242:
1036:"Change Code Without Fear: Utilize a Regression Safety Net"
476:
648:
in revision control). Often, a fix for a problem will be "
625:
is performed to determine an appropriate subset of tests (
806:
In a software development environment which tends to use
819:
Regression testing can be used not only for testing the
994:
745:
Unlike Retest all, this technique runs a part of the
761:
597:
Changes that may require regression testing include
952:Committee on Aging Avionics in Military Aircraft:
1001:. Wiley-IEEE Computer Society Press. p. 73.
1490:
926:Software Quality Assurance, Testing and Metrics
857:Regression tests can be broadly categorized as
728:The various regression testing techniques are:
1145:"Regression Testing, Programmer to Programmer"
1115:Software Testing, Verification and Reliability
693:Regression testing is an integral part of the
1186:
834:damaged in an obscure way. In practice, such
554:
1166:Microsoft regression testing recommendations
740:
683:automatically; many projects have automated
1085:Understanding Regression Testing Techniques
1083:Duggal, Gaurav; Suri, Bharti (2008-03-29).
752:
1193:
1179:
1082:
902:
561:
547:
1112:
1092:
967:
782:
1033:
1022:Automate Regression Tests When Feasible
995:Kolawa, Adam; Huizinga, Dorota (2007).
1491:
1054:
515:Electrical and electronics engineering
1174:
1108:
1106:
1104:
988:
971:CENELEC 50128 and IEC 62279 Standards
1200:
1078:
1076:
1074:
1072:
922:
903:Pezzè, Mauro; Young, Michal (2008).
955:Aging Avionics in Military Aircraft
13:
1139:
1101:
667:Although this may be done through
605:changes, and even substitution of
14:
1515:
1159:
1069:
762:Types of test case prioritization
441:Standards and bodies of knowledge
1443:Graphical user interface testing
1133:
533:Outline of software development
1048:
1027:
1015:
968:Boulanger, Jean-Louis (2015).
961:
943:
916:
896:
601:fixes, software enhancements,
1:
889:
731:
723:
632:
1468:Software reliability testing
1407:Software performance testing
1034:daVeiga, Nada (2008-02-06).
699:software development process
7:
1055:Dudney, Bill (2004-12-08).
872:
10:
1520:
1310:Testing types, techniques,
797:agile software development
706:software quality assurance
296:Software quality assurance
18:
1435:
1309:
1278:
1208:
950:National Research Council
774:
741:Regression test selection
1453:Orthogonal array testing
1402:Smoke testing (software)
1372:Dynamic program analysis
753:Test case prioritization
281:Configuration management
884:Test-driven development
814:
627:non-regression analysis
505:Artificial intelligence
923:Basu, Anirban (2015).
855:
849:The Mythical Man Month
783:Benefits and drawbacks
685:Continuous integration
623:change impact analysis
578:non-regression testing
429:Infrastructure as code
275:Supporting disciplines
1332:Compatibility testing
831:
644:practices (or simple
607:electronic components
286:Deployment management
1377:Installation testing
1367:Differential testing
662:good coding practice
586:non-functional tests
106:Paradigms and models
35:Software development
1504:Extreme programming
1362:Development testing
1357:Destructive testing
1347:Conformance testing
1291:Integration testing
1236:Model-based testing
1226:Exploratory testing
695:extreme programming
29:Part of a series on
21:Regression analysis
1417:Symbolic execution
1392:Regression testing
1352:Continuous testing
1342:Concurrent testing
1286:Acceptance testing
1209:The "box" approach
1041:Dr. Dobb's Journal
836:regression testing
574:Regression testing
424:Release automation
301:Project management
1486:
1485:
1427:Usability testing
1253:White-box testing
1221:All-pairs testing
1216:Black-box testing
1008:978-0-470-04212-0
936:978-81-203-5068-7
673:automated testing
656:in another area.
613:). As regression
571:
570:
462:ISO/IEC standards
1511:
1499:Software testing
1397:Security testing
1382:Negative testing
1337:Concolic testing
1263:Mutation testing
1248:Grey-box testing
1241:Scenario testing
1202:Software testing
1195:
1188:
1181:
1172:
1171:
1153:
1152:
1137:
1131:
1130:
1127:10.1002/stvr.430
1110:
1099:
1098:
1096:
1080:
1067:
1066:
1064:
1063:
1052:
1046:
1045:
1031:
1025:
1019:
1013:
1012:
992:
986:
985:
965:
959:
947:
941:
940:
929:. PHI Learning.
920:
914:
913:
900:
859:functional tests
853:
714:functional tests
642:revision control
580:) is re-running
563:
556:
549:
510:Computer science
419:Build automation
26:
25:
1519:
1518:
1514:
1513:
1512:
1510:
1509:
1508:
1489:
1488:
1487:
1482:
1431:
1422:Test automation
1311:
1305:
1274:
1204:
1199:
1162:
1157:
1156:
1138:
1134:
1111:
1102:
1094:10.1.1.460.5875
1081:
1070:
1061:
1059:
1053:
1049:
1032:
1028:
1020:
1016:
1009:
993:
989:
982:
966:
962:
948:
944:
937:
921:
917:
901:
897:
892:
879:Quality control
875:
854:
842:
817:
785:
777:
764:
755:
743:
734:
726:
635:
567:
538:
537:
528:
520:
519:
500:
492:
491:
442:
434:
433:
384:
374:
373:
319:
311:
310:
306:User experience
276:
268:
267:
158:
147:
146:
107:
99:
98:
44:
43:Core activities
24:
17:
12:
11:
5:
1517:
1507:
1506:
1501:
1484:
1483:
1481:
1480:
1475:
1473:Stress testing
1470:
1465:
1460:
1455:
1450:
1448:Manual testing
1445:
1439:
1437:
1433:
1432:
1430:
1429:
1424:
1419:
1414:
1412:Stress testing
1409:
1404:
1399:
1394:
1389:
1387:Random testing
1384:
1379:
1374:
1369:
1364:
1359:
1354:
1349:
1344:
1339:
1334:
1329:
1324:
1318:
1316:
1307:
1306:
1304:
1303:
1298:
1296:System testing
1293:
1288:
1282:
1280:
1279:Testing levels
1276:
1275:
1273:
1272:
1271:
1270:
1268:Static testing
1265:
1260:
1250:
1245:
1244:
1243:
1238:
1233:
1228:
1223:
1212:
1210:
1206:
1205:
1198:
1197:
1190:
1183:
1175:
1169:
1168:
1161:
1160:External links
1158:
1155:
1154:
1132:
1100:
1068:
1047:
1026:
1014:
1007:
987:
981:978-1119122487
980:
960:
942:
935:
915:
894:
893:
891:
888:
887:
886:
881:
874:
871:
840:
816:
813:
784:
781:
776:
773:
772:
771:
768:
763:
760:
754:
751:
742:
739:
733:
730:
725:
722:
675:tools. Such a
669:manual testing
634:
631:
569:
568:
566:
565:
558:
551:
543:
540:
539:
536:
535:
529:
526:
525:
522:
521:
518:
517:
512:
507:
501:
498:
497:
494:
493:
490:
489:
484:
479:
474:
469:
464:
459:
454:
452:IEEE standards
449:
443:
440:
439:
436:
435:
432:
431:
426:
421:
416:
411:
406:
401:
396:
391:
385:
380:
379:
376:
375:
372:
371:
366:
361:
356:
351:
346:
341:
336:
331:
326:
320:
317:
316:
313:
312:
309:
308:
303:
298:
293:
288:
283:
277:
274:
273:
270:
269:
266:
265:
260:
255:
250:
245:
240:
235:
230:
225:
220:
215:
210:
205:
200:
195:
190:
185:
180:
175:
170:
165:
159:
157:and frameworks
153:
152:
149:
148:
145:
144:
139:
134:
129:
124:
119:
114:
108:
105:
104:
101:
100:
97:
96:
91:
86:
81:
76:
71:
66:
61:
56:
51:
45:
42:
41:
38:
37:
31:
30:
15:
9:
6:
4:
3:
2:
1516:
1505:
1502:
1500:
1497:
1496:
1494:
1479:
1476:
1474:
1471:
1469:
1466:
1464:
1461:
1459:
1456:
1454:
1451:
1449:
1446:
1444:
1441:
1440:
1438:
1434:
1428:
1425:
1423:
1420:
1418:
1415:
1413:
1410:
1408:
1405:
1403:
1400:
1398:
1395:
1393:
1390:
1388:
1385:
1383:
1380:
1378:
1375:
1373:
1370:
1368:
1365:
1363:
1360:
1358:
1355:
1353:
1350:
1348:
1345:
1343:
1340:
1338:
1335:
1333:
1330:
1328:
1325:
1323:
1320:
1319:
1317:
1315:
1308:
1302:
1299:
1297:
1294:
1292:
1289:
1287:
1284:
1283:
1281:
1277:
1269:
1266:
1264:
1261:
1259:
1256:
1255:
1254:
1251:
1249:
1246:
1242:
1239:
1237:
1234:
1232:
1229:
1227:
1224:
1222:
1219:
1218:
1217:
1214:
1213:
1211:
1207:
1203:
1196:
1191:
1189:
1184:
1182:
1177:
1176:
1173:
1167:
1164:
1163:
1150:
1146:
1142:
1136:
1128:
1124:
1121:(2): 67–120.
1120:
1116:
1109:
1107:
1105:
1095:
1090:
1086:
1079:
1077:
1075:
1073:
1058:
1051:
1043:
1042:
1037:
1030:
1023:
1018:
1010:
1004:
1000:
999:
991:
983:
977:
973:
972:
964:
957:
956:
951:
946:
938:
932:
928:
927:
919:
912:
908:
907:
899:
895:
885:
882:
880:
877:
876:
870:
868:
864:
860:
851:
850:
845:
839:
837:
830:
828:
824:
823:
812:
809:
804:
802:
798:
793:
791:
780:
769:
766:
765:
759:
750:
748:
738:
729:
721:
719:
715:
711:
707:
702:
700:
696:
691:
688:
686:
682:
678:
674:
670:
665:
663:
657:
655:
651:
647:
643:
638:
630:
628:
624:
620:
616:
612:
608:
604:
603:configuration
600:
595:
593:
592:
587:
583:
579:
575:
564:
559:
557:
552:
550:
545:
544:
542:
541:
534:
531:
530:
524:
523:
516:
513:
511:
508:
506:
503:
502:
496:
495:
488:
485:
483:
480:
478:
475:
473:
470:
468:
465:
463:
460:
458:
455:
453:
450:
448:
445:
444:
438:
437:
430:
427:
425:
422:
420:
417:
415:
412:
410:
407:
405:
402:
400:
397:
395:
392:
390:
387:
386:
383:
378:
377:
370:
367:
365:
362:
360:
357:
355:
352:
350:
347:
345:
342:
340:
337:
335:
332:
330:
327:
325:
322:
321:
315:
314:
307:
304:
302:
299:
297:
294:
292:
291:Documentation
289:
287:
284:
282:
279:
278:
272:
271:
264:
261:
259:
256:
254:
251:
249:
246:
244:
241:
239:
236:
234:
231:
229:
226:
224:
221:
219:
216:
214:
211:
209:
206:
204:
201:
199:
196:
194:
191:
189:
186:
184:
181:
179:
176:
174:
171:
169:
166:
164:
161:
160:
156:
155:Methodologies
151:
150:
143:
140:
138:
135:
133:
130:
128:
125:
123:
120:
118:
115:
113:
110:
109:
103:
102:
95:
92:
90:
87:
85:
82:
80:
77:
75:
72:
70:
67:
65:
62:
60:
57:
55:
52:
50:
49:Data modeling
47:
46:
40:
39:
36:
33:
32:
28:
27:
22:
1463:Soak testing
1458:Pair testing
1391:
1301:Unit testing
1231:Fuzz testing
1148:
1141:Kolawa, Adam
1135:
1118:
1114:
1084:
1060:. Retrieved
1050:
1039:
1029:
1017:
997:
990:
970:
963:
954:
945:
925:
918:
910:
905:
898:
856:
847:
835:
832:
820:
818:
805:
794:
789:
786:
778:
756:
744:
735:
727:
710:unit testing
703:
692:
689:
666:
658:
654:software bug
639:
636:
626:
596:
589:
577:
573:
572:
409:UML Modeling
404:GUI designer
69:Construction
59:Requirements
1478:Web testing
1322:A/B testing
1258:API testing
867:subroutines
844:Fred Brooks
822:correctness
646:human error
615:test suites
127:Prototyping
122:Incremental
94:Maintenance
74:Engineering
1493:Categories
1062:2007-11-29
890:References
863:unit tests
747:test suite
732:Retest all
724:Techniques
718:unit tests
681:test cases
677:test suite
633:Background
591:regression
582:functional
499:Glossaries
89:Deployment
1327:Benchmark
1089:CiteSeerX
974:. Wiley.
909:. Wiley.
808:black box
576:(rarely,
318:Practices
142:Waterfall
117:Cleanroom
84:Debugging
54:Processes
1436:See also
873:See also
852:, p. 122
841:—
827:compiler
801:overhead
790:test all
611:hardware
527:Outlines
457:ISO 9001
399:Profiler
394:Debugger
389:Compiler
364:Stand-up
1314:tactics
650:fragile
198:Lean SD
137:V model
79:Testing
1091:
1005:
978:
933:
775:Hybrid
472:SWEBOK
193:Kanban
168:DevOps
132:Spiral
64:Design
467:PMBOK
382:Tools
243:SEMAT
238:Scrum
112:Agile
1312:and
1149:Wrox
1003:ISBN
976:ISBN
931:ISBN
815:Uses
619:GUIs
584:and
482:IREB
477:ITIL
447:CMMI
324:ATDD
233:SAFe
203:LeSS
178:DSDM
1123:doi
861:or
795:In
716:or
629:).
599:bug
487:OMG
414:IDE
369:TDD
359:SBE
349:DDD
334:CCO
329:BDD
253:TSP
248:TDD
228:RUP
223:RAD
218:PSP
213:MSF
208:MDD
188:IID
183:FDD
173:DAD
163:ASD
1495::
1147:.
1143:.
1119:22
1117:.
1103:^
1071:^
1038:.
846:,
803:.
594:.
354:PP
344:CD
339:CI
263:XP
258:UP
1194:e
1187:t
1180:v
1151:.
1129:.
1125::
1097:.
1065:.
1044:.
1011:.
984:.
939:.
609:(
562:e
555:t
548:v
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.