首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 250 毫秒
1.
一种新的变异测试数据自动生成方法   总被引:7,自引:0,他引:7  
变异测试是一种行之有效的软件测试方法,通过使用变异算子产生变异体系统地模拟软件中的各种缺陷,然后构造能够杀死这些变异体的测试数据集.自动生成能够杀死变异体的测试数据将提高变异测试的效率和有效性.当前的研究工作只考虑生成杀死单个变异体的测试数据.文中根据杀死同一位置的多个变异体的条件相近的特点,提出一种对杀死这些变异体的条件进行组合,然后生成同时杀死该位置多个变异体的测试数据的方法;给出相应的支持工具,并且通过实验验证方法的有效性.  相似文献   

2.
针对检测缺陷的测试数据生成效率低下问题,提出变异测试和路径覆盖测试技术结合的测试数据生成方法。首先,采用变异测试技术生成的变异分支融入程序,生成新的被测程序;然后,在原路径集中挑选目标路径,通过分析变异分支与路径关联关系,将变异分支融入路径。最后,基于遗传算法生成覆盖路径的测试数据。实验结果表明,多种群遗传算法生成测试数据的时间,比单种群遗传算法节约了41.15%。由此可见,对于覆盖多路径测试数据生成,多种群遗传算法的效率比单种群遗传算法高。  相似文献   

3.
介绍基于规约说明的变异算法在测试数据生成中的应用思想,分析不同变异算子与故障类别之间的蕴含关系,把这种算法应用到构件合约变异中,提高了测试数据的有效性,简化了最终测试数据集,克服了传统构件合约变异测试产生大量变异体带来的测试低效性。  相似文献   

4.
一种Web服务的测试数据自动生成方法   总被引:32,自引:1,他引:31  
软件测试是保证Web服务质量的重要技术手段.测试数据生成是Web服务测试的重要内容.测试数据的质量将直接影响Web服务测试的效率和成本.文章基于合约式设计的 Web服务测试技术,提出一种 Web服务的测试数据自动生成方法.首先根据WSDL文档采用随机法自动生成初始测试数据,然后使用合约变异技术进行测试数据的选择,据此可以生成一组达到一定合约变异充分度的有效测试数据,从而提高 Web服务的测试质量和效率.最后实现了一个Web服务的测试数据自动生成工具原型,并通过实验验证了方法的有效性.  相似文献   

5.
面向对象软件测试与传统的软件测试区别不大,只有类和类簇的测试才体现了面向对象软件测试的特点,而两者之间又以类的测试最为关键。本文通过对状态机模型生成类的测试序列的方法和代码实现以及基于状态测试法的测试数据生成的问题的探讨,认为基于状态的测试方法和基于代数规约的测试方法(ASTOOT方法)将是类测试的主要的发展方向,其余方法大多只能以辅助的面貌出现。  相似文献   

6.
面向对象软件测试与传统的软件测试区别不大,只有类和类簇的测试才体现了面向对象软件测试的特点,而两者之间又以类的测试最为关键。本文通过对状态机模型生成类的测试序列的方法和代码实现以及基于状态测试法的测试数据生成的问题的探讨,认为基于状态的测试方法和基于代数规约的测试方法(ASTOOT方法)将是类测试的主要的发展方向,其余方法大多只能以辅助的面貌出现。  相似文献   

7.
姜凡  郑人杰 《计算机学报》1990,13(8):583-590
本文通过COBOL软件测试环境COSTE的讨论,着重分析了用于系统的弱变异方法及关系测试数据生成的基本思想。文中提出了通过弱变异结果自动补足测试数据的方法,并在重新分类测试关系且引入关系反馈概念的基础上,提出了增大测试覆盖面的一种关系测试数据生成算法。  相似文献   

8.
基于变异的Web复合服务测试数据选择方法   总被引:1,自引:0,他引:1  
张美花  姜瑛 《计算机应用》2011,31(9):2444-2448
Web服务集成测试的测试数据数量巨大,影响了测试的质量和效率。提出一种基于变异技术的Web复合服务测试数据选择方法,根据BPEL(Business Process Execution Language)文档获取复合服务的路径集,采用接口变异算子和路径变异算子生成变异体,根据初始测试数据杀死变异体的能力选择有效的测试数据。通过实验验证了方法的有效性,选择出的测试数据数量较少且有效。  相似文献   

9.
针对应用等价类划分和边界值分析方法测试Web服务时面临组合策略的选择问题,分析正交试验设计法、全组合法、均匀试验设计法和扩展均匀试验设计法生成Web服务的测试数据集的测试效果;提出扩展均匀试验设计法生成测试数据集;据此实现一个生成Web服务的测试数据集的原型工具。  相似文献   

