0%

我对自动化测试的基本观点

什么是自动化测试?

不想说话

为什么要进行自动化测试?自动化测试的好处

不想说话

自动化测试的类型

常规分类

通常我们听到最多的分类方式是:

  • 单元测试 unit testing
  • 接口测试 API testing
  • 界面测试 user interface testing

这个分类法很合理,也容易理解,唯一的问题是在实际实施的时候,所写的有些用例很难区分是单元测试还是接口测试。

按大小分类

下面是 腾讯新闻产品组提出的分类方式,我认为具有很好的可操作性:

  • 小型测试,针对单个函数的测试,关注其内部逻辑,mock 所有需要的服务。小型测试带来优秀的代码质量、良好的异常处理、优雅的错误报告
  • 中型测试,验证两个或多个制定的模块应用之间的交互
  • 大型测试,也被称为“系统测试”或“端到端测试”。大型测试在一个较高层次上运行,验证系统作为一个整体是如何工作的。
资源小型测试中型测试大型测试
网络访问仅访问 localhost
数据库访问
访问文件
访问用户界面
使用外部服务不鼓励,可 mock
多线程
使用 sleep 语句
使用系统属性设置
运行时间限制(毫秒)60300900+
强制时间限制(分钟)1515
-小型测试中型测试大型测试
对应测试类型单元测试单元测试+逻辑层测试(泛单元或分层测试)UI 测试或接口测试

我的做法

  • 遵守“金字塔”理论,UI 层用例做薄,UT 用例做厚
  • MVC 后端项目分层测试,每层的用例对其下层调用时尽量打桩,即,mock 它的下层、mock 它所调用的函数,达到隔离所测类、实现只测当前类方法的目的
  • 单元测试尽量不依赖数据库、外部服务、网络等等
  • 以上 3 条只是尽量做到,视实际情况允许存在特例

欢迎关注我的其它发布渠道