AN APPROACH TO TESTING BLACK-BOX COMPONENTS USING CONTRACT-BASED MUTATION

Author(s):  
YING JIANG ◽  
SHAN-SHAN HOU ◽  
JIN-HUI SHAN ◽  
LU ZHANG ◽  
BING XIE

Component Based Software Development (CBSD) is gaining popularity in recent years. In this way of software development, software components, which are typically black-box components, are intensively reused to construct new systems. To ensure the quality of software systems composed of black-box components, a primary concern is how to ensure the quality of black-box components. Thus, adequate testing of those black-box components that will be reused is a necessary step in CBSD. However, due to the unavailability of the source code of black-box components, ensuring test adequacy becomes one of the hardest issues for testing black-box components. To tackle this problem, it is a natural idea to apply mutation testing, which is a fault-based testing method used for measuring test adequacy, for component contracts, whose aim is to improve the testability of the component. Though powerful, mutation testing is usually very computation-expensive, as many mutants need to be produced and executed in mutation testing. In this paper, we propose a contract-based mutation technique for testing black-box components. Based on the discordance between contracts and specification, our approach employs a set of high level contract mutation operators. The experimental results show that these operators can greatly reduce the number of mutants compared with traditional mutation operators. At the same time, the contract-based mutation using our contract mutation operators can provide almost the same ability as that of using traditional mutation operators. Therefore, our approach can produce effective test suites to reduce the cost of testing black-box components.

Author(s):  
V. A. Fedorova ◽  
T. A. Moiseeva ◽  
E. V. Poddubnaya

Currently, software is used in many areas of human activity. But the developers of software systems often have problems that leads to exceeding the time and budget of development, as well as reduces the quality and security of software. The paper proposes a methodology developed by the authors, which allows you to standardize the process of creating software. The proposed approach greatly facilitates the organization of the process of collective development and management of software development, improves the quality of the developed software, reduces the risks of the developer and the customer and also reduces the time spent on the creation of software and the cost of its development. The developed technique fully standardizes the software development process, from the moment of creation of specification and ending with the introduction and support of the software product.


2013 ◽  
Vol 378 ◽  
pp. 546-551 ◽  
Author(s):  
Joanna Strug ◽  
Barbara Strug

Mutation testing is an effective technique for assessing quality of tests provided for a system. However it suffers from high computational cost of executing mutants of the system. In this paper a method of classifying such mutants is proposed. This classification is based on using an edit distance kernel and k-NN classifier. Using the results of this classification it is possible to predict whether a mutant would be detected by tests or not. Thus the application of the approach can help to lower the number of mutants that have to be executed and so also to lower the cost of using the mutation testing.


Author(s):  
Reyes Delgado Paola Yuritzy ◽  
Mora Tavarez José Manuel ◽  
Duran-Limon Hector Alejandro ◽  
Rodríguez-Martínez Laura Cecilia ◽  
Mendoza González Ricardo ◽  
...  

The design Software Architecture (SA) is an essential activity in the modern development software systems. This SA design activity defines its core components, the interrelationships among them, and a set of essential attributes expected for the final software. While this design is realized in a high level of abstraction, missing this activity or a wrong conduction of it will have negative effects in further software development phases, and lately in the final software. Thus, SA design methods are relevant to be studied and applied. In this article, we review the SA design methods that are (explicitly or implicitly) included in five well-known Software Development Methodologies (SDMs). We report: (1) a brief description of the five SDMs; (2) a substantial description of the SA design methods used in each SDM; and (3) a comparative analysis among them using an evaluation template posited by well-recognized experts in this topic. Our results suggest that SA design methods, while sharing a similar design purpose and some activities, they also present a varied structured and nomenclature.


Author(s):  
P. K. KAPUR ◽  
ANU. G. AGGARWAL ◽  
KANICA KAPOOR ◽  
GURJEET KAUR

The demand for complex and large-scale software systems is increasing rapidly. Therefore, the development of high-quality, reliable and low cost computer software has become critical issue in the enormous worldwide computer technology market. For developing these large and complex software small and independent modules are integrated which are tested independently during module testing phase of software development. In the process, testing resources such as time, testing personnel etc. are used. These resources are not infinitely large. Consequently, it is an important matter for the project manager to allocate these limited resources among the modules optimally during the testing process. Another major concern in software development is the cost. It is in fact, profit to the management if the cost of the software is less while meeting the costumer requirements. In this paper, we investigate an optimal resource allocation problem of minimizing the cost of software testing under limited amount of available resources, given a reliability constraint. To solve the optimization problem we present genetic algorithm which stands up as a powerful tool for solving search and optimization problems. The key objective of using genetic algorithm in the field of software reliability is its capability to give optimal results through learning from historical data. One numerical example has been discussed to illustrate the applicability of the approach.


2020 ◽  
Vol 3 (1) ◽  
pp. 75-83
Author(s):  
Arfiani Nur Khusna

Kedai Kolega is a business engaged in the production of food and beverages. Colleges Store provides purchase and reservation service. The problem at Kedai Kolega is the reservation process by coming directly to the place so as to make the cost and time inefficient for customers who are away from the location. Customers also can not make reservations outside the operator hours due to limitations of colleagues in serving customers in real time 24 hours a day, Rapid Internet development is the driving factor of e-commerce. The Internet is a global network that connects computer networks around the world. Using the Internet in this case E-Commerce will facilitate Kedai Kolega when performing data management more quickly and accurately and make reservations online. E-Commerce system is tested using black box and alpha test method. The results showed that E-Commerce is able to provide convenience to the colleagues in improving the quality of service to customers


Author(s):  
D. Jeya Mala ◽  
A. Jalila

In a real-time software system, often a small portion of the components holds the major operations of the system. Thus, the rate of failure of those portions is high, which leads to major loss to the system. In order to develop cost-effective and high-quality software systems, those fault-prone components must be identified and tested rigorously. This paper analyzes the industrial questionnaire survey with a focus on the significance of early identification of fault-prone components within a system and importance of the fault-prone components-based testing. From the survey results, it has been inferred that, fault-prone components can be identified using software models, formal specifications and appropriate metrics and measures; which would, in turn, reduce the cost of defect and testing. Furthermore, the present study endeavours to investigate as to how far research efforts are essential in providing guidelines in the adoption of fault-prone components-based development, thus improving the quality of software development.


Author(s):  
D. Jeya Mala ◽  
R. Iswarya

In real time software systems, testing plays a crucial role as any of the critical components in these systems are left undetected, then inadvertent effects will happen which will lead to erroneous operations, system failure, high cost and resource wastage etc. To address this most important and the emergent problem, this research work proposes an effective method by means of multi-agents based approach to identify such critical components and execute test cases along the critical test paths which will aid in effectively covering them during testing. Finally, this paper also compared the performance with existing approaches in terms of time taken for the search process and the component coverage based test adequacy criterion to ensure quality of the software.


Author(s):  
G. Chroust

Information systems are designed for the people, by the people. The design of software systems with the help of software systems is another aspect of human-computer interfaces. New methods and their (non-)acceptance play an important role. Motivational factors of systems developers considerably influence the type and quality of the systems they develop (Arbaoui, Lonchamp & Montangero, 1999; Kumar & Bjoern-Andersen, 1990). To some extent, the quality of systems is a result of their developers’ willingness to accept new and (supposedly) better technology (Jones, 1995). A typical example is component-based development methodology (Bachmann et al., 2000; Cheesman & Daniels, 2001). Despite considerable publication effort and public lip service, component-based software development (CBD) appears to be getting a slower start than anticipated and hoped for. One key reason stems from the psychological and motivational attitudes of software developers (Campell, 2001; Lynex & Layzell, 1997). We therefore analyze the attitudes that potentially hamper the adoption of the component-based software development approach. Maslow’s Hierarchy of Need (Boeree, 1998; Maslow, 1943) is used for structuring the motives.


Author(s):  
Luis Costa ◽  
Neil Loughran ◽  
Roy Grønmo

Model-driven software engineering (MDE) has the basic assumption that the development of software systems from high-level abstractions along with the generation of low-level implementation code can improve the quality of the systems and at the same time reduce costs and improve time to market. This chapter provides an overview of MDE, state of the art approaches, standards, resources, and tools that support different aspects of model-driven software engineering: language development, modeling services, and real-time applications. The chapter concludes with a reflection over the main challenges faced by projects using the current MDE technologies, pointing out some promising directions for future developments.


Author(s):  
HOSSAIN SHAHRIAR ◽  
MOHAMMAD ZULKERNINE

Over the last few years, numerous vulnerabilities have been reported in software, and successful exploitations of these vulnerabilities have resulted in severe consequences such as denial of services and application state corruptions. Researches have shown that effective quality assurance methods can prevent such consequences when applied during software (or applications) development processes. Software security testing is a popular assurance method in this direction. However, effective testing involves obtaining an effective test suite (or collection of test cases) that can reveal specific faults. Over the last few years, different testing approaches have been applied for revealing vulnerabilities in software. However, only few works have assessed the effectiveness of test suites for revealing vulnerabilities. We believe that bringing the idea of mutation-based assessment of test adequacy for vulnerabilities can help in detecting and removing vulnerabilities proactively. In this work, we apply mutation-based adequate testing for one of the worst vulnerabilities namely buffer overflow (BOF). We propose 16 mutation operators to force the generation of adequate test suites for BOF vulnerabilities. A prototype tool is developed to automatically generate mutants and perform mutation analysis with input test cases. The effectiveness of the operators is evaluated by using several benchmark programs having BOF vulnerabilities, and the results indicate that the proposed operators are effective for testing BOF vulnerabilities. Moreover, we present an analysis to find selective mutation operators for reducing the cost of mutation-based testing of BOF vulnerabilities.


Sign in / Sign up

Export Citation Format

Share Document