10.
针对遗传算法在运算过程中产生的早熟问题,提出一种自适应动态优化策略(SAOGO),用以自动生成测试数据。通过优化变异概率等手段,实现了路径测试数据的自动生成。将Triangle(三角形判别问题)作为被检测程序进行性能测试,实验结果表明,基于该策略的测试数据自动生成系统能自动调整变异概率和保持优秀个体,有效的解决了早熟问题,同时也提高了自动生成测试数据的效率。  相似文献   

11.
基于代数规约的Web服务测试   总被引:4,自引:1,他引:3       下载免费PDF全文
余波  孔良  彭琛 《计算机工程》2009,35(21):60-61,6
针对自动测试Web服务,提出基于代数规约测试Web服务的方法,包括描述Web服务的代数规约语言ASOWS。基于Web服务的代数规约,采用方法覆盖准则以及等式覆盖准则自动生成测试用例,在此基础上,设计并实现一个原型工具。结果表明该方法能够自动测试部署在Web应用服务器上的Web服务。  相似文献   

12.
Given an algebraic specification of a class of objects, we define a fundamental pair as two equivalent terms generated by substituting all the variables on both sides of an axiom by normal forms. For any implementation error in the class, if it can be revealed by two equivalent terms in general, it can also be revealed by a fundamental pair. Hence, we need only select test cases from the set of fundamental pairs instead of equivalent pairs in general. We highlight an algorithm for selecting a finite set of fundamental pairs as test cases. Further, by using the relevant observable contexts technique, we highlight another algorithm to determine whether the objects resulting from executing a fundamental pair are observationally equivalent. If not, it reveals an implementation error.Using these algorithms, we have constructed a system to test object-oriented programs at class-level. We describe in detail the implementation of a prototype system, including the data structure of a Data member Relevant Graph (DRG) for the class, the procedures for the construction and path traversal of the DRG, the generation and execution of relevant observable contexts on the objects under test, and the reporting of implementation errors. The implementation illustrates an innovative idea of embedding testing algorithms into an interpreter to facilitate software testing.  相似文献   

13.
In this paper we discuss the advantages and limitations of a specification‐based software testing technique we call CEG‐BOR. There are two phases in this approach. First, informal software specifications are converted into cause‐effect graphs (CEG). Then, the Boolean OperatoR (BOR) strategy is applied to design and select test cases. The conversion of an informal specification into a CEG helps detect ambiguities and inconsistencies in the specification and sets the stage for design of test cases. The number of test cases needed to satisfy the BOR strategy grows linearly with the number of Boolean operators in CEG, and BOR testing guarantees detection of certain classes of Boolean operator faults. But, what makes the approach especially attractive is that the BOR based test suites appear to be very effective in detecting other fault types. We have empirically evaluated this broader aspect of the CEG‐BOR strategy on a simplified safety‐related real‐time control system, a set of N‐version programs, and on elements of a commercial data‐base system. In all cases, CEG‐BOR testing required fewer test cases than those generated for the applications without the use of CEG‐BOR. Furthermore, in all cases CEG‐BOR testing detected all faults that the original, and independently generated, application test‐suites did. In two instances CEG‐BOR testing uncovered additional faults. Our results indicate that the CEG‐BOR strategy is practical, scalable, and effective across diverse applications. We believe that it is a cost‐effective methodology for the development of systematic specification‐based software test‐suites.  相似文献   

14.
侯雪梅  于磊  张兴隆  李志博 《计算机应用》2015,35(10):2990-2994
针对面向对象软件类级测试中方法序列调用时的Oracle问题,提出了一种基于代数规格的面向对象蜕变关系构造方法,并根据此方法进行蜕变测试。首先基于代数规格给出面向对象测试中蜕变关系的构造准则,然后根据构造准则对GFT(Generating a Finite number of Test cases)算法中范式构造蜕变关系方法进行改进,最后通过一个整数栈类对提出的蜕变关系构造准则进行了验证测试,并与GFT算法中范式构造蜕变关系方法进行了对比,结果表明在相似的变异检测率下,改进后的方法使得构造的蜕变关系冗余度降低了66%,验证了改进的蜕变关系构造方法有更低的蜕变关系冗余度,提高了软件测试效率。  相似文献   

