测试左移,开发员应执行5个关键的软件测试项

“测试左移”意味着在软件开发阶段执行更多的软件测试,以减少缺陷并从昂贵的bug中拯救企业。

测试左移通常用于描述QA在开发阶段的投入,目的是在开发工程师将程序移交给QA进行更广泛的测试之前尽早发现缺陷。在大多数情况下,这也意味着开发和执行更多的UI和API的自动化测试。

测试左移,开发员应执行5个关键的软件测试项

但是,每个软件开发人员在交付功能之前,都应执行一些基本且必不可少的软件测试项,无论是用于左移测试,正式测试,临时测试,代码合并和集成,还是快速走查。此基本测试的目标是检测立即跳出的明显bug。否则,将陷入一个昂贵且不必要的循环——测试必须向开发人员描述问题,然后开发人员必须重现,调试并解决问题,然后再试一次。

下面为每个开发工程师交付功能之前应执行的关键软件测试项。

1、基本功能测试

首先确保每个页面上的每个按钮都可以正常工作。还需要确保可以在每个字段中输入简单文本,而不会导致软件崩溃。你不必尝试所有不同的点击和字符组合,或者边界条件,因为这是测试人员所做的,而他们确实很擅长。这里的目标是:不要出现如用户在姓名栏输入名字就崩溃的情况。如果该功能旨在通过API访问,则需要运行测试以确保基本的API功能正常工作,然后再转测试。如果你的基本功能测试检测到问题,那就很好,避免这些傻瓜问题引来一片嘘声。

2、代码审查

另一双盯着源代码的眼睛可能会发现很多问题。如果你的编码方法需要同行评审,请在将代码移交给测试之前执行此步骤。不过,请记住在代码审查之前进行基本功能测试。

3、静态代码分析

有一些工具可以对源代码或字节码执行分析,而无需执行它们。这些静态代码分析工具可以查找源代码中的许多漏洞,例如安全漏洞和潜在的并发问题。使用静态代码分析工具强制执行编码标准,并将这些工具配置为在构建过程中自动运行。

4、单元测试

开发人员将编写单元测试,以确保该单元(无论是方法、类还是组件)都能按预期工作,并跨一系列有效和无效输入进行测试。在持续集成环境中,每次对源代码存储库进行更改时,都应运行单元测试,并且也应在开发计算机上运行它们。一些团队的单元测试有覆盖目标,如果单元测试不够广泛,将使构建失败。

开发人员还使用mock对象和虚拟化服务来确保可以独立测试其单元。如果你的单元测试失败,请先修复它们,然后再让其他人使用你的代码。如果由于某种原因你现在无法修复它们,请让其他人知道失败的原因,当他们遇到问题时也不会感到惊讶。

5、单用户性能测试

一些团队将负载和性能测试纳入其持续集成过程,并在签入代码后立即运行负载测试。对于后端代码尤其如此。但是,开发人员还应该在前端查看单用户性能,并确保仅在使用系统时该软件才能响应。如果要花费几秒钟的时间才能显示从本地或模拟的Web服务器上获取的网页,请找出导致客户端运行速度变慢的客户端代码,然后修复它。

找到合适的平衡点

在将代码移交给其他人之前,请花一些时间运行尽可能多的测试,因为在代码中留下明显的bug会浪费大家的时间。当然,你需要在编写代码和适合你的测试之间找到平衡。

HP Software的LoadRunner研发经理Igor Markov说:“这是最适合我的方法:我40%的时间用于设计和编写代码;5%的时间用于代码审查和静态代码分析;25%的时间用于单元测试和集成测试;30%的时间用于基本功能测试和单用户性能测试。开发人员需要生产易于使用的软件。没有人希望只做纯编码的开发人员,对我的职业发展有所帮助的事实是:我总是比实际花费更多的时间来设计、审查和测试我的代码。”

译自Malcolm Isaacs的《5 key software testing steps every engineer should perform》



留言