Knowledge

Regression testing

Source đź“ť

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:.

Index

Regression analysis
Software development
Data modeling
Processes
Requirements
Design
Construction
Engineering
Testing
Debugging
Deployment
Maintenance
Agile
Cleanroom
Incremental
Prototyping
Spiral
V model
Waterfall
Methodologies
ASD
DevOps
DAD
DSDM
FDD
IID
Kanban
Lean SD
LeSS
MDD

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