软件测试十宗罪

被遗漏的软件缺陷可能会造成数百万美元的损失,更糟糕的是,它会破坏用户的信任。许多质量保证(QA)工程师,无论从事手动测试还是自动化测试,都会在不知不觉中犯下影响软件质量和测试可靠性的错误。你是否也在犯这些错误呢?

一、测试的目的发现软件缺陷,而非隐瞒

QA工程师可能会遇到在用户故事或验收标准中未明确界定的意外行为。拿不准的时候,一定要记录并报告问题。清晰的报告能开启讨论之门,帮助利益相关者确定这究竟是缺陷、缺失的需求,还是预期行为。若问题复杂或不明确,应立即与上级安排会议。这可能是个真正的问题、已知问题,或是计划未来修复的问题。现在标记出来,总比之后经理质问为何没发现要好。

二、寻找有创意的方式来创建测试证据

测试证据为开发人员提供了可复现和修复问题的确凿依据。跳出常规,寻找有创意的展示方式尤为重要,特别是在复杂场景。这对理解问题根源和确保更好修复影响重大。例如:

1. 可访问性测试:证明键盘导航顺序不正确时,可使用内置屏幕键盘和Snagit等屏幕录制工具捕捉问题,而非仅依赖自动可视化工具。

2. 功能测试证据提供:使用Word文档整理带标题和描述的截图,比直接附加.png格式且文件名描述性不强的截图,更便于产品负责人审核。

3. 性能测试用图表对比性能指标前后差异,可清晰显示趋势。既可用Grafana和InfluxDB自动跟踪,也可手动记录在Excel文档中。

三、始终要调查已发现的软件缺陷,即使你自己没有遇到过

当有人提及软件缺陷时,不要马上忽视。即便自己没遇到,也应调查确认是否为真正的问题。问题可能源于报告者设置错误,但确定根源能体现对测试系统的深入理解,就像别人说门没关,自己要再检查一遍一样。

四、避免创建与验收标准要点相同的测试用例

直接将验收标准要点用作测试用例存在诸多弊端:

1. 缺乏粒度:验收标准宽泛,测试用例需具体步骤和数据,直接使用会导致测试用例笼统。

2. 清晰度降低:测试用例应明确具体测试内容,验收标准表述可能达不到此清晰度。

3. 遗漏边缘情况:验收标准可能无法涵盖所有场景,尤其是边缘和负面测试情况。

4. 细节缺失测试用例包含前置条件、后置条件、测试数据和预期结果,仅用验收标准作标题,无法记录这些重要信息。

五、在实施新测试时避免破坏现有测试

在添加新测试时破坏现有测试,反映出自动化工程师对细节关注和测试套件稳定性的不足。在大型团队中,测试套件维护可能耗费QA工程师高达50%的时间,不当测试会导致更多失败和调试工作。新测试应仔细集成,避免干扰现有功能。可通过在流水线中运行回归测试来验证更改。

六、自动化中良好编程实践的重要性

自动化工程师应严格对待代码。应用整洁代码原则,确保自动化脚本功能正常、可扩展且团队成员能理解。结构良好的自动化框架可减少技术债务,促进协作,提高测试套件可靠性。将测试自动化代码当作产品,AI工具如GitHub Copilot或亚马逊CodeWhisperer可提供支持,例如提高代码可读性、编写注释、检查代码异味等。

七、技术娴熟的自动化工程师仍需记录自己的工作

即便技术娴熟,若不记录实现过程,可复用函数可能被误解、误用或忽视。在共享资源(如维基百科、README文件或内联注释)中进行适当文档记录,能确保他人在需要时扩展、修复或优化脚本。知识共享对可持续高效的自动化框架至关重要,可避免知识瓶颈。若觉得文档任务繁琐,可使用GitHub Copilot、ChatGPT等工具,如自动生成函数描述、生成图表等。

八、避免过度设计可复用方法

创建可复用方法是自动化基本实践,但过度抽象会使代码难读且复杂。过度设计测试自动化会增加团队理解、复用或修改脚本的难度,降低效率。应在可复用性和简单性间找到平衡,创建既能简化测试实现,又不引入过多复杂层次的方法。结构良好、易读的自动化代码可提高可维护性,便于调试。

九、深究自动化测试失败是质量保证人员的职责

QA自动化工程师应定期查看测试报告,分析失败原因。仅称“在我的机器上能正常运行”不可接受,这反映出缺乏责任感和解决问题的心态。应承担责任,调查根本原因,与团队合作解决。有效的调试能体现专业素养,加深对系统的理解。每次测试失败都是学习和提高测试稳定性的机会。CI/CD中测试失败常见原因包括共享测试数据冲突、测试清理不当、配置更改、超时与同步问题等。深入调查问题根源,能获取关于测试框架和系统的大量知识,实现双赢。

十、及时了解质量保证行业的最新动态

QA领域不断发展,相关社区在收集新技术、新工具和新策略见解方面表现出色。通过行业杂志、博客和时事通讯保持信息畅通很有必要。此外,“两分钟规则”值得遵循,如果一项任务耗时不到两分钟,应立即去做,比如优化定位器、记录问题、填写时间表、重构代码、更新文档、运行快速测试等,这些小任务可能带来有价值的成果。

阿里微服务质量保障系列:异步通信模式以及测试分析

阿里微服务质量保障系列:微服务知多少

阿里微服务质量保障系列:研发流程知多少

阿里微服务质量保障系列:研发环境知多少

阿里微服务质量保障系列:阿里变更三板斧

阿里微服务质量保障系列:故障演练

阿里微服务质量保障系列:研发模式&发布策略

阿里微服务质量保障系列:性能监控

阿里微服务质量保障系列:性能监控最佳实践

阿里微服务质量保障系列:基于全链路的测试分析实践

阿里微服务质量保障系列 服务虚拟化技

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件质量保障

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值