ABSTRACT
Testing takes a considerable amount of the time and resources spent on producing software. It would therefore be useful to have ways 1) to reduce the cost of testing and 2) to estimate this cost. In particular, the number of tests to be executed is an important and useful attribute of the entity "testing effort". All-uses coverage is a data flow testing strategy widely researched in recent years. In this paper we present spanning sets of duas for the all-uses coverage criterion. A spanning set of duas is a minimum set of duas (definition-use associations) such that a set of test paths covering them covers every dua in the program. We give a method to find a spanning set of duas using the relation of subsumption between duas. Intuitively, there exists a natural ordering between the duas in a program: some duas are covered more easily than others, since coverage of the former is automatically guaranteed whenever the latter are covered. Those duas that are the most difficult to be covered according to this ordering are called unconstrained. A spanning set of duas is composed of unconstrained duas. Our results are useful for reducing the cost of testing, since the generation of test paths can be targeted to cover the smaller spanning set of duas, rather than all those in a program. On the other hand, assuming that a different path is taken to cover each dua in a spanning set, the cardinality of spanning sets can be used to estimate the cost of testing. Other interesting uses of spanning sets of duas are also discussed.
- 1.B. Beizer. Software Testing Techniques, Second Edition. Van Nostrand Reinhold, New York, 1990. Google ScholarDigital Library
- 2.C. Berge. Graphs and Hypergraphs. North-Holland, New York, 1973. Google ScholarDigital Library
- 3.A. Bertolino and M. MarrY. How many paths are needed for branch testing? The Journal of Systems and Software, 1996. To appear. Google ScholarDigital Library
- 4.A. Bertolino and M. MarrY. Automatic generation of path covers based on the control flow analysis of computer programs. IEEE Trans. on Software Engineering, SE-20(12):885-899, December 1994. Google ScholarDigital Library
- 5.A. Bertolino, R. Mirandola, and E. Peciola. A case study in branch testing automation. In Proc. of the 3rd Int. Conf. on Achieving Quality in Software (.4 QulS'96). To appear.Google Scholar
- 6.P. G. Frankl and S. N. Weiss. An experimental comparison of the effectiveness of branch testing and data flow testing. IEEE Trans. on Software Engineering, 19(8):774-787, August 1993. Google ScholarDigital Library
- 7.P. G. Frankl and E. J. Weyuker. An applicable family of data flow testing criteria. IEEE Trans. on Software Engsneering, 14(10):1483-1498, 1988. Google ScholarDigital Library
- 8.R. Gupta and M. L. Sofia. Employing static information in the generation of test cases. Software Testing, Verification and Reliability, 3(1):29-48, 1993.Google ScholarCross Ref
- 9.M.J. Harrold, R. Gupta, and M. L. Sofia. A methodology for controlling the size of a test suite. A CM Trans. on Software Engineering and Methodology, 2(3):270- 285, July 1993. Google ScholarDigital Library
- 10.M. S. Hecht. Flow Analysis of Computer Programs. North Holland, New York, 1977. Google ScholarDigital Library
- 11.M. Hutchins, H. Foster, T. Goradia, and T. Ostrend. Experiments on the effectiveness of dataflowand controlflow- based test adequacy criteria. Proc. 16th. Int. Conf. on Soft. Eng. (ICSE 9J), pages 191- 200, 1994. Google ScholarDigital Library
- 12.B. Korel. Automated software test data generation. IEEE Trans. on Software Engineering, 16(8):870-879, 1990. Google ScholarDigital Library
- 13.T. Lengauer and R. E. Tarjan. A fast algorithm for finding dominators in a flowgraph. A CM Trans. on Programming Languages and Systems, 1(1):121-141, 1979. Google ScholarDigital Library
- 14.M. MarrY. Program Flow Analysis for Reducing and Estimating the Cost of Test Coverage Criteria. PhD thesis, Dep. Computer Science, FCEyN, Universidad de Buenos Aires, 1996.Google Scholar
- 15.E. F. Miller. Software testing technology: An overview. In C. R. Vick and C. V. Ramamoorthy, editors, Handbook of Software Engineering. Van Nostrand Reinhold, New York, 1984.Google Scholar
- 16.S. Rapps and E.J. Weyuker. Selecting software test data using data flow information. IEEE Trans. on Software Engineering, SE-11(4):367-375, April 1985. Google ScholarDigital Library
- 17.E. Weyuker. The cost of data flow testing: An empirical study. IEEE Trans. on Software Engineering, 16(2):121-128, 1990. Google ScholarDigital Library
- 18.E. J. Weyuker. The complexity of dat~ flow criteria for test data selection. Information Processing Letters, 19(2):103-109, August 1984. Google ScholarDigital Library
- 19.W. E. Wong, J. R. Horgan, S. London, and A. P. Mathur. Effect of test set minimization on fault detection effectiveness. In Proc. of the 17th Int. Conf. on Software Engineering (iCSE 95), pages 41-50, April 1995. Google ScholarDigital Library
- 20.D. F. Yates and N. Malevris. Reducing the effects of infeasible paths in branch testing. A CM SIGSOFT Software Engineering Notes, 14(8):48-54, Dec. 1989. Google ScholarDigital Library
Index Terms
- Unconstrained duals and their use in achieving all-uses coverage
Recommendations
Unconstrained duals and their use in achieving all-uses coverage
Testing takes a considerable amount of the time and resources spent on producing software. It would therefore be useful to have ways 1) to reduce the cost of testing and 2) to estimate this cost. In particular, the number of tests to be executed is an ...
Investigating faults missed by test suites achieving high code coverage
Highlights- Studies how effectively test suites with high code coverage find 45 different faults.
AbstractCode coverage criteria are commonly used to determine the adequacy of a test suite. However, studies investigating code coverage and fault-finding capabilities have mixed results. Some studies have shown that creating test suites to ...
Checked Coverage and Object Branch Coverage: New Alternatives for Assessing Student-Written Tests
SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science EducationMany educators currently use code coverage metrics to assess student-written software tests. While test adequacy criteria such as statement or branch coverage can also be used to measure the thoroughness of a test suite, they have limitations. Coverage ...
Comments