Use of Software Metrics to Improve the Quality of Software Projects Using Regression Testing

Use of Software Metrics to Improve the Quality of Software Projects Using Regression Testing

Arshpreet Kaur Sidhu (Chandigarh University, India) and Sumeet Kaur Sehra (GNDEC, India)
DOI: 10.4018/978-1-5225-6029-6.ch012


Testing of software is broadly divided into three types i.e., code based, model based and specification based. To find faults at early stage, model based testing can be used in which testing can be started from design phase. Furthermore, in this chapter, to generate new test cases and to ensure the quality of changed software, regression testing is used. Early detection of faults will not only reduce the cost, time and effort of developers but also will help finding risks. We are using structural metrics to check the effect of changes made to software. Finally, the authors suggest identifying metrics and analyze the results using NDepend simulator. If results show deviation from standards then again perform regression testing to improve the quality of software.
Chapter Preview


Testing of software is fundamental and central part of software development process. UML is the most prevailing standard language used in modeling test cases (A. K. Jena et al, 2014). Therefore, if it is pleasingly exploited it will reduce the cost and effort of testing as well as modification in code. Activity diagrams can improve the quality of the generated test cases as well as use these test cases for regression testing because it shows the overall flow of control between activities and object using activity-based relationships (Ye et al., 2011).

Testing of Software

Before moving to the details of work done in this chapter, we are focusing on testing first. Testing of software in a simple language is a method to find out errors and missed requirements as specified by the user. Testing can be performed by developers as unit testing and can be performed by software testing professionals to get good quality product.

Testing can be started from the early phase of software i.e. requirement phase and can be done up till deployment. Early start of testing will help in reducing the cost and time of developers because the errors and gaps can be removed as earliest possible. Testing is one process which is not confined at testing phase only. At requirement phase testing is performed in the form of analyzing and verifying the requirements. At design phase reviewing the design documents with gathered requirements is also a part of testing. At coding phase, the part of unit testing performed by developer at completion of code is also a part of testing.

Testing and Quality Assurance

Testing and Quality Assurance are interrelated terms. Testing insures the identification of errors and bugs in software whereas quality assurance focuses on accomplishment of processes and standards in the direction of verification of software. Testing is error and bug identifying technique and do not fixes bugs. To fix bugs at coding level developers can use debugging which is a part of white box and black box testing.

Types of Testing

Testing is categorized as manual and automated. In manual testing software is tested manually and end users take the role of testers to test software for bugs and unforeseen behavior. Stages at which manual testing is done are unit, integration, system and user acceptance testing. In automated testing also known as test automation the tester writes script and uses different software to test the functionality of given software. In this testing test scenarios are re-run repeatedly which were performed manually for time saving. It is assumed that automated testing improves test coverage and accuracy. GUI items, connections can be effectively tested with the help of test automation (Rathi et al., 2015; Bhullar et al., 2017).

Methods of Testing

Black Box Testing

It is a technique of testing software without knowing the internal details and working of software. Generally, in black box testing testers interact with the user interface of system by giving inputs to the system and analyzing the outputs. They hardly have details about where the inputs are working in code. This method is preferred for large segment of code but has limited coverage of test cases.

White Box Testing

In this method of testing, code and logic is tested in detailed. Also known as Open box or Glass testing. To perform this type of testing, tester must have all the knowledge of code and internal working of software. For this type of testing skilled tester is required to look into each nook and corner of code.

Grey Box Testing

In this method of testing, tester has limited knowledge of code but unlike black box testing where only user interface is tested; grey box testing has access to design documents and database. This knowledge helps tester to plan better test cases.

Complete Chapter List

Search this Book: