zoukankan      html  css  js  c++  java
  • Object Biography: Cruise Control, Elevator, and Ordered Set

     

    The Java clusters (Cruise Control, Elevator and OrdSet) presented here have been used in an empirical study addressing the impact of using state machines for testing class clusters that exhibit a state-dependent behavior in testing cost effectiveness when compared with structural testing.(就是这些数据集被用来,比较基于状态的测试跟结构化测试的花销及有效性)。

    The RTP testing technique , a common state testing strategy, was selected for state based testing. A state machine would be represented as a tree graph, called transition tree which includes (in a piecewise manner) all the transition sequences (paths) that begin and end with the same state, as well as simple paths (i.e., sequences of transitions that contain only one iteration for any loop present in the state machine) from the initial state to the final state. A transition tree is provided in the package documentation. Participants working with state machines are asked to use state invariants in their oracle assertions. After executing a transition, an oracle assertion checks the new cluster state with the expected state invariant. Participants are also asked to implement contract assertions in their oracles. Contract assertions include class invariant, and methods' preconditions and post-conditions. The different invariants and contracts are provided in OCL in the provided documentation.

    For structural testing, participants were told to attempt covering all blocs (nodes, statements) and edges in the methods' control flow graphs. By running their drivers on the instrumented code (provided along with the source code), the students identify non-covered nodes and edges. This guides students to identify new test cases to be added to their drivers to improve structural coverage. Structural testing students were advised to write oracles checking expected output/attribute values against actual ones.

    To compare the fault detection effectiveness of state based testing to structural testing, one executes the different drivers delivered by the experiment participants on a number of mutant programs (or mutants - provided in the package), that is versions of the program under test where one fault was seeded using a mutation operator. The mutants were automatically generated using MuJava .

    References

    Assessing, Comparing, and Combining State machine-Based Testing and Structural Testing: A Series of Experiments, Samar Mouchawrab, Lionel C. Briand, Yvan Labiche, and Massimiliano Di Penta. 2008. Technical Report, Carleton University, Ottawa, Ontario, Canada.pdf 

  • 相关阅读:
    宋宝华: Linux内核编程广泛使用的前向声明(Forward Declaration)
    朱辉(茶水): Linux Kernel iowait 时间的代码原理
    宋宝华:Linux设备驱动框架里的设计模式之——模板方法(Template Method)
    宋宝华:论程序员的时代焦虑与焦虑的缓解
    邵国际: C 语言对象化设计实例 —— 命令解析器
    让天堂的归天堂,让尘土的归尘土——谈Linux的总线、设备、驱动模型
    宋宝华:关于Ftrace的一个完整案例
    php采集页面指定标签里面的内容
    js调用video的播放时长
    php解析url并得到url中的参数
  • 原文地址:https://www.cnblogs.com/zztian/p/2350058.html
Copyright © 2011-2022 走看看