有人说:“杂乱无章的自动化只会带来更快的混乱。”不仅更快,而且是更严重、更大的混乱。如果使用得当,自动化可以成为测试团队中令人惊叹的生产力助推器和系统的质量增强器。自动化测试的关键是要正确运用,这是初始最困难的部分。下面,我们会了解最常见的自动化测试挑战以及应对措施。
挑战 1:获得管理层的批准
跟任何公司部门一样,员工总要知道预算允许和不允许的东西。测试人员可能已经知道自动化在商业和技术两方面的优势(缩短上市时间、增加测试覆盖度和准确性、降低每小时的测试成本、更快发现错误等),但是测试人员怎样说服财务部门和软件开发负责人,为自动化测试争取必要的时间和资金?
“自动化测试能提高生产力和准确性,这是必须制定商业案例的地方。单个缺陷的成本……可以抵消一个或多个工具授权的价格。” ——Randall Rice
我们同意 Randall Rice 的观点,即自动化可以收回成本。为了向管理层证明财务收益是可观的,可以向他们展示对自动化测试投资回报率所做的简单细分。对其他人、其他利益相关者坦诚公开也很重要,不要隐瞒自动化前期工作和资源需求大的事实。
挑战 2:选择并使用合适的工具
因为种种原因,许多团队没能成功通过这个阶段。他们可能是不了解特定工具的专业知识、找不到理想工具、工具集覆盖不够广等等。 如果在怎样使用工具这方面没有足够基础知识,可以有以下几个选择:
- 参加在线课程
- 让工具的制造者来进行培训
- 聘请顾问以更好掌握
- 外包
如果现有的工具不能满足你的需求,那就考虑找一个多工具的解决方案。 记住,不可能完全测试所有内容,但可以使用工具去测试最重要的部分。
最后,如果工具花费超出预算,就快速进行成本与收益分析并展示出来。这样可以衡量之前错误造成的损失,并能展现如果使用该工具可以省下多少时间和金钱。
挑战 3:确定启动策略
好的,现在已经拥有了可以开始自动化的所有工具及支持,但是到底把什么东西自动化了?又是怎样做的?这些工具本身并没有告诉你要自动化什么,就像新手父母发现他们的小孩没有带着育儿手册降生一样叫人沮丧不安。是会培养出一代优秀的自动化测试,还是会被它所破坏再无法管理?当然了,我们肯定希望是前者!但实际上根本没有办法把所有事情都自动化,所以必须具有战略眼光。可以使用两种方法来帮助解决此问题:基于风险的测试和自动化金字塔。
基于风险的自动化测试
它优先测试最有失败风险的元件,如果发生所述失败,这些元件也会带来最大的负面后果。在此处需要考虑:
- 潜在错误的经济影响
- 失败的概率
- 服务级别协议 (SLA)
- 有无财产危险
这应该为你提供了一个好方法来确定自动化测试用例的优先级别。
自动化测试金字塔
强烈推荐的另一种方法是遵循自动化金字塔。在最近的一篇文章中,对这个主题有了更广泛的讨论,这里进行简单概述。
冰淇淋蛋筒尝起来甜美诱人,但采用冰淇淋蛋筒方法可能会破坏自动化的进程!遵循冰淇淋蛋筒方法将导致高度的错误率,因为它强调 UI 级别的自动化,而UI级别使用的是更易被破坏的测试。但如果把精力投入于自动化单元测试,那么在软件开发过程中,几乎可以马上发现错误、消除错误。
挑战 4:设定对自动化的现实期望
无论你的工具和流程多么出色,要记住测试永远不会完成。自动化测试不是解决漏洞百出的系统的灵丹妙药,不应该代替非自动化测试,而应当与非自动化测试结合使用。有一些测试根本无法自动化,但也有一些自动化测试可以发现其他方法无法发现的错误。
自动化测试实际上只是自动检查系统,而仍然需要人工进行非自动化测试。此外,请记住,测试的价值来自它提供的信息,而不是执行的测试数量或频率。我们最关心的获得正确信息,以便在提高系统质量时做出最佳决策。
确保团队和管理层同意并理解自动化方案的预期结果,这样大家才能达成共识!
|