测试人员可以借鉴的9条调试规则
来源:互联网 发布:手机滚动屏软件 编辑:程序博客网 时间:2024/05/21 19:44
1.理解系统
解决一个具体问题,很多时候需要在整体上理解系统。重现一个缺陷也要求测试人员在宏观上和细节上都能把握软件。在项目全程,测试人员需要积极的学习被测软件的领域知识、产品架构、代码实现、技术平台、调试工具等。只有较全面的理解软件,才能有效的分析信息、设计实验、快速测试。软件开发与测试没有捷径,持续积累才是正途。
2.制造失败
影响软件行为的因素包括软件自身的状态和软件的外部输入(用户的输入、操作系统的输入、其他软件的输入等)。测试人员应该列举这些影响软件行为的因素,并分析哪些因素可能与当前缺陷有关。然后,他需要大量尝试这些因素的取值组合,并试着总结缺陷重现的模式。有时测试人员需要求助于程序猿,让他提供更好的测试钩子以控制软件的状态和输入,活提供更好的调试日志以了解软件的状态和输出。
3.观察先于思考
在猜测引发错误的原因之前,应该仔细的观察软件的状态、操作系统的状态、所依赖的软件或服务的状态,并分析软件的输入数据和输出数据。细心观察可以更好的推测缺陷原因,设计更有效的测试,相反,凭空猜测很可能是测试误入歧途,费时费力并没有收获。
4.分而治之
如果运行一次测试需要大量的准备工作(如初始化数据库、复制数据文件、重启服务等),测试就不能提供快速的反馈,缺陷调查的效率就很低。为此,测试人员需要建立一个可以快速测试的环境,这通常需要隔离一些无关的数据、软件和服务,也需要测试钩子的帮助。在此环境中,测试人员通过逐次逼近来缩小搜索的范围,即通过测试来排除一些影响软件的因素,从而慢慢锁定若干重要因素。
5.一次只做一处修改
在科学实验中,科学家一次只修改一个变量的值,从而了解该变量对于实验结果的影响。同样,在测试中,测试人员一次只修改一个变量的值,从而了解它对软件行为的影响。
6.保持审计跟踪
在调查过程中,要记录下所做的测试和测试结果,魔鬼隐藏在细节中,而人的记忆总是不可靠的。应该将测试、软件和环境的细节记录下来,作为缺陷报告的一部分。
7.检查基本假设
如果测试人员的调查没有进展,他也许要质疑一下他的基本假设。面对复杂的问题,测试人员的思考常常基于一些能简化情况的假设,例如他会假定“服务器返回的数据应该是没问题的”、“这个模块一直很稳定,不会出错”、“错误检查代码一定能过滤掉无效的输入数据”等。这些假设在大多数时候成立,但是并非永远如此,要质疑并检查他们。
8.获得全新视角
如果重现的努力没有成功,测试人员可以向程序猿或测试伙伴请教。软件是如此的复杂,每个人都有盲点。向别人解释问题,会强迫测试人员组织思路,这有助于他跳出原来的思维模式,获得新的见解。也许叙述完毕,测试人员就获得了新的测试灵感。此外,被咨询的人可能知道一些知识,能够提供有效的测试策略或关键线索,这会显著提高调查效率。
9.如果没有修复它,它就一直存在
当重现缺陷的努力失败时,测试人员不能简单的说:“它一定随风而去了。”缺陷在测试环境中不出现,但可能在用户的环境中出现,更可能在公司领导向媒体做公开演示时出现。为了让项目团队获得必要的信息,测试人员应该提交缺陷报告。调查不可重现的缺陷可能是一个“时间黑洞”。测试人员应该根据缺陷的严重程度,设定不同长度的时间盒。在时间耗尽时,他可以自问“是否追加一个时间盒继续调查?在下一个时间盒中能获得突破吗?对于项目而言,是继续调查还是开始新的测试更有利?”经过评估,他可以决定是继续调查,还是结束调查并提交缺陷报告。
- 测试人员可以借鉴的9条调试规则
- HBase安装调试可以借鉴的文章
- 新手设计师可以借鉴的10条经验
- 探索性测试 一种可以借鉴的测试风格
- 敏捷测试人员的十条法则
- 敏捷测试人员的的10条法则
- 有可以借鉴的观点
- VoltDB可以借鉴的文章
- 可以借鉴的js写法
- 程序员给测试人员的20条高频回复
- c#常用命名规则 c++等可以借鉴
- 可以借鉴
- 做WEB2.0网站可以参考的十九条规则
- 值得借鉴的30条好习惯
- 值得借鉴的30条好习惯
- 可以借鉴的 开始——cmd
- 可以考虑和借鉴的翻译网站
- 编写程序可以借鉴的网络资料
- 82. Remove Duplicates from Sorted List II LeetCode
- 经典漫画讲解HDFS原理
- 以后应该注意的东西
- 【AHOI2009】【BZOJ1798】Seq 维护序列seq
- java nio
- 测试人员可以借鉴的9条调试规则
- Android使用gradle快速生成渠道apk包。
- 选用合适的IPC方式
- 用JAVA生成老电影海报
- c++在头文件中定义全局变量时需要注意的地方
- 值得推荐的C/C++框架和库
- 非负矩阵分解从理论到实践
- Java中英文混排字符串字节个数计算
- Java过滤器与SpringMVC拦截器之间的关系与区别