首页> 外文OA文献 >Formal testing of object-oriented software: from the method to the tool
【2h】

Formal testing of object-oriented software: from the method to the tool

机译:面向对象软件的形式化测试:从方法到工具

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

This thesis presents a method and a tool for test set selection, dedicated to object-oriented applications and based on formal specifications. Testing is one method to increase the quality of today's extraordinary complex software. The aim is to find program errors with respect to given criteria of correctness. In the case of formal testing, the criterion of correctness is the formal specification of the tested application: program behaviors are compared to those required by the specification. In this context, the difficulty of testing object-oriented software arises from the fact that the behavior of an object does not only depend on the input values of the parameters of its operations, but also on its current state, and generally on the current states of other related objects. This combinatorial explosion requires carefully selecting pertinent test sets of reasonable size. This thesis proposes a formal testing method which takes this issue into account. Our approach is based on two different formalisms: a specification language well adapted to the expression of system properties from the specifier's point of view, and a test language well adapted to the description of test sets from the tester's point of view. Specifications are written in an object-oriented language, CO-OPN (Concurrent Object-Oriented Petri Nets), based on synchronized algebraic Petri nets and devoted to the specification of concurrent systems. Test sets are expressed using a very simple temporal logic, HML (Hennessy-Milner Logic), whose logic formulas can be executed by a program. There exists a full agreement, shown in this thesis, between the CO-OPN and HML satisfaction relationships: the program satisfies its specification if and only if it satisfies the exhaustive test set derived from this specification. The exhaustive test set expresses all the specification properties. The exhaustive test set is generally infinite. Its size is reduced by applying hypotheses to the program behavior. These hypotheses define test selection strategies and reflect common test practices. The quality of the test sets thus selected only depends on the pertinence of the hypotheses. Concretely, the reduction is achieved by associating to each hypothesis applied to the program, a constraint on the test set. Our method proposes a set of elementary constraints: syntactic constraints on the structure of the tests and semantic constraints which allow to instantiate the test variables so as to cover the different classes of behaviors induced by the specification (subdomain decomposition). Elementary constraints can be combined to form complex constraints. Finally, the constraint system defined on the exhaustive test set is solved, and the solution leads to a pertinent test set of reasonable size. Thanks to the CO-OPN semantics, which allows to compute all the correct and incorrect behaviors induced by a specification, our method is able to test, on the one hand that a program does possess correct behaviors, and on the other hand that a program does not possess incorrect behaviors. An advantage of this approach is to provide through the tests, an observational description of valid and invalid implementations. Our testing method exhibits the advantage of being formal, and thus allows a semi-automation of the test selection process. A new tool, called CO-OPNTEST, is presented in this thesis. This tool assists the tester during the construction of constraints to apply to the exhaustive test set; afterward it automatically generates a test set satisfying these constraints. The CO-OPNTEST architecture is composed of a PROLOG kernel and a Java graphical interface. The kernel is an equational resolution procedure based on logic programming. It includes control mechanisms for subdomain decomposition. The graphical interface allows a user-friendly definition of the test constraints. The CO-OPNTEST tool has generated test sets for several case studies in a simple, rapid and efficient way. In particular, it has generated test sets for an industrial case study of realistic size: the control program of a production cell [Lewerentz 95]. CO-OPNTEST and its application to significant examples demonstrate the pertinence of our approach.
机译:本文提出了一种用于测试集选择的方法和工具,专用于面向对象的应用并基于形式规范。测试是提高当今非凡复杂软件质量的一种方法。目的是根据给定的正确性标准查找程序错误。在正式测试的情况下,正确性的标准是被测试应用程序的正式规范:将程序行为与规范要求的行为进行比较。在这种情况下,测试面向对象软件的困难源于以下事实:对象的行为不仅取决于其操作参数的输入值,还取决于其当前状态,并且通常还取决于当前状态。其他相关对象。这种组合爆炸需要仔细选择合理大小的相关测试集。本文提出了一种考虑到这一问题的正式测试方法。我们的方法基于两种不同的形式主义:从说明者的角度来看,一种非常适合于系统特性表达的规范语言;从测试者的角度来看,一种非常适合于测试集描述的测试语言。规范以面向对象的语言CO-OPN(并发面向对象的Petri网)编写,基于同步代数Petri网,并致力于并发系统的规范。测试集使用非常简单的时间逻辑HML(Hennessy-Milner逻辑)表示,其逻辑公式可以由程序执行。如本文中所示,在CO-OPN和HML满意度关系之间存在着完全的共识:当且仅当程序满足从该规范派生的详尽测试集时,程序才满足其规范。详尽的测试集表达了所有规范属性。详尽的测试集通常是无限的。通过将假设应用于程序行为来减小其大小。这些假设定义了测试选择策略并反映了常见的测试实践。这样选择的测试集的质量仅取决于假设的相关性。具体地,通过将​​应用于该程序的每个假设与对测试集的约束相关联来实现约简。我们的方法提出了一组基本约束:测试结构的语法约束和语义实例,这些语义约束允许实例化测试变量,从而覆盖由规范引起的不同类别的行为(子域分解)。基本约束可以组合形成复杂约束。最后,解决了在详尽测试集上定义的约束系统,并且该解决方案导致了合理大小的相关测试集。由于使用了CO-OPN语义,该语义可以计算由规范引起的所有正确和不正确的行为,因此我们的方法能够测试一个程序确实具有正确的行为,而另一方面可以测试一个程序没有不正确的行为。这种方法的一个优点是通过测试提供对有效和无效实现的观察性描述。我们的测试方法具有形式化的优势,因此可以实现测试选择过程的半自动化。本文提出了一种称为CO-OPNTEST的新工具。该工具可在构建约束时协助测试人员将其应用于详尽的测试集。之后,它会自动生成满足这些约束的测试集。 CO-OPNTEST体系结构由PROLOG内核和Java图形界面组成。内核是基于逻辑编程的方程式解析过程。它包括用于子域分解的控制机制。图形界面允许用户友好地定义测试约束。 CO-OPNTEST工具以简单,快速和有效的方式为多个案例研究生成了测试集。特别是,它已经为实际尺寸的工业案例研究生成了测试集:生产单元的控制程序[Lewerentz 95]。 CO-OPNTEST及其在重要示例中的应用证明了我们方法的相关性。

著录项

  • 作者

    Péraire Cécile;

  • 作者单位
  • 年度 1998
  • 总页数
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号