共查询到20条相似文献,搜索用时 0 毫秒
1.
Vanya Yaneva Ajitha Rajan Christophe Dubach 《Software Testing, Verification and Reliability》2022,32(1):e1796
Model-based development is a popular development approach in which software is implemented and verified based on a model of the required system. Finite state machines (FSMs) are widely used as models for systems in several domains. Validating that a model accurately represents the required behaviour involves the generation and execution of a large number of input sequences, which is often an expensive and time-consuming process. In this paper, we speed up the execution of input sequences for FSM validation, by leveraging the high degree of parallelism of modern graphics processing units (GPUs) for the automatic execution of FSM input sequences in parallel on the GPU threads. We expand our existing work by providing techniques that improve the performance and scalability of this approach. We conduct extensive empirical evaluation using 15 large FSMs from the networking domain and measure GPU speed-up over a 16-core CPU, taking into account total GPU time, which includes both data transfer and kernel execution time. We found that GPUs execute FSM input sequences up to 9.28× faster than a 16-core CPU, with an average speed-up of 4.53× across all subjects. Our optimizations achieve an average improvement over existing work of 58.95% for speed-up and scalability to large FSMs with over 2K states and 500K transitions. We also found that techniques aimed at reducing the number of required input sequences for large FSMs with high density were ineffective when applied to all-transition pair coverage, thus emphasizing the need for approaches like ours that speed up input execution. 相似文献
2.
Yu‐Seung Ma Jeff Offutt Yong Rae Kwon 《Software Testing, Verification and Reliability》2005,15(2):97-133
Several module and class testing techniques have been applied to object‐oriented (OO) programs, but researchers have only recently begun developing test criteria that evaluate the use of key OO features such as inheritance, polymorphism, and encapsulation. Mutation testing is a powerful testing technique for generating software tests and evaluating the quality of software. However, the cost of mutation testing has traditionally been so high that it cannot be applied without full automated tool support. This paper presents a method to reduce the execution cost of mutation testing for OO programs by using two key technologies, mutant schemata generation (MSG) and bytecode translation. This method adapts the existing MSG method for mutants that change the program behaviour and uses bytecode translation for mutants that change the program structure. A key advantage is in performance: only two compilations are required and both the compilation and execution time for each is greatly reduced. A mutation tool based on the MSG/bytecode translation method has been built and used to measure the speedup over the separate compilation approach. Experimental results show that the MSG/bytecode translation method is about five times faster than separate compilation. Copyright © 2004 John Wiley & Sons, Ltd. 相似文献
3.
基于状态的类测试技术研究 总被引:12,自引:0,他引:12
面向对象软件测试是面向对象软件开发的重要一环,是保证软件质量、提高软件可靠性的关键,类测试是面向对象软件测试的关键,类的状态的测试是面向对象软件测试中的重要内容,本文介绍了基于状态转移图的类测试和基于对象动态测试模型的类测试。 相似文献
4.
Dianxiang Xu Omar El‐Ariss Weifeng Xu Linzhang Wang 《Software Testing, Verification and Reliability》2012,22(4):267-293
Aspect‐oriented programming yields new types of programming faults due to the introduction of new constructs for dealing with crosscutting concerns. To reveal aspect faults, this paper presents a framework for testing whether or not aspect‐oriented programs conform to their state models. It supports two families of strategies (i.e. structure‐oriented and property‐oriented) for automated generation of aspect tests from aspect‐oriented state models. A structure‐oriented testing strategy derives tests and test code from an aspect‐oriented state model to meet a given structural coverage criterion, such as state coverage, transition coverage, or round trip. A property‐oriented testing strategy generates test code from the counterexamples of model checking. Two such strategies are checking an aspect‐oriented state model against trap properties and checking mutants of aspect models against system properties. Mutation analysis of aspect‐oriented programs is used to evaluate the effectiveness of these testing strategies. The experiments demonstrate that testing aspect‐oriented programs against their state models can detect many aspect faults. The comparative evaluations also reveal that the structure‐oriented and property‐oriented testing strategies complement each other—some aspect faults were detected by the structure‐oriented strategies, but not by the property‐oriented strategies and vice versa. Copyright © 2010 John Wiley & Sons, Ltd. 相似文献
5.
Luo Gang 《计算机科学技术学报》1994,9(4):289-301
We present a method of generating test cases from the software specifications which are modeled by nondeterministic finite state machines.It is applicable to both nondeterministic and deterministic finite state machines.When applied to deterministic machines,this method yields usually smaller test suites with full fault coverage than the existing methods that also assure full fault coverage.In particular,the proposed method can be used to test the control portion of software specified in the formal specification languages SDL or ESTELLE. 相似文献
6.
Lee White Khaled Jaber Brian Robinson Vclav Rajlich 《Journal of Software: Evolution and Process》2008,20(6):419-433
Testing firewalls have proven to be a useful approach for regression testing in both functional and object‐oriented software. They involve only the modules that are closely related to the changed modules. They lead to substantially reduced regression tests but still are very effective in detecting regression faults. This paper investigates situations when data‐flow paths are longer, and the testing of modules and components only one level away from the changed elements may not detect certain regression faults; an extended firewall considers these longer data paths. We report empirical studies that show the degree to which an extended firewall detected more faults, and how much more testing was required to achieve this increased detection. Copyright © 2008 John Wiley & Sons, Ltd. 相似文献
7.
一个面向对象软件测试工具实现及其实验研究 总被引:2,自引:1,他引:2
测试仍然是软件质量保证的最有效的手段。本文在开发了C++语言面向对象的软件测试工具ErrSeed的基础上,通过对具体的C++工程的测试,得出具体的测试结果数据,并对结果进行深入的分析。该工具还将测试结果存放在一个数据库中,以积累有效的数据,这对软件的质量评估以及有关评估模型的建立非常有意义。实验证明ErrSeed是有效的,对以C/C++语言为开发工具的软件开发人员,测试人员及软件工程和软件逆向工程的科研人员有一定的帮助。 相似文献
8.
Debasish Kundu Monalisa Sarma Debasis Samanta Rajib Mall 《Software Testing, Verification and Reliability》2009,19(4):297-333
This paper presents an approach to generate test cases from UML 2.0 sequence diagrams and subsequently prioritize those test cases using model information encapsulated in the sequence diagrams. The test cases generated according to the proposed approach satisfy the scenario coverage criterion and are suitable for system‐level testing. For prioritizing test cases, three different prioritization metrics are proposed. The values of these prioritization metrics can be analytically computed from the model information only. This paper also presents an approach to generate test data using a concept called rule‐based matrix. The prioritization metrics are used to control the number of test data without compromising the test adequacy. The effectiveness of the proposed approach has been verified using two industrial designs. Copyright © 2009 John Wiley & Sons, Ltd. 相似文献
9.
A number of activities involved in testing software are known to be difficult and time consuming. Among them is the definition and coding of test oracles and the isolation of faults once failures have been detected. Through a thorough and rigorous empirical study, we investigate how the instrumentation of contracts could address both issues. Contracts are known to be a useful technique in specifying the precondition and postcondition of operations and class invariants, thus making the definition of object‐oriented analysis or design elements more precise. It is one of the reasons the Object Constraint Language (OCL) was made part of the Unified Modeling Language. Our aim in this paper is to reuse and instrument contracts to ease testing. A thorough case study is run where we define OCL contracts, instrument them using a commercial tool and assess the benefits and limitations of doing so to support the automated detection of failures and the isolation of faults. As contracts can be defined at various levels of detail, we also investigate the cost and benefit of using contracts at different levels of precision. We then draw practical conclusions regarding the applicability of the approach and its limitations. Copyright © 2003 John Wiley & Sons, Ltd. 相似文献
10.
面向对象类测试方法分析 总被引:4,自引:0,他引:4
面向对象软件测试是面向对象软件开发的重要阶段,面向对象测试的关键是类测试,当前,类测试常用的方法是基于状态的测试和数据流测试,文章对这两种方法进行了分析和比较,提出了将来基于这两种方法的研究重点。 相似文献
11.
E. S. F. Najumudheen Rajib Mall Debasis Samanta 《Journal of Software: Evolution and Process》2011,23(7):465-493
We propose a novel test coverage analysis technique for object‐oriented (OO) programs. An important novelty of our technique is the use of a single coherent model, Call‐based Object‐Oriented System Dependence Graph (COSDG), which helps in presenting a unified test coverage analysis framework for OO programs. COSDG represents both procedural and OO features. Our technique not only uses the model to identify the different program features that are to be exercised by a test suite, but also captures the executed program features in the model for subsequent coverage evaluation and reporting. During test executions, the model elements corresponding to the executed features are marked. This helps in determining coverage on‐the‐fly, without the need to store the execution traces in a file. We describe the computation of various coverage measures, both procedural and OO, from the model elements. We have implemented our model‐based technique in a prototype tool, named KANZ. The experimental results obtained by using the tool demonstrate the efficacy and efficiency of our technique in determining OO coverage measures. Copyright © 2010 John Wiley & Sons, Ltd. 相似文献
12.
Gregg Rothermel Mary Jean Harrold Jeinay Dedhia 《Software Testing, Verification and Reliability》2000,10(2):77-109
Regression testing is an important but expensive software maintenance activity performed with the aim of providing confidence in modified software. Regression test selection techniques reduce the cost of regression testing by selecting test cases for a modified program from a previously existing test suite. Many researchers have addressed the regression test selection problem for procedural language software, but few have addressed the problem for object‐oriented software. This paper presents a regression test selection technique for use with object‐oriented software. The technique constructs graph representations for software, and uses these graphs to select test cases, from the original test suite, that execute code that has been changed for the new version of the software. The technique is strictly code based, and requires no assumptions about the approach used to specify or test the software initially. The technique applies to modified and derived classes, and to application programs that use modified classes. Copyright © 2000 John Wiley & Sons, Ltd. 相似文献
13.
The introduction of object‐oriented technology does not appear to hinder overall productivity on new large commercial projects, but nor does it seem to improve it in the first two product generations. In practice, the governing influence may be the business workflow, and not the methodology. Copyright © 1999 John Wiley & Sons, Ltd. 相似文献
14.
Finite State Machines (FSMs) are widely used for verification and testing of many reactive systems and many methods are proposed for generating tests from FSMs with the guaranteed fault coverage. However, some systems can only be properly described when time constraints are considered, advocating the adoption of models with the notion of time. In this paper, a method for deriving conformance tests with the guaranteed fault coverage from a Timed FSM (TFSM) with a single clock is presented. Test derivation is based on a given fault domain that allows the derivation of test suites with reasonable length. More precisely, the fault domain includes every possible faulty TFSM implementation with the known largest time constraints boundaries and minimal duration of time guards. Given a deterministic possibly partial TFSM specification, a complete test suite that guarantees the detection of all faulty implementations with respect to the above fault domain is derived. Experiments with randomly generated timed FSMs are conducted to determine length of obtained test suites and assess the impact of varying the TFSM specification parameters on length of obtained test suites. Further, experiments with both untimed and timed machines are conducted and these experiments show that similar patterns for timed and untimed machines are obtained with respect to varying the number of states, inputs, and outputs of machines. 相似文献
15.
Mahmoud O. Elish Mojeeb Al‐Rahman Al‐Khiaty 《Journal of Software: Evolution and Process》2013,25(5):407-437
Software systems are subject to series of changes during their evolution as they move from one release to the next. The change histories of software systems hold useful information that describes how artifacts evolved. Evolution‐based metrics, which are the means to quantify the change history, are potentially good indicators of the changes in a software system. The objective of this paper is to derive and validate (theoretically and empirically) a set of evolution‐based metrics as potential indicators of the change‐prone classes of an object‐oriented system when moving from one release to the next. Release‐by‐release statistical prediction models were built in different ways. The results indicate that the proposed evolution‐based metrics measure different dimensions from those of typical product metrics. Additionally, several evolution‐based metrics were found to be correlated with the change‐proneness of classes. Moreover, the results indicate that more accurate prediction of class change‐proneness is achieved when the evolution‐based metrics are combined with product metrics. Copyright © 2012 John Wiley & Sons, Ltd. 相似文献
16.
Nashat Mansour Husam Takkoush Ali Nehme 《Journal of Software: Evolution and Process》2011,23(1):51-68
In software maintenance, a system has to be regression tested after modifying it. The goal of regression testing is to ensure that modifications have not adversely affected the system. Regression test selection determines a subset of test cases, from the initial test suite, which concentrates on the parts of the system affected by the modification. Previous techniques have been mainly code‐based and several of them have addressed procedural programs. When working with large and complex object‐oriented systems, source code‐based regression testing is usually costly. This paper proposes a programming‐language‐independent technique for regression test selection for object‐oriented software based on Unified Modeling Language (UML 2.0) design diagrams. These diagrams are: the newly introduced interaction overview diagram, class diagrams, and sequence diagrams. We assume a test suite that contains both unit and system test cases. Based on the software changes reflected in the class and the interaction overview diagrams, our proposed technique selects test cases in phases. In the first phase, we select both unit and system test cases that directly traverse the changed methods and their calling methods. For the second phase, we present algorithms for detecting system level changes in the interaction overview diagram. If the change is at the action level, which is represented by a sequence diagram, only the test cases that execute changed methods will be selected. We apply our proposed technique to a few object‐oriented subject applications and evaluate its precision and inclusiveness in addition to the number of selected tests; the results demonstrate the advantages of the technique. Copyright © 2010 John Wiley & Sons, Ltd. 相似文献
17.
We describe the design and implementation of system architecture to support object introspection in C++. In this system, information is collected by parsing class declarations, and is used to build a supporting environment for object introspection. Our approach is non‐intrusive because it requires no changes in the original class declarations and libraries; hence, binary compatibility between objects before and after the addition of introspective capability is ensured. This is critical if one wants to integrate third‐party class libraries, which are often supplied as black boxes and allow no modification, into highly dynamic applications. We present two applications: the first is automatic I/O support for C++ objects, and the other is interactive exercise of dynamically loaded C++ class libraries. Copyright © 2001 John Wiley & Sons, Ltd. 相似文献
18.
朱吉 《数字社区&智能家居》2006,(7):147-148
面向对象软件测试是面向对象软件开发的重要阶段.面向对象软件测试的用例设计是面向对象软件测试技术的重要组成部分。本文对面向对象软件测试技术的特点和层次的划分进行了研究,然后讨论了面向对象软件的测试用例设计的方法。 相似文献
19.
基于相似学的面向对象软件复杂性的定量测度研究 总被引:1,自引:0,他引:1
针对面向对象软件复杂性的定量评价问题,从相似系统学出发研究了面向对象软件系统的复杂性测度问题,提出了相似度、相异度和关联度杂度计算式,并建立了面向对象分类机制的模糊聚类方法。 相似文献
20.
Software engineers of multi‐agent systems (MASs) are faced with different concerns such as autonomy, adaptation, interaction, collaboration, learning, and mobility, which are essentially different from classical concerns addressed in object‐oriented software engineering. MAS developers, however, have relied mostly on object‐oriented design techniques and programming languages, such as Java. This often leads to a poor separation of MAS concerns and in turn to the production of MASs that are difficult to maintain and reuse. This paper discusses software engineering approaches for MASs, and presents a new method for integrating agents into object‐oriented software engineering from an early stage of design. The proposed approach encourages the separate handling of MAS concerns, and provides a disciplined scheme for their composition. Our proposal explores the benefits of aspect‐oriented software development for the incorporation of agents into object‐oriented systems. We also illustrate our aspect‐oriented approach through the Portalware multi‐agent system, a Web‐based environment for the development of e‐commerce portals. Copyright © 2004 John Wiley & Sons, Ltd. 相似文献