15.
In the context of testing from algebraic specifications, test cases are ground formulas chosen amongst the ground semantic consequences of the specification, according to some possible additional observability conditions. A test set is said to be exhaustive if every programme P passing all the tests is correct and if for every incorrect programme P, there exists a test case on which P fails. Because correctness can be proved by testing on such a test set, it is an appropriate basis for the selection of a test set of practical size. The largest candidate test set is the set of observable consequences of the specification. However, depending on the nature of specifications and programmes, this set is not necessarily exhaustive. In this paper, we study conditions to ensure the exhaustiveness property of this set for several algebraic formalisms (equational, conditional positive, quantifier free and with quantifiers) and several test hypotheses. Copyright © 2016 John Wiley & Sons, Ltd.  相似文献   

16.
One class of program defects results from illegal sequences of otherwise legal operations in software implementations. Explicit statement of sequencing constraints, however, is not a common activity when specifying software even when using formal specification methods. This paper shows that constraints on program execution sequences can be derived directly from algebraic specifications. Results include heuristic methods for generating sequencing constraints and a generalization of these methods into automatable rules. The heuristics can be integrated into a specification methodology such as Larch. Engineers can use the generated sequencing constraints to detect sequencing defects in software even before dynamic testing begins. The method can be used to increase the reliability of software that is specified using algebraic methods.  相似文献   

17.
This paper presents a theory of testing that integrates into Hoare and He’s Unifying Theory of Programming (UTP). We give test cases a denotational semantics by viewing them as specification predicates. This reformulation of test cases allows for relating test cases via refinement to specifications and programs. Having such a refinement order that integrates test cases, we develop a testing theory for fault-based testing. Fault-based testing uses test data designed to demonstrate the absence of a set of pre-specified faults. A well-known fault-based technique is mutation testing. In mutation testing, first, faults are injected into a program by altering (mutating) its source code. Then, test cases that can detect these errors are designed. The assumption is that other faults will be caught, too. In this paper, we apply the mutation technique to both, specifications and programs. Using our theory of testing, two new test case generation laws for detecting injected (anticipated) faults are presented: one is based on the semantic level of UTP design predicates, the other on the algebraic properties of a small programming language.  相似文献   

18.
A compiler-based specification and testing system for defining data types has been developed. The system, DAISTS (data abstraction implementation, specification, and testing system) includes formal algebraic specifications and statement and expression test coverage monitors. This paper describes our initial attempt to evaluate the effectiveness of the system in helping users produce software. In an exploratory study, subjects without prior experience with DAISTS were encouraged by the system to develop effective sets of test cases for their implementations. Furthermore, an analysis of the errors remaining in the implementations provided valuable hints about additional useful testing metrics.  相似文献   

19.
Regression testing is important activity during the software maintenance to deal with adverse effects of changes. Our approach is important for safety critical system as usually formal methods are preferred and highly recommended for the safety critical systems but they are also applied for the systems development of other than critical system. Our approach is based on Regression testing using VDM++ which takes two VDM++ specifications, one baseline and other delta (Changed) along with test suite for the baseline version. It compares both versions by using comparator module, identifies the change. By analyzing the change we classify the test cases from original test suite into obsolete, re-testable, and reusable test cases. Our scope is at unit level i.e. at class level. Our approach gets two versions of VDM++ specification and returns regression test suite for the delta version. Our approach distinguishes test cases which are still effective for the delta version of VDM++ specification and it differs from re-test all strategy as it can distinguish the test cases and identifies test cases which are useful for delta version. Test cases reusability and test case reduction is the main objective of our approach. Our approach presents how to perform regression testing using VDM++ specification during the maintenance of systems.  相似文献   

20.
Although testing is a major part of software development, it rarely gets the attention it deserves from researchers, partly because its foundations are weak and ill-understood. The principal purpose of testing is to detect (and then remove) faults in a software system. However, very few of the existing methods allow the tester to make any precise statement about the type or number of faults that remain undetected after testing is completed. In particular, none of the main techniques used by the software industry can give serious guarantees that a system is fault-free after testing has been completed. This paper advocates the use of a formal method both as a specification language and as the basis of a test data selection strategy. It presents a new method for generating test cases from this type of formal specification that provides a more convincing answer to the problem of detecting all faults in a software system. The method is reductionist in the sense that it guarantees that a system is fault-free provided that its components are fault-free; in turn, the same method could be used to test the resulting sub-systems, so the reduction will continue until the components considered are either known to be correct or are fairly simple pieces of code that can be successfully tested using traditional methods. The formal method used, X-machines, is a blend of finite state machines, data structures and processing functions and provides a simple and intuitive way of specifying computer systems. The use of X-machines as a specification tool and the testing method are illustrated with a case study. © 1998 John Wiley & Sons, Ltd.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号