Software unit test coverage and adequacy article pdf available in acm computing surveys 294. Objective measurement of test quality is one of the key issues in software testing. What is a reasonable code coverage % for unit tests and. Although the title software unit test adequacy would better reflect the contents of this paper, it is a readable, wellorganized survey of test adequacy criteria. May acm computing surveys, 1997 objective measurement of test quality is. Software unit test coverage and adequacy acm computing. Many test criteria have been proposed and studied for this purpose. Generally speaking, since software testing involves the program under test, the set of test cases, and the specification of the software, an adequacy criterion can be formalized as a function c that takes a program p, a specification s, and a test set t and gives a truth value true or false. A program with high test coverage, measured as a percentage, has had more of its source code executed during testing, which suggests it has a lower chance of containing undetected software bugs compared to a program with low test coverage. Software unit test coverage and adequacy hong zhu nanjing university patrick a. One such event, which i personally recall, is the opening of heathrow terminal 5, the uk in 2008.
Software unit test coverage and adequacy semantic scholar. Software unit test coverage and adequacy request pdf. Citeseerx software unit test coverage and adequacy citeseerx document details isaac councill, lee giles, pradeep teregowda. The situation gets more complex with statement, branch coverage and mcdcs. It has been a major research focus for the last two. Test coverage is defined as a metric in software testing that measures the amount of testing performed by a set of test. This means that if there is a tangible negative correlation software unit test coverage and adequacy. Cations drawn from program source code require coverage of particular. Ericsson, as a global software development company, decided to evaluate the adequacy of the unittestcoverage criterion that it had employed for years as a guide for sufficiency of testing.
Software unit test coverage and adequacy hong zhu, patrick a. Although the title software unit test adequacy would better reflect the contents of this paper, it is a readable. Unit tests by definition can be individual methods, whole classes, or whole modules. This is the main question that test adequacy criteria attempt to answer. A test suite satisfies an adequacy criterion if all the tests succeed pass every test requirement in the criterion is satisfied by at least one of the test cases in the test suite. In computer science, test coverage is a measure used to describe the degree to which the source code of a program is executed when a particular test suite runs. Many test criteria have been proposed and studied for. The world has witnessed some of the disastrous events due to the errors prevailing in the software. Why test coverage is important in software testing. Citeseerx document details isaac councill, lee giles, pradeep teregowda.
May, journalacm computing surveys csur, year1997, volume29, pages366 427. Various kinds of rationales have been presented in support of one criterion or another. May objective measurement of test quality is one of the key issues in software testing. Were upgrading the acm dl, and would like your input.
Citeseerx software unit test coverage and adequacy. Introduction in 1972, dijkstra claimed that program testing can be used to show the presence of bugs, but never their absence to persuade us that a testing approach is not acceptable dijkstra 1972. Software unit test coverage and adequacy by hong zhu, patrick a. Even if you test all the methods, you might not test all the paths or all the combinations a user will hit. Request pdf software unit test coverage and adequacy objective measurement of test quality is one of the key issues in software testing. It has been a major research focus for the last two decades.
385 629 586 451 81 1571 163 390 284 73 724 1546 424 798 1032 688 299 1632 410 736 1587 432 894 1347 533 1445 340 498 379 450 515 288 1299 578 1397 1437 1360 935 196 1087