自动化测试简介
自动化测试的发展
软件质量与软件测试
软件质量测试,简称为软件测试,是运用人工手段或利用测试工具来运行或测试某个系统的过程,目的在于检验该软件系统是否满足预先设定的设计需求。
软件测试一般分为功能测试和性能测试,共同点是需要利用测试工具按照测试方法和流程对产品进行测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
单元测试、集成测试、系统测试、评估测试
测试用例设计、环境搭建、手工测试、自动化脚本开发、自动化测试、创建及更新测试文档、用例及脚本维护等步骤。
手工测试和自动化测试
手工测试是指测试人员根据测试用例,依次对软件产品进行输入等操作并对比实际结果和预期结果的软件手段。
自动化测试,特定软件产品的自动化测试,是在预设条件下运行系统或应用程序,评估运行结果,包括测试过程自动化和测试结果分析自动化。
和手工测试的一个显著区别是,自动化测试不会因测试人员的不同而产生不一致的测试结果。
自动化测试的发展
简单的录制/回访: 在手工执行测试用例的同时,自动化测试工具录制并记录数据和操作的过程形成脚本代码,通过回访来重复录制的人工操作的过程。
这种模式下,数据和执行动作混杂在一起,几乎一个测试用例对应一个脚本,没有可重复性。而且即使界面的简单变化也需要重新录制,维护成本高
数据驱动的自动化测试: 从数据文件读取输入数据,通过变量的参数化,将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。 这种模式下数据和脚本分离,脚本的利用率,可维护性大大提高,但受界面变化的影响仍然很大。
关键字驱动的自动化测试 将测试逻辑按照关键字进行分解,封装在数据文件中,关键字对应封装的业务逻辑。测试工具只要能够解释这些关键字即可对其应用自动化。主要关键字包括三类:被操作对象、操作和值,用面向对象的形式可将七表现为值。
关键字驱动的主要思想是:脚本与数据分离,界面元素名与测试内部对象名分离,测试描述与具体实现细节分离。
自动化测试的流程
创建及更新测试用例文档 标注该用例是否适合自动化测试。 在开发自动化测试脚本之前,将每一步手工测试的步骤及验证点设计为自动化测试用例文档,这样做不仅仅是作为自动化测试的一个存档和记录,对于不熟悉产品但是专职从事自动化开发的人员还可以凭借这份文档开发出和手工测试一样流程的脚本。
测试框架设计:测试框架是自动化测试开发过程中最重要的环节,所有测试脚本都基于测试框架开发,因此测试框架要具备健壮性和可复用性。 测试框架在设计时要尽量考虑通用性和可扩展性,以便产品发生变更时对测试框架或脚本只需要做出少量修改即可。同时,测试框架还需要自动化测试的一些辅助功能。
开发测试脚本:测试脚本是基于自动化测试框架,完成产品具体测试用例的代码。
执行自动化测试用例:自动化测试脚本开发完毕,在产品测试环境搭建完成后,即可开始执行自动化测试用例。
脚本维护:由于产品的功能性变更,自动化测试脚本也需要做相应的修改,这就是脚本的维护。
创建更新测试用例文档、测试框架设计、开发测试脚本、执行自动化测试、脚本维护、
自动化测试的优点和缺点
优点: 1、缩短测试时间、节约测试人力 2、结果准确,无人为误差 3、能模拟手工测试难以提供的测试数据 4、释放测试人员资源
缺点 1、自动化测试适用于软件后期的回归测试、性能测试和压力测试,前期的功能测试仍以手工测试为主。而且由手工测试更有想象力,具备一定的偶然性,因此更容易发现缺陷。
2、自动化测试不适用于界面变动非常频繁的产品,开发人员频繁的改动会导致自动化测试开发和维护脚本的成本直线上升。
3、自动化测试需根据产品的规模、生命周期、测试人员的人数等因素综合评估
4、自动化测试很难发现新的缺陷
自动化测试决定
项目评估
1、公司的测试流程规范吗? 2、产品适合开展自动化测试吗? 3、软件项目是否适合开展自动化测试? 4、是否具备自动化测试环境
自动化测试更适用于以下软件产品 自动化测试的模块界面变化相对不大 软年生命周期畅,经常推出新的版本 软件开发已基本完成,主要用于测试升级版本
测试工具调查
软件测试自动化通常给借助测试工具执行,测试工具可以进行部分测试设计、实现、执行和比较的工作。
测试方法不同:白盒测试工具和黑盒测试工具
测试的阶段和目的不同,单元测试工具,功能测试工具,性能测试工具,负载测试工具,和回归测试工具
测试对象不同,web测试工具,数据库测试工具,嵌入式测试工具和测试管理工具
功能测试选择自动化测试通常考虑的因素包括该工具是否由能力记录业务流程并生成脚本程序; 是否支持软件产品开发所使用的编程语言以及运行平台 是否能准确表现和分析测试结果
软件自动化测试的现状和发展
自动化测试职业化
1、初级测试功能师–入门级,具有一些手工测试经验,对相关测试产品有初级的认识,了解一定的测试生存周期理论和测试技术
2、测试工程师–编写独立的测试工具
3、高级测试工程师
4、项目组长
5、测试经理
6、产品经理
7、测试咨询和测试培训人员
8、测试工具开发人员
9、测试书籍写者或者翻译者。
自动化测试的维护成本
1、测试产品的生命周期和变更情况 2、测试脚本本身的可维护性和健壮性 可用性 可维护性和可扩展性 可靠性
考虑的因素 1、测试功能单一化 2、减少脚本依赖性 3、使用数据驱动架构
未来的发展方向
1、采用标准化架构 2、提高自动化测试的覆盖率 3、扩大培训力度和知识分享覆盖面 4、挖掘层次更深入
|