做自动化之前,需要想明白为什么做自动化?

1、概念

 把以人为驱动的测试行为转化为机器执行的一种过程,自动化测试节省人力、时间或硬件资源,提高测试效率。

2、优势特点

快速
比手工操作快
可靠
精确地执行相同的操作,可以排除手工操作错误
可重复
测试相同操作重复执行得到软件响应状况
可编程
可以编程得到应用系统的隐藏信息
可重用
针对不同版本,测试脚本可重复使用
综合测试
覆盖应用系统的一套综合测试方案

 

 

 

 

 

 

 

3、自动化测试分层与分类

  • 单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如java的Junit、TestNG,python的unittest,常见的手段是code review等
  • 接口自动化测试(业务逻辑层):主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,常见的接口测试工具有postman、jmeter、loadrunner等
  • UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium等

4、在开始做自动化测试之前,需要确定以下几个方面

1、什么项目适合做自动化测试?

  • 软件需求稳定,不会频繁变更
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要不断更新测试用例以及测试脚本,而脚本的维护实际上是代码开发的过程,需要修改、调试,必要时还要修改自动化测试的框架,所花费的人力、物力大便不值得弄自动化测试。
  • 项目进度压力不大、软件维护周期长
自动化测试需求的确定、框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,如果项目周期较短,没有足够时间支持,结果还不如手工测试来的快、简单,就不需要做自动化测试。
  • 测试数据、测试用例、脚本的重用性较强
需要在多平台运行相同的测试用例、组合遍历型的测试、大量重复测浏览器的兼容、操作系统的兼容
  • 被测系统开发较为规范,可测试性强
主要考虑三个方面,1)所测试的项目之间是否很大的差异性(如C/S系统和B/S系统的差异);2)所选择的测试工具是否适应这种差异;3)测试人员是否有能力开发出适应这种差异的自动化测试框架。
 

2、技术选型

首先要分析项目的架构和状况。对于一个后端的服务,它如果是纯粹以接口的形式提供给其它组件去调用,那可以采取“接口自动化”;对于一个Web产品,如果前后端都在测试的保障范围,而且前端页面相对比较稳定,可以考虑采用“UI自动化”(此时接口自动化其实已经不足以保障产品的端到端功能);对于更后端的组件,如果想测试组件自身的基础核心功能,可以采用“基于shell交互命令执行的自动化”,通过自动化脚本的方式封装shell命令的调用。
 

3、工具的选择

桌面程序(C/S)的工具有:QTP,AutoRunner
web应用(B/S)的工具有:QTP,AutoRunner,Robot Framework,watir,selenium
 

4、编码语言的选择

  • 从语言易学性来讲,首选ruby,python
  • 从语言应用广度来讲,首选java,C#,php
  • 从语言相关测试技术成度:ruby,python,java
  • 整个技术团队主流用的语言
 

 

posted @   丝瓜呆呆  阅读(377)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示