background image

移动 app 如何进行自动化和探索性测试

在测试设计时最主要依据的就是测试金字塔的测试结构。如果在项目临近发布才
开始测试并发现缺陷,这样修复缺陷的成本就会很高,项目的进度也会很不确定。
所以,就开发阶段来说,如果把测试分层,在不同的开发阶段都进行测试,能很
大程度上缓解这些问题。

测试分层的优势有以下几点:

1.测试的成本

单元测试的开发成本要远低于用户界面测试,如果在用户界面的测试中发现缺
陷,修复缺陷的成本也是远高于通过单元测试和组件测试的成本。
这里的成本不单纯是开发人员修复缺陷所需要的资源和时间,还包括缺陷修复后
测试人员进行回归测试所需要的资源和时间,以及项目延期等其他项目成本。

2.测试的效率

单元测试能很快地验证很小的功能或者方法,且运行时间短,反馈更为及时。

3.缺陷定位的难易

单元测试失败后,测试人员能够很容易知道是被测试的特定功能或者方法不正
确;而如果是用户界面的缺陷,测试人员就需要花费更多的时间来进行排查,确
定出现问题的功能模块,最后再进一步发现需要修复的功能和方法。

4.反映真实的业务需求

单元测试无法从全局观的角度了解系统模块之间的交互,也无法通过方法的组合
帮助用户完成业务目的;而由于用户界面的测试描述的是从用户角度出发的用户
使用场景,因此可以更容易地阐述用户的行为和业务需求。

5.更加接近业务

用户界面测试描述测试的层级更高,所以更接近业务;单元测试描述测试的层级
更具体,所以更接近于实现。

从测试金字塔分层来看,不同层级的测试都很有必要,而我们也需要根据不同测
试所处的层级及其特点来设计测试。

另外,实际测试设计时采用的测试金字塔具有更多更细节的分层。高层级的测试
和低级别的测试相比,抽象程度更高,测试运行的时间更长,与更多的系统和模
块有交互。反馈的周期更长,接近缺陷的成本也更高。