测试体系

更新时间:

按照传统测试的定义,软件测试是指在规定的条件下对程序进行操作, 以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。测试场景大体可以分为功能、易用性、性能、兼容性、自动化、可靠性。

image.png
单元测试

单元测试就是为了验证软件中最小可测试单元的准确性的测试。区别于集成测试和系统测试。单元测试是前置的,由开发人员主导的最小规模测试。据相关学者统计:

  • 85%的缺陷都在代码设计阶段产生;

  • 发现bug的阶段越靠后,耗费成本就越高,呈指数级别的增长。

由此看来,单测代码的编写对于交付质量以及人工耗费成本都有极其重要的影响。

对于企业客户上云,推荐云效-流水线(Flow)。 Flow 为主流语言提供了开箱即用的单元测试能力,可以方便的对代码进行单元检测。

模块接口测试

一般讲的接口测试指的是对某个给定接口进行功能测试,输入不同的参数时,接口返回值是否正确。接口测试可以给企业带来的价值包括:

  • 接口是服务端对外提供数据服务最常用的信息交换方式,接口大部分内容都是数据,通过数据对比我们可以推测到系统的逻辑,测接口其实也就是测逻辑。

  • 接口测试相对容易实现自动化,也容易实现持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。

企业在云上研发目的是为了能够提升整体的效率,节省人力成本。推荐使用自动化测试的方式来做接口测试,可以给企业带来如下价值:

  • 减轻测试人员工作量,把测试从枯燥的重复劳动的人工测试中解放出来;

  • 协助手工测试完成很难模拟或无法模拟的工作;

  • 提高工作效率,比如测试环境的自动化编译、打包、部署、持续集成甚至持续交付等。

  • 协助定位问题,比如接口层发现问题了,可以通过添加的traceID定位到日志错误或错误代码行,

  • 尽早发现Bug,自动通知测试人员。一旦发现问题,立即通知测试人员,快速高效。

对于企业客户上云,推荐云效-接口自动化测试(SAT)。 SAT具备低门槛在线图形化编写调试,支持丰富的协议,能够与企业CI/CD无缝集成等。

用户界面特性测试

广义上来说,用户界面(UI)测试包括web UI,移动端UI,以及传统的桌面应用UI甚至是嵌入式UI的测试。针对不同的UI,所需要的测试手段以及对测试人员的技术要求也是不同的,例如对于传统的Windows桌面应用的自动化一般就是通过AutoIT模拟桌面鼠标操作完成。

UI测试有很多场景是需要依赖手工测试来完成的,比如检查页面的布局(排布是否合理,组件是否重叠等等),组件的样式(布局、颜色、大小)。而有些逻辑是可以通过自动化测试来提升效率,例如登录,表单的创建修改删除,工作流等等。

对于企业客户上云,推荐云效-WebUI自动化工具(AUI),AUI具备低门槛图形化录制0编码,能够与企业CI/CD无缝集成等。

产品线上回归

随着企业业务系统越来越复杂,人工测试或自动化测试面临覆盖缺失的风险。另外老的系统进行修改也很难评估影响面。传统的自动化测试面临的挑战:

  • 脚本开发成本高

  • 准备测试数据繁琐

  • 脚本运行受环境影响大

这些问题导致测试覆盖率难以保证,脚本运行效率低。阿里云推荐通过线上引流来做自动化回归。相比传统的自动化回归工具而言不需要编写测试脚本,不需要准备测试数据。由于是使用线上流量做测试,可以保证用例的丰富性和真实性,更容易发现传统测试容易遗漏的缺陷,节省人力成本同时,有效避免线上故障。

双引擎自动回归平台(简称双引擎或者doom)是一个将线上真实流量复制并用于自动回归测试的平台。 通过创新的自动mock机制不仅支持读接口的回归验证,同时支持写接口(例如用户下单接口、付款接口)的回归验证。

image.png