探索式软件测试--- 局部
局部探索式软件测试有一个好处是测试人员不需要知道很多信息就可以完成一些测试任务。重点是把测试经验、专业知识、软件在操作环境下如果构建和运行的知识结合在一起,使我们在测试中做出正确决定。
5策略: 输入(Input)、状态(State)、代码路径(Code Path)、用户数据(User Data)和执行环境(Execution Environment)
测试就是有所变,有所不变!
用户输入: 有环境产生的一种刺激,该刺激导致被测试的应用程序有所响应。分成原子输入和抽象输入
如何测试用户输入:
1. 合法输入和非法输入 (postive testing and negative testing)
2. 输入筛选 (input filter)
3. 输入检查 (input check)
4. 异常处理代码 (exception)
5. 常规输入还是非常规输入
6. 默认输入或者用户提供的输入
7. 使用输出来指导输入选择
状态 :状态空间中的一个点,它由所有内部数据结构的取值来唯一确定。
如果测试软件状态:
多个输入的组合或者改变顺便(颠倒);同一个东西重复执行(溢出);状态图;和输出想结合
1. 使用状态信息来帮助寻找相关的输入
2. 使用状态信息来辨别重要的输入序列
代码路径(Code Path ? Code Coverage)
用户数据 : 创建一个含有特定数据的数据存储,它包含的数据应该和软件真实用户使用的数据尽量相似。
1. 随着用户数据库中的数据被不断地添加和修改,长年累月下来的数据会变得很多
2. 真是用户的数据通常包含测试人员不了解的很多相互关系结构,而且测试人员往往无法推测真实数据中可能会有什么样的关系和结构。
3. 数据量大,海量数据的存储问题
4. 用户敏感数据,用户隐私。PPI (personally identifiable information)
运行环境:使用的操作系统和它的当前配置(软件,驱动,代码,文件,设置,网络情况,网络可用带宽,性能,Windows 注册表
输入、代码路径、状态、被存储的的数据和运行环境等,这里太多太多的因素,而每个因素又有太多的变化可能。