差的自动化测试的问题是没有人注意
已经开发出一段时间的产品常常有自动化测试包。这些自动化测试包是以前创建的,现在仍然用来测试该产品。
测试员常常庆幸有这样的测试包。但是我们想提出一些警告:
测试可能并不完成所想像的工作。测试员怎么知道这些测试会完成期望完成的工作?测试自动化开发人员有时编写与描述不同的测试过程。很久以前,这样做也许有很好的理由,要么就是自己搞乱了。现在的测试员怎么会知道?重新检查这些测试并阅读代码有多容易?
测试可能已不再重要。评论员 Douglas Hoffman 报告说:“我最近发现一个计算机制造商使用称作'孤独的位测试' 的自动化内存测试。这个测试用于发现上个世纪 70 年代以前的核心内存的特定连线错误。最大的核心内存是 16Kb,测试运行需要几分钟。现在对于很大的内存配置要运行几个小时。测试所寻找的错误在当前内存系统中已不可能。我最近评审的另一个自动化测试是专门设计用来测试嵌入式处理系统状态机。我看到该测试的文档还是 1986 年编写的,是七代以前的产品,而且当每一代产品的状态机都被更改时,没有人想到要更新该测试。”
覆盖率很差。人们常常关注测试包中的测试个数。增加大量相同测试的小变种,可以很容易地使测试包的尺寸膨胀。检查测试包的实际覆盖率,可能会对有这么多的语句没有被测试而感到惊讶。
虚警可能很常见。随着时间的推移,不够仔细的自动化测试编程和被推迟的维护,会由于自动化测试编程中的程序错误导致测试失败。当然,测试员不能肯定哪些失效是产品程序错误,哪些是测试失效,因此需要研究所有失效。这些测试中的很多事有问题的,不能正常执行已经有很长时间了,但是没有人修复。从测试包中删除有问题的测试。这样的测试有什么用?这些是死测试。承认这一点并将其埋葬,要么现在就修复这些测试。但是不要把这些不好的内容留在有用的测试包中。
测试结果可能有错。有些测试不检查任何结果。除非产品崩溃,否则测试都会通过。有些测试包含程序错误,可跳过部分测试,或不能报告所检测出的失效。其他测试可能有无效的“黄金”输出文件;等测试失败时,黄金输出文件被更新。而不是报告程序错误。我们没有夸大。根据我们的经验,这种问题一般出在
搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核
评论