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 

  • 相关阅读:
    面试题八 二进制中 1 的个数
    面试题七 斐波那契数列
    面试题六 用两个栈实现队列
    第 3 章 第 2 题 求级数问题 递归法实现
    第 3 章 第 1 题 精简冗余 if 语句问题 使用数组实现
    第 2 章 第 10 题 测量电灯泡体积问题
    第 2 章 第 9 题 顺序 & 二分搜索效率分析问题
    带缓冲的IO( 标准IO库 )
    Linux 中权限控制实例
    Linux 中权限的再讨论( 下 )
  • 原文地址:https://www.cnblogs.com/zztian/p/2350058.html
Copyright © 2011-2022 走看看