已解决
第五章:Testing Modules
来自网友在路上 189889提问 提问时间:2023-11-06 17:45:04阅读次数: 89
最佳答案 问答题库898位专家为你答疑解惑
文章目录
- State and Programs
- Testability of State-Based Programs
- intrusively test 侵入性测试
- Non-intrusive test 非侵入测试
- java和其他工具的实践
- 有限状态机进行单元测试(Unit testing with FSA)
- 构建状态机步骤
- step1:识别 FSA 状态
- step2:确定某个状态下的可用操作
- step3:确定 source state 和 target states
- 一个构建 FSA 的实例
- 通过 FSA 构建 test case
- Intrusively Testing the State Transition Diagram (侵入性测试状态转换图)
- Non-intrusive Testing the State Transition Diagram (非侵入性测试状态转换图)
- Problems with State Based Testing
- 测试面向对象程序
- 面向对象语言特点
- Classes and Objects
- 继承 Inheritance
- 多态 Polymorphism
- 测试继承和多态
- Building and Testing Inheritance Hierarchies (构建和测试继承层次结构)
- Implications of Polymorphism
- 目的是测试模块而非单个 function
State and Programs
- Data = State.
- State is accessed & manipulated via specific operations. 通过特定操作访问和操作状态。
- Collections of these operations = Module. 这些操作集合 = 模块。
- Benefits:
- Separation of interface and implementation. 接口和实现分离。
- Treats operations as a black box. 将操作视为黑盒子。
- Data details concealed; changes to data don’t affect users if the interface remains consistent. 数据细节隐藏;如果接口保持一致,则对数据进行更改不会影响用户。
Testability of State-Based Programs
-
testability 取决于 可控性 和 可观察性
-
例如,考虑一个允许操作和访问堆栈的模块。该类的操作允许我们将元素推入堆栈,查看堆栈顶部,弹出堆栈顶部的元素,并检查堆栈是否为空。
-
按照之前的知识,如果我们要测试一个 funciton 或者模块,我们根据其输入的参数设计等价类,并选用合适的 test case,然后我们可以根据预期的输出来观察 funciton 运行的结果。
-
但是这个堆栈并非如此;push操作不需要堆栈参数,这意味着无法通过其接口控制push操作。此外,一旦将元素推入堆栈,我们无法直接观察到堆栈的值。 因此,作为堆栈模块的操作不容易被控制或观察到。
-
所以,不能孤立地测试 push 这个操作,要测试 push 这个 fun
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"第五章:Testing Modules":http://eshow365.cn/6-33806-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!