Framework for Reusable Test Case Generation in Software Systems Testing

Framework for Reusable Test Case Generation in Software Systems Testing

Kamalendu Pal (City, University of London, UK)
Copyright: © 2020 |Pages: 18
DOI: 10.4018/978-1-7998-2531-9.ch009


Agile methodologies have become the preferred choice for modern software development. These methods focus on iterative and incremental development, where both requirements and solutions develop through collaboration among cross-functional software development teams. The success of a software system is based on the quality result of each stage of development with proper test practice. A software test ontology should represent the required software test knowledge in the context of the software tester. Reusing test cases is an effective way to improve the testing of software. The workload of a software tester for test-case generation can be improved, previous software testing experience can be shared, and test efficiency can be increased by automating software testing. In this chapter, the authors introduce a software testing framework (STF) that uses rule-based reasoning (RBR), case-based reasoning (CBR), and ontology-based semantic similarity assessment to retrieve the test cases from the case library. Finally, experimental results are used to illustrate some of the features of the framework.
Chapter Preview


The strategic importance of software has long been understood by professionals and policymakers around the world (Dutta, Wassenhove & Kulandaiswamy, 1998). Software has become an indispensable part of every industry, from mobile phone manufacturers to the safe landing of spaceships. The advancement of software design and development is always an open topic for researchers to address complex systems with numerous domain-specific requirements. The success of a system is based on the quality result at every stage of development, and therefore, superior software development is an essential element of success. These quality-enhancing features become more important as the transition from hardware to software-enabled products accelerates. Today's technological innovation in the software industry is similar to the early 1970s, when digital electronics began to replace the mechanical and analogue technologies that underpinned the products of attractive desktop calculators to black-and-white televisions.

The landscape of the top software dependent product and service companies is changing rapidly. The value is evolving fast as hardware features are mostly standardized and differentiate software between high and low end products. At the same time, more miniaturized computing power provides the value of embedded software in products is expected to continue its market demand. In fact, software enables an estimated high percentage of automotive product innovations, from entertainment to fatal accident avoidance systems (Charette, 2005; Charette, 2009). These new-generation, software-based touch-and-feel-sensitive systems are highly dependent on human-computer interactions. Computer interfaces are becoming more and more sensitive and demanding as the number of products increases, from biometrically detectable automotive unlocking systems to sophisticated automotive dashboards that design and use intelligent software displays. As software-based user interactions become the operational norm, software-driven automation of the design and development of these software systems promise a new degree of quality while reducing production costs. A company with consistently high-performing software has less downtime in operation and develops products with fewer disruptions that impact the end-user experience.

The automotive manufacturing industry is witnessing a new era of software-driven innovative products and processes. Particularly, using the Internet of Things (IoT) technologies and enhanced computing power in solving operational problems. For example, self-driven cars are slowly becoming a reality with high hope of commercialization for public transportation soon. The world would now have self-driven cars if the automotive industry could model very accurately the randomness of human-drivers and pedestrians on public roads. One solution to this problem would be restricted lanes for autonomous vehicles only. Self-driving cars can communicate and coordinate with each other that human drivers often fail to do. It should be noted that operational data analysis and error-free software systems are the main driving forces of these self-driven cars.

The road traffic and observation data of the self-driven car can reveal interesting patterns and correlations in the collected data set. The important mechanism for finding causal relationships is often guided by intelligent data analysis software controlled by artificial intelligent (AI) techniques. For example, algorithmic sorting, searching and data clustering are often used to analyze the observation data. In this way, the introduction of AI-based software applications improves human performance in using these automated systems.

Academics and practitioners (Holcombe, 2008) are pushing for innovations in software design and development based on artificial intelligence. At the same time, technological innovations and their applications are transforming information and communication technology (Prahalad & Mashelkar, 2010). The world of software design and development also focuses on technological innovation to enable efficient software design and development processes. True, innovative technologies and techniques are now shaping everything, from capturing software requirements to delivering software, and as new perspectives emerge, fully automated customer service in software development processes are on the horizon. The technologies that enable global software design and development, such as software development platforms and tremendous computing power, data storage, and innovative software testing techniques are rapidly advancing and becoming increasingly possible.

Key Terms in this Chapter

Ontology: Information sharing among business partners using information system is an important enabler for business operations management. There are different types of data to be shared across business operations, namely – order, demand, inventory, shipment, and customer service. Consequently, information about these issues needs to be shared in order to achieve efficiency and effectiveness. In this way, information-sharing activities require that human and/or machine agents agree on common and explicit business related concepts (the shared conceptualizations among hardware/software agents, customers, and service providers) are known as explicit ontologies; and these help to exchange data and derived knowledge out of the data to achieve collaborative goals of business operations.

Software Quality Assurance: Software quality assurance is defined as follows (1) a planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements and (2) a set of activities designed to evaluate the process by which products are developed or manufactured.

Verification and Validation: The process of determining whether the requirements for a system or component are complete and correct, the products of each development phase fulfill the requirements or conditions imposed by the previous phase, and the final system or component complies with specified requirements.

Software Quality: Software engineering standards, if sufficiently comprehensive and if properly enforced, establish a quality system , a systematic approach to ensuring software quality, which is defined as (1) the degree to which a system, component, or process meets specified requirements and (2) the degree to which a system, component, or process meets customer or user needs or expectations.

Rule-Based Reasoning: In conventional rule-based reasoning, both common sense knowledge and domain specific domain expertise (i.e. software testing) are represented in the forms of plausible rules (e.g. IF <precondition(s)> THEN <conclusion(s)>. For example, an instance of a rule in common law: IF {(Jo has a driving license) AND (Jo is drunk) AND (Jo is stopped by police)} THEN {(Jo’s driving license will be revoked by the transport authority)}. Moreover, rule-based reasoning requires an exact match on the precondition(s) to predict the conclusion(s). This is very restrictive, as real-world situations are often fuzzy and do not match exactly with rule preconditions. Thus, there are some extensions to the basic approach that can accommodate partial degrees of matching in rule preconditions.

Case-Based Reasoning: The main idea of case-based reasoning (CBR) is to adapt solutions that were used to solve previous problems and use them for solving latest problems (cases). A CBR system consists of a case base (which is the set of all cases that are known to the system) and an inferencing mechanism to drive a solution from the stored cases.

Software Life Cycle Processes: It provides a framework for the sequence of activities to be performed for software projects.

Software Testing: Software testing provides the mechanism for verifying that the requirements identified during the initial phases of the project were properly implemented and that the system performs as expected. The test scenarios developed through these competitions ensures that the requirements are met end-to-end.

Software Process Standards: It presents fundamental standards that describe activities performed as part of the software life cycle. In some cases, these standards also describe documents, but these represent plans for conducting activities.

Critical Software Systems: Software whose failure would impact safety or cause large financial or social losses.

Complete Chapter List

Search this Book: