Abstract
A new philosophy contributing towards the design of testable object-oriented (OO) software is introduced in this paper. The testing of conventional OO software focuses on the generation of tests for existing objects and systems; the testable object-oriented programming (TOOP) method draws attention to building testabilities into objects and systems during coding or compiling, so that the succeeding processes in test generation and implementation can be simplified. A new method of TOOP is developed to improve the testability of OO software. Software testability at object level and system level is quantitatively modelled. A set of fundamental built-in testable mechanisms oriented to the basic control structures in objects is constructed in order to improve the testability of OO software in terms of test controllability and observability. The most interesting feature obtained by TOOP is that the built-in tests in any objects can be inherited and reused in the same way as that of codes or functions in conventional OO software.
- {1} Stroustrup, B. {1986} The C++ Programming Language, Addison-Wesley. Google ScholarDigital Library
- {2} Snyder, A {1987} "Inheritance and the Development of Encapsulated Software Components", in Research Directions in Object-Oriented Programming, (Shriver and Wagner, eds.), MIT Press. pp. 165-188. Google ScholarDigital Library
- {3} Wang, Y. {1995} On the Design of Testable Software. Research Report of Oxford University Coputing Laboratory, OUCL-WANG-95002.Google Scholar
- {4} Voas, J.M. and Miller, K.M. {1995} Software Testability: The New Verification, IEEE Software, Vol. 12, No. 3, May, pp. 17-28. Google ScholarDigital Library
- {5} Freedman, R.S. {1991} Testability of Software Components, IEEE Transactions on Software Engineering, Vol. 17, No. 6, June, pp. 553-564. Google ScholarDigital Library
- {6} Wang, Y., Staples, G., Ross, M., King, G. and Court, I. {1996} On a Method to Develop Testable Software. Proc. of IEEE European Testing Workshop (IEEE ETW'96), Montpellier, France, June, pp. 176-180.Google Scholar
- {7} Wang. Y., King, G., Staples, G., Ross, M. and Court, I. {1996} Towards a Metric of Software Testability, Proc. of 5th International Conference on Software Quality (5SQC), Dundee, UK, July, pp. 234-241.Google Scholar
- {8} Tai, K. {1989} What to Do Beynond Branch Testing, ACM Software Engineering Notes, Vol. 14, No. 2, pp. 58-61. Google ScholarDigital Library
- {9} Pressman, R. {1992} Software Engineering: A Practitioner's Approach (3rd ed.), McGraw-Hill International Editions, pp. 595-630. Google ScholarDigital Library
- {10} McCabe, T. {1976} A Software Complexity Measure, IEEE Trans. on Software Engineering, Vol. 2, No. 6, pp. 308-320.Google ScholarDigital Library
- {11} McCabe, T. {1983} Structured Testing, IEEE Computer Society Press.Google Scholar
- {12} Beizer, B. {1990} Software Testing Techiques (2nd ed). Van Nostrand Reinhold, pp. 12-14. Google Scholar
- {13} Beizer, B. {1984} Software System Testing and Quality Assurance. Van Nostran Reinhold, pp. 37-90. Google ScholarDigital Library
- {14} Meyer, B. {1992} Object-Oriented Software Construction, Prentice Hall International. Google ScholarDigital Library
Index Terms
- On testable object-oriented programming
Recommendations
A Domain-Theoretic Model Of Nominally-Typed Object-Oriented Programming
The majority of contemporary mainstream object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss crucial features of these mainstream OO ...
Comments