再现与优化BUG

1。不要想当然地接受任何假设。记下所做的每一件事--每一个步骤、每一次停顿、每一件工作。无意间丢掉一个步骤或者增加一个多余步骤都是很容易出现的,要避免发生。确保导致软件缺陷所需的全部细节已经记录下来。

2。查找时间依赖和竞争条件的问题。软件缺陷仅在特定时刻出现吗?也许它取决于输入数据的速度,或者使用慢速磁盘还是快速硬盘保存数据。看到软件缺陷时网络忙吗?在较慢和较快的硬件上尝试测试案例。

3、与压迫和负荷相关的边界条件软件缺陷、内存泄漏和数据溢出等白盒问题也许慢慢在测试过程累加中自己显露出来,但重新启动计算机后消失。执行某个测试可能导致数据覆盖,但是只有在后面的测试中试图使用该数据时才会发现,如果发生仅在执行其他测试之后出现的软件缺陷这种现象,就要查看前面执行的测试,也许要利用一些动态白盒测试技术,看软件缺陷是否在无意间发生了。

4。状态缺陷仅在特定软件状态中显露出来。状态缺陷的例子是软件缺陷仅在软件第一次运行或者在此之后出现。软件缺陷也许仅在保存数据之后,或者按任何键之前发生。状态缺陷看起来很像以来时间盒竞争条件的问题,但是你会发现时间并不重要--重要的是事件发生的次序,而不是发生的时间。

例如:某个字段没有默认值,会导致第一次使用这个值得时候报错。而经过其他操作后,会更新这个字段,使它有值,这样后续就不会再报错了。

5。考虑资源依赖性和内存、网络、硬件共享的相互作用。软件缺陷是否仅在运行其他软件并与其他硬件通信的“繁忙”系统上出现?软件缺陷可能最终证实是竞争条件、内存泄漏或者状态缺陷,问题被软件的依赖性或者对资源的相互作用进一步恶化,但是审视这些影响有利于分离软件缺陷。

这类问题处理时要抽丝剥茧,分别验证不同条件组合相互作用,以免遗漏缺陷

6。不要忽视硬件。硬件可能不按预定方式工作。板卡松动、内存条损坏或者CPU过热都可能导致像是软件缺陷的失败,但是实际上不是。设法在不同硬件上再现软件缺陷。这在执行配置测试或者兼容性测试时特别重要。应该知道软件缺陷是在一个系统上还是在多个系统上显现。
7. 关注软件的失效问题,对缺陷的修改可能会引发新的缺陷
8. 从阅读缺陷报告入手

猜你喜欢

转载自blog.csdn.net/s2421458535/article/details/80679435
bug