1 自动化测试概述及常用工具

1  自动化测试概述

1.1  手工测试

由人去一个一个的执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。

手工测试同样需要熟悉业务、基本测试方法。对业务的熟悉可以发现别人发现不了的软件问题。手工测试仍是无法替代的一种测试方法。

1.2  自动化测试概念

设计测试用例->评审->根据用例执行测试->得到实际结果与期望结果的比较。

为了节省人力、时间、资源,提高测试效率,所以引入自动化测试。

广义上来讲,一切通过工具/程序来代替/辅助手工测试的行为都可以看做自动化测试。狭义上来讲,通过工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统功能进行验证。

总结:把以人为驱动的测试行为转化为机器执行的过程。

1.3  自动化测试的理解

手工测试与自动化测试都是一种测试手段。

在整个软件测试中自动化测试并没有体现出最大化的软件测试价值。

在软件测试的四个过程:

1)测试需求分析;

2)设计测试架构、方案、用例;

3)落实测试方案、具体测试点;

4)执行;

1) 2)最重要,而自动化测试关注的是执行阶段

1.4 自动化测试优势与不足

优势:

提高测试效率,节约时间成本;

解放人力做更重要的工作(测试需求分析、设计测试用例);

可重复利用,减少对人的依赖;

提升软件测试团队整体水平(解放人力、提升效率);

可大幅度减少兼容性测试的工作量(回归测试);

有些测试必须依靠自动化测试;

不足:

开发自动化测试脚本周期长;

随着产品迭代,自动化测试脚本也要不断迭代,时间成本高;

不同项目之间自动化脚本重用度低;

对短期的项目型产品自动化测试价值不高;

无法代替手动测试找到的bug;

对团队技术的要求高(代码);

1.4  自动化测试VS手工测试

寻找产品缺陷:手工> 自动化

纯技术要求:手工< 自动化

产品稳定性要求:手工< 自动化

测试用例的高效性:手工> 自动化

对测试人才的需求:手工= 自动化(高手难求)

相互之间的可替代性:手工= 自动化(互相不可替代)

对测试项目的价值:手工= 自动化(都不是核心价值)

测试工作的核心价值在于分析与设计,手工和自动化测试都只是执行阶段。

1.5  自动化测试能力要求

对软件测试能力的要求:

熟悉软件测试的流程与方法;

熟悉软件测试用例的设计思路;


对程序设计能力的要求:

有程序语言(Java)设计基础;

有数据库知识和SQL语言基础;


对软件架构能力的要求:

理解软件客户端与服务器端的交互过程;

理解操作系统的基本原理(手机、PC);

了解软件系统的三层结构以及协议;

理解项目的技术架构;

测试产品和项目的需求和业务逻辑;

2  自动化测试工具

2.1  自动化测试可行性分析

2.1.1 产品架构与业务可行性分析

a) 单机应用程序:重点考虑界面级的自动化测试;

b) 分布应用系统:接口级、界面级结合;

c) 手机APP应用:接口级、界面级结合,兼容性;

d) 复杂业务:接口级、代码级;

2.1.2 测试技术实现可行性分析

a) 通用优先技术选择顺序:接口级>协议级>界面级>代码级;

b) 自动化测试工具面很广,所以对自动化测试技术底层实现原理的理解应高于对工具的选择;

2.1.3 团队能力可行性分析

a) 测试过程分为:分析、设计、实现、执行,重点要放在分析、设计;

b) 自动化测试仅属于执行环节,所以并非自动化测试技术或工具就可以成功实施自动化测试;

c) 测试团队的技术水平和管理,远比实施自动化测试重要(不能随便分割);

2.1.4 实施可行性分析

a) 最佳情况是早期就应该接触产品架构设计,确保自动化测试可行性,减少为测试而重构代码;

b) 主要用于回归测试和兼容测试,不能以找新bug为目的;

c) 小型企业无法坚持自动化测试(人力、管理);

d) 自动化测试宗旨:为软件测试质量服务,一种测试方法而已;

总结:

a) 需求变动不频繁;

b) 项目周期足够长;

c) 自动化脚本可重复使用;

2.2  自动化测试常用工具

2.2.1    代码级自动化测试常用工具

Junit、CppUnit、PyUnit、GoogleTest(单元测试);

JMock、GoogleMock(快速创建一个Mock对象,只对于面向对象语言编程的多态);


主要功能:断言(条件),参数化(范围、参数),测试用例管理;

2.2.2    接口/协议级

LoadRunner:支持协议测试(虽本身定位为性能测试工具);

Jmeter:HTTP和FTP服务器进行压力和性能测试;

WebLoad:支持HTTP协议;

SoapUI:支持WebSevice协议SOAP;

2.2.3  界面级

QTP:支持Windows,Web,Java,.Net应用程序;

PFR:支持Windows,Web,Java,.Net应用程序;

Selenium/Water:支持 Web应用,Safar,IE,Chrome;

AutoRunner:黑盒测试工具,可以用来完成功能测试、回归测试;

TestComlepe:支持各类应用程序及第三方组件,对象识别能力超强;

Appium/MonkeyRunner:Android,IOS移动应用;

你可能感兴趣的:(1 自动化测试概述及常用工具)