| 2022-04-09
这是关于「测试脆弱性」系列文章的第二部分。
第一篇文章讨论了运行测试用例所需的四个组件,以及测试脆弱的可能原因。
本文将针对这些可能的原因讨论的测试脆弱的分类技巧和诊断方法。
四个组件是什么?
回顾一下,可能出现脆弱性的四个组成部分包括:
- 测试本身
- 测试运行框架
- 被测应用程序或系统(SUT)以及SUT和测试框架所依赖的服务和库
- SUT和测试框架所依赖的操作系统、硬件和网络
下面的图表捕捉并总结了这一点。
下面按组成部分,分别讨论不稳定的原因、分类提示和应对方法。
测试用例本身
测试本身可能会带来不稳定。这可能包括测试数据、测试执行流、测试先决条件的初始设置,以及其他依赖项的初始状态。
执行测试的框架
不可靠的测试执行框架可能会引入脆弱性。
应用程序或 SUT,以及 SUT 和测试框架依赖的服务或库文件
当然,应用程序本身(或SUT)可能是脆弱性的来源。
一个应用程序也可能对其他服务有许多依赖关系,而这些服务中的每一个都可以有自己的依赖关系。在这条链中,每项服务都可能引入脆弱性。
SUT 和测试框架依赖的操作系统和硬件
最后,底层硬件和操作系统可能是测试脆弱性的来源。
结论
从各种各样的失败中可以看出,在自动化测试的脆弱性是一个相当大的挑战。本文概述了运行测试的组件和可能出现的脆弱性类型,因此可以作为测试和修复脆弱测试用例时的备忘单。
参考文章
- Where do our flaky tests come from?
- Flaky Tests at Google and How We Mitigate Them
- My Selenium Tests Aren’t Stable!
- TotT: Avoiding Flakey Tests
原文作者: George Pirocanac
原文链接:Test Flakiness - One of the main challenges of automated testing (Part II)
发表时间:March 24, 2021