An Empirical Analysis of a Testability Model Pourya Nikfard Advanced Informatics School (AIS) University Technology Malaysia (UTM) Kuala Lumpur, Malaysia npourya2@live.utm.my Maryam Khanian Najafabadi Advanced Informatics School (AIS) University Technology Malaysia (UTM) Kuala Lumpur, Malaysia knmaryam2@live.utm.my Babak Darvish Rouhani Department of Information Technology Payame Noor University, I.R. of IRAN darvishrouhani@pnu.ac.ir Fatemeh Nikpay Advanced Informatics School (AIS) University Technology Malaysia (UTM) Kuala Lumpur, Malaysia nfatemeh6@live.utm.my Harihodin bin Selamat Advanced Informatics School (AIS) University Technology Malaysia (UTM) Kuala Lumpur, Malaysia harihodin@ic.utm.my Abstract- Testability modeling has been performed for many years. Unfortunately, the modeling of a design for testability is often performed after the design is complete. This limits the functional use of the testability model to determining what level of test coverage is available in the design. This information may be useful to help assess whether a product meets a requirement to achieve a desired level of test coverage, but has little pro-active effect on making the design more testable. This paper investigates and presents a number of approaches for tackling this problem. Approaches are surveyed; achievements and main issues of each approach are considered. Investigation of that classification will help researchers who are working on model testability to deliver more applicable solutions. 1. Introduction Software testing is one of the most exclusive stages in the software development life cycle. It is costly in terms of money and time. It can show 40% of the cost of total development. Researchers and practitioners are seeking answers to reduce the cost of testing. One idea is producing tests automatically from the model or specification. Another idea is constructing systems easy to test, with the purpose of decrease this cost. It is called “design for testing” or “design for testability”. This idea depends on the observation that for a similar problem, dissimilar solutions (with dissimilar designs) can be created. Some of them are easier to test than others. As software raises more complex and starts more and more to substitute decision-makers of human in every facet of our life, software quality and reliability needs cautious concentration. Conventionally, verification and validation is the final defence against disaster caused by imperfect software development, and the software systems reliability which starts to substitute human decision makers must be high enough to avoid a disaster. But how do we conclude the critical automatic system is acceptable reliable and safe? Dynamic software testing and formal software verification are the most used two ways for software verification. However, with complex software systems, absolute confidence on software testing often causes inappropriately high costs and other means must be found to address the effectiveness problem of software testing. In the past, much research on software testing has focused on methods for choosing effectual test data sets, variously based on specification of program, on structure of 2013 International Conference on Informatics and Creative Multimedia 978-0-7695-5133-3/13 $26.00 © 2013 IEEE DOI 10.1109/ICICM.2013.20 58 2013 International Conference on Informatics and Creative Multimedia 978-0-7695-5133-3/13 $26.00 © 2013 IEEE DOI 10.1109/ICICM.2013.20 64 2013 International Conference on Informatics and Creative Multimedia 978-0-7695-5133-3/13 $26.00 © 2013 IEEE DOI 10.1109/ICICM.2013.20 64 2013 International Conference on Informatics and Creative Multimedia 978-0-7695-5133-3/13 $26.00 © 2013 IEEE DOI 10.1109/ICICM.2013.20 64 2013 International Conference on Informatics and Creative Multimedia 978-0-7695-5133-3/13 $26.00 © 2013 IEEE DOI 10.1109/ICICM.2013.20 58 2013 International Conference on Informatics and Creative Multimedia 978-0-7695-5133-3/13 $26.00 © 2013 IEEE DOI 10.1109/ICICM.2013.20 63