开发者社区> 玄学酱> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

自动化测试基础

简介:
+关注继续查看

1、什么是自动化测试

  以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。自动化的测试涵盖了:功能(黑盒)自动化测试,功能(白盒)自动化测试,性能测试,压力测试,GUI(Graphical User Interface)测试,安全性测试等。

  2、自动化测试的优势

  回归测试更方便可靠 ;可运行更多,更繁琐的测试,且快速高效;可执行一些手工测试执行相当困难或者做不到的测试,如大量的用户并发;更好的利用资源,具有一致性和可重复性的特点,自动化测试脚本完全可复用;提升了软件的可信度;多环境下测试等。

  3、自动化测试无法做到的事以及劣势

  永远不可能完全替代手工测试,自动化测试无法做到手工测试的覆盖率,不是每个测试用例都适合做成自动化,如建议一个页面的布局是否正确。

  手工测试发现的缺陷远比自动化多。自动化测试是几乎无法发现新缺陷的,最大的用途是用来回归,确保曾经的bug没有在新的版本上重新出现。

  自动化测试工具是死的,它不具备任何想象力。自动化测试的好坏,完全取决于测试工程师。

  成本投入高,风险大。对测试人员的技术要求高,对测试工具同样有要求。

  4、合适引入自动化

  项目周期长,系统版本不断,并且需求不会频繁变更,此时是适合引入自动化测试的。

  系统的测试对象基本可以正常识别,以及对无法识别的控件能否提供一个解决方案。

  系统中不存在大量的第三方控件。

  需要反复测试,如可靠性测试需要进行上千次的系统测试

  5、不适合自动化

  项目周期短,需求频繁变更。即使是周期长的项目,如果经常需求变更,也不适合做自动化。

  软件版本还没有稳定的情况下,主功能或大量功能有被重新更改的可能话,也不适合做自动化。

  没有明确的项目测试自动化计划,措施和管理。

  多数对象无法识别,以及脚本维护频繁与艰难,二者有其一,自动化必定失败。

  6、自动化测试的流程




合理的自动化切入点:通常,项目只有经历了完整的系统测试之后才算具备了基本的引入测试自动化的条件。

  测试自动化分析:

  (1)可行性分析

  (2)抽样demo分析,demo一般选取冒烟测试用例,检查脚本是否能够成功运行通过,已设计的测试点是否全部执行

  (3)测试需求分析,分析哪些功能点准备进行自动化

  测试计划定制:自动化测试计划越全面,后期越能循规蹈矩的去实施,自动化测试的成功率越高

  自动化测试设计阶段:主要分为自动化测试框架和自动化测试用例。

  (1)自动化测试框架的设计,开发与搭建:应能保证测试的分布执行,脚本模块化,数据驱动,日志分析,错误截图,报表回收,共享对象库,公共函数库,环境配置,统一设计模式,异常处理,场景恢复的一个无人值守的,针对每个独立项目的测试框架

  (2)自动化测试用例设计三部曲:手工测试用例是从无到有,然后自动化测试用例是根据手工测试用例来写的。首先,筛选手工测试用例。然后转换手工测试用例,最后新增&补充自动化测试用例。

  为什么不能用手工测试用例完全替代自动化测试用例?

  自动化测试用例的范围往往是核心业务流程或者重复执行率高的,自动化测试的覆盖率不能达到手工测试的覆盖率。自动化测试的用例选择一般以正向为主,而反向的情况却有很多,但是并不是所有反向情况自动化测试都会涵盖,而是有筛选的选取一部分。也并不是所有的手工测试用例都可以用来做自动化的,如页面布局的检查。手工测试可以不需要回原点,但是自动化测试往往是必须的。自动化测试用例与手工测试用例不同,不需要每个步骤都写预期结果。

  测试脚本设计与开发:

  测试脚本大致可划分为五种,

  (1)线性脚本:通过录制直接产生的线性可执行的脚本

  (2)结构化脚本:具有顺序,循环,分支等结构的脚本

  (3)可共享脚本:可以被多个测试用例使用,被其他脚本调用的脚本

  (4)数据驱动脚本:测试数据跟业务流程控制分离的脚本,通过读入数据文件来驱动流程进行的脚本

  (5)关键字驱动脚本:脚本,数据,业务分离,数据和关键字在不同的数据表中,通过关键字来驱动测试业务逻辑。关键字驱动的特点是,它更像是描述一个测试用例在做什么,而不是如何做。

  自动化测试执行:

  (1)无人值守的测试:环境搭建,部署与配置;自动化测试用例与测试脚本相互绑定;自动化测试用例执行顺序排列与组合

  (2)异常处理与场景恢复

  提交自动化测试产物:大致需要提交执行情况,测试结果,分析报表,测试报告,质量情况等。

  测试脚本维护:严格来讲,每个阶段都在做测试脚本维护。一个不值得维护的自动化测试项目是不值得立项的。








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
自动化测试总结(二)
关联上文:自动化测试总结(一) 其他参考文档见文末 GUI测试的稳定性问题 关于这个问题,最典型的情景就是:同样的测试用例,在同样的测试执行环境下,测试的结果有时是Success,有时是Fail,这严重降低了GUI测试的可信性,同时也是GUI层面的自动化测试位于金字塔最顶端的原因之一。
1224 0
接口自动化测试设计
移动互联网时代,每一个App产品都有多种客户端形式,如:iOS、Android,混合应用Hybird以及H5。兼容测试覆盖的端越来越多,而大量的 计算,复杂的业务逻辑,都由服务端承载,给各种客户端提供标准的Restful 风格的标准接口调用交互。
7142 0
从0到1开发自动化测试框架
一、序言 随着项目版本的快速迭代、APP测试有以下几个特点: 首先,功能点多且细,测试工作量大,容易遗漏; 其次,代码模块常改动,回归测试很频繁,测试重复低效; 最后,数据环境多样,用户场景复杂,功能回归覆盖难全面。
8142 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《前端智能化实践》——逻辑代码生成
立即下载
如何创建一个成功的(在业务和开发中)开源项目
立即下载
混合应用平台构建实战
立即下载