自动化测试是为了替测试人员节省大量繁琐且重复的测试工作而出现的一种测试类型,需要注意的是自动化测试无法替代功能测试,它只对于功能稳定、变化趋近于无得模块起作用,在频繁变化的模块中,修改代码的时间远大于节省下的时间,所以不推荐使用自动化测试。

  自动化测试使用的语言基础常以python或者java进行。在敏捷开发流程中,自动化测试涉及到下面重要四种类型的测试。

  •   单元测试(Unit Test, UT)

  关注某一个函数,模块的正确性,一般需要开发人员编写相关的测试代码来进行自动化测试。

  可以使用对应的测试驱动开发(TDD)框架,如:Python的Unittest和Pytest、nose等,相应的Java的JUnit和TestNG等。

  •   集成测试(Integration Test, IT)

  集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

  这个阶段,可以尝试接口的自动化测试,同样可以利用单元测试的框架编写针对API调用的测试代码。 另外也可以利用selenium和appium等测试工具来进行UI相关的测试。

  •   用户验收测试(User Acceptance Test, UAT)

  用户验收测试,也叫用户可接受测试,一般在项目流程的最后阶段,这时相关的产品经理、业务人员、用户或测试人员根据测试计划和结果对系统进行 测试和验收,来决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。

本阶段主要是UI相关的测试,编写自动化测试脚本的难度比较大。 同样是利用selenium和appium等测试工具来编写测试脚本

  •   回归测试(Regression Test)

  回归测试是软件测试的一种,旨在检验软件原有功能在修改后是否保持完整。回归测试主要是以检查退化为目的的测试。 退化主要指由于系统的版本更新,在之前的版本中正常运行的功能变得无法正常运行,或者紧急修正了某个问题,但引发了其他的问题的现象。

  总而言之,自动化测试是将来发展的必不可少的一环。