导航菜单

开发人员就不需要做测试么?你应该懂的开发测试技巧

开发和测试经常在工作中相爱并互相残杀。开发人员总是觉得测试会发现错误,测试人员也觉得开发人员编写的代码中有很多错误。在今天的团队氛围中,开发人员通常没有足够的自我测试意识,并且觉得测试应该是测试工程师的责任。我只需要写完代码。然而,事实上,大量案例证明,在开发阶段投入测试可以大大降低代码质量风险,提高整个团队的效率和代码质量。今天我们将讨论作为开发人员如何进行测试。

Test Content

在测试领域的分类中,白盒测试和单元测试这两个概念最适合开发者介入。人们经常混淆这两个概念。事实上,作者认为单元测试只是白盒测试的一种。

1。静态分析

顾名思义,静态分析意味着程序不直接执行,程序通过代码的静态分析来测试。我们经常采用以下方法。

代码评审桌面评审:通过阅读程序代码进行评审:由开发人员和测试人员组成的评审团队代码评审:手动将数据代入到程序中,模拟代码执行的过程结构分析:经常要分析代码的周期复杂性、架构设计的合理性等。程序流分析控制流:检查各种循环和判断过程的数据流:检查各种数据处理代码的代码规范:根据代码编写规范检查程序的其他错误处理:是否有针对所有异常的处理算法逻辑:算法是否有漏洞模块接口:是否遵循接口文档

2,dynamic analysis

即通过测试数据执行程序,并检查是否达到预期输出。

逻辑覆盖测试(使用测试数据覆盖代码中的所有逻辑分支)语句覆盖分支覆盖条件覆盖决策覆盖路径覆盖测试(使用测试数据覆盖代码中的所有路径)循环复杂性基本路径主路径循环结构

3,stub和exchange test

exchange测试也称为突变分析,这是一种用于评估测试数据集的有效性和充分性的技术。一般来说,源程序经过简单的变异,差异最小,然后用相同的测试数据集对变异程序进行测试。

也就是说,当我们使用测试数据进行白盒测试时,我们如何确保我们准备的测试数据是准确的?变异测试是一种评估测试数据集有效性的方法。

它的原理是做一个小的改变(可以是加号到减号,等等。)转换为程序中的测试代码,然后使用相同的数据集来验证突变测试,以查看最终输出是否符合预期。

和源程序之间的区别叫做变异操作符。突变操作符一般包括以下内容:

面向过程的代码操作符突变数值突变方法返回值突变面向对象的代码继承突变多态性突变过载突变测试工具

考虑到代码测试实际上是一个普通的过程,许多公司或机构已经为上述测试方法提供了许多方便的测试工具。我们可以用它们来提高自我测试的效率。作者总结了一些

1,静态测试扫描工具

这样的工具通过静态扫描代码来检查代码,并不直接执行程序。因此,经常会发现代码语法漏洞、编写规范和其他相关错误无法直接找到。

CheckstyleFindBugsPMDP3C

2,Test Coverage Analysis Tool

Test Coverage Analysis Tool测试覆盖率分析工具的目的实际上是对代码执行检测处理,这样我们就可以监控在执行某些操作步骤或测试数据时最终执行了哪一行代码,这便于我们分析路径覆盖率和逻辑覆盖率。

JaCoCoJcovCoberturaC Gcov

3和变体测试工具

PITest

好的,让我们与开发人员分享一下今天如何测试。您在开发阶段是否使用过其他方法进行测试?欢迎留言。