Web自动化测试理论知识

Web 自动化理论知识

1、自动化测试概述
概念:用工具代替/辅助人工完成完成软件测试活动的过程
特点:
    可以对程序的新版本自动执行回归测试
    可以执行一些手工测试困难或不可能进行的测试
    可以更好地利用资源
    测试具有一致性和可重复性
误区:
    期望自动化测试发现大量新故障
    安全性错觉
    自动化测试的维护开销

2、自动化测试的优势
重复多次执行测试时节省很多时间
提高测试覆盖率和测试精度
实现自动化回归测试减少工作量
减少手工测试人为产生的错误
提供规范化的过程和一致性
更好的文档记录

3、自动化测试的局限性
手工测试比自动化测试发现的故障更多,自动化测试只能发现约15%的bug
自动化测试不能提高测试的有效性,只能用于提高测试的效率
自动化测试不具有想象力,没人聪明
自动化测试不能代替手工测试,下列情况不适合于自动化测试:
    测试频度很低
    软件不稳定
    结果很容易通过人验证的测试(人式实施较为高效)
    涉及物理硬件设备交互的测试

4、自动化测试的内容
测试数据自动生成
自动化输入
测试结果自动比较
测试自动执行
自动化测试用例的管理
在线监控

5、自动化脚本技术
线性脚本:  录制、回放
结构化脚本:  含有控制脚本执行的指令,支持顺序、选择和循环
共享脚本:  可以被多个测试用例使用,脚本之间可以互相调用
数据驱动脚本:  数据驱动脚本是将测试输入存储在独立的文件中,脚本中只存放控制信息
关键字驱动脚本:  关键字驱动脚本实际上是较重复的数据驱动技术的逻辑扩展 ,即测试用例的执行步骤(操作,操作对象,操作值)存放在文件中,直接执行

6、Web自动化测试的基本原理:
找到要操作的元素-->操作元素-->获取操作后的结果-->实际结果和期望结果对比-->测试结果-->记录测试结果-->发送测试报告给相关人-->修改Bug

7、需要的基本知识:Html、Css、Js、熟悉(Java、Python、.net、ruby)其中的一种、MysqL的基本sql知识、unittest的基本使用方法
参考网站:www.w3school.com

8、需要用到的工具包和工具:
浏览器:IE、Firefox、Chrome、safari
Selenium browser drivers: geckodriver Chrome Driver InternetExplorer Driver
Selenium tools: Selenuim Webdriver client driver Selenium Standalone Server
集成开发环境:Pycharm
BDD框架工具:lettuce
其他工具:AutoIt、Win32api

9、自动化测试的类型:
单元测试-执行速度最快
接口测试-执行速度较快
UI测试-执行速度最慢

10、自动化测试需要的条件:
软件需求变动不频繁
项目周期足够长
自动化脚本可重复使用
有编程和设计能力的测试开发人员
研发团队的支持

11、使用自动化的一此典型场景:
验证原有功能是否依旧可以使用,适合进行大量回归测试的场景
使用自动化没测试技术注入测试数据
敏捷开发的TDD模式,行为驱动开发模式
机械并频繁的测试,每次需要输入相同、大量的一些数据,并且在一个项目中运行的周期比较长
做业务运行状态监控

12、自动化实践的一些建议
从上到下的支持和协作
先找小项目进行试点
测试人员需要有较强的编程能力和设计能力
开发需要不断提高软件的可测试性
多鼓励单元测试、接口测试
UI测试使用并行测试方式提高执行速度

13、关于UI自动化的一些建议
需要根据自己的测试业务类型,量身定做适合自己的测试框架
让不懂开的测试人员也能使用测试框架来进行自动化测试
使用分层的结构来设计框架
使用截屏技术提高一些测试效率
不断积累自动化测试技术,对开发提可测试性的要求

14、自动化测试实施失败的因素
期望值过高,就像管理人员要求完全测试一样,期望100%的自动化测试,也同样是一个不现实的需求
对收益和成本认识不清。抛开工具的购买成本和培训成本,自动化测试的成本应该还包括两部分(实现成本中还隐含了测试准备成本):成本=实现成本+运行维护成本
自动化测试的收益是由测试的重复运行次数,或自动化测试脚本的利用率决定的

15、什么时候开始实施自动化
可预见的需求不影响自动化测试用例的设计

16、如何实施自动化测试
获取信息和测试需求分析:总体把握系统架构和设计,分析出系统的测试需求
设计:设计测试用例,并且挑选出需要自动化实现的测试用例
实现:编写、调试和实现测试脚本
执行:执行脚本的过程,需要不断分析执行过程中的异常
测试结果分析:分析哪些是Bug,哪些是测试框架本身的问题
维护:自动化测试脚本的维护是一个难以解决又必须要解决的问题
总结:在自动化测试过程中总结自动化实践的投入产出比

17、什么是测试框架(framework)
整个或部分系统的可重用设计,表现为一组抽象构件以及构件实例间交互的方法;可被开发者定制的应用骨架

原文地址:https://www.cnblogs.com/test-chen/p/10300024.html

时间: 2024-08-01 10:04:03

Web自动化测试理论知识的相关文章

初识自动化测试理论

自动化测试的分类 Web UI 的自动化测试(一类:模拟真实用户操作[鼠标键盘],二类:模拟HTTP请求) Windows 窗体的UI自动化测试 API测试(Web API,WCF Service) 数据库测试(存储过程) 接口测试 单元测试 性能测试 自动化应具备的知识点: 了解Javascript, CSS的知识. 熟练掌握DOM和HTML知识, (用来解析Web界面) 熟练掌握XML技术,(需要用XML保存测试数据,用XML展现测试报告) 熟练使用C# P/inoke技术调用Windows

web前端工程师知识汇总

分类: Web开发应用 一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/DOM/Flash等各种Web技术进行产品的界面开发.制作标准优化的代码,并增加交互动态功能,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验. Web前端工程师成长之路--知识汇总 图1.前端技术MSS W

TestNG学习-001-基础理论知识

此 文主要讲述用 TestNG 的基础理论知识,TestNG 的特定,编写测试过程三步骤,与 JUnit4+ 的差异,以此使亲对 TestNG 测试框架能够有一个简单的认知. 希望能对初学 TestNG 测试框架的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激! TestNG是什么?TestNG是一个灵感来自于 JUnit 和 NUnit 的一个设计用来简化广泛的测试需求的开源自动化测试框架,其引入了一些新的功能,使其功能更强大,而且易于使用,但是 TestNG 不是 JUnit 的扩展.它

数据库入门理论知识介绍

数据库入门理论知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1>.数据库(极难扩展): 2>.存储: 所以说做互联网的运维工程师要是把以上两点问题解决就可以轻松的搞定整个架构 2.什么是数据库: 查百度上有长篇大论了一下数据库特点,我们可以简单的理解: 数据库就是一个存放数据的仓库,这个仓库按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数

iOS Socket理论知识

iOS Socket理论知识 序言 网络七层由下往上分别为物理层.数据链路层.网路层.传输层.会话层.表示层和应用层.其中物理层.数据链路层和网络层通常被称作媒体称,是网络工程师所研究的对象;传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议对应与应用层 TCP/UDP协议对应于传输层 IP协议对应于网络层 三者本质上没有可比性.何况HTTP协议是基于TCP连接的.TCP/IP是传输层协议,主要解决数据如何在网络中传输:而HTTP是应用层协议,主要解决如何包装

功能测试转型必备课程 零基础入门Web自动化测试

第1章 课程介绍本章主要对整个课程简单介绍,并且把学习过程中会经常遇见的问题进行讲解. 第2章 手工测试转型自动化测试必备技能本章讲解从手工测试转型自动化测试必须掌握的一些知识,学会的技能点,以及从思想的转变到框架的了解,让初级学者对自动化测试不再迷茫,轻松学习起来. 第3章 从功能测试角度出发讲解自动化测试selenium基础本章通过功能测试分析到自动化测试的转变,从功能角度出发,讲解自动化selenium的基本知识,让你真的把浏览器操作起来,进一步的了解自动化测试. 第4章 HTML基础定位

ElasticSearch实战系列四: ElasticSearch理论知识介绍

前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是一个实战派,不太喜欢讲这些理论知识,因为这块可以查看官方文档,那里会写得非常详细,但是在使用了ElasticSearch之后,发现有的知识点需要掌握一定的理论知识才能理解,对于初学者来说有的不好理解,因此写下该篇文章,希望读者在看完之后能够有所帮助. ElasticSearch 理论知识介绍 Ela

堆和栈的理论知识

一.预备知识-程序的内存分配       1. 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)-由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap)-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收.注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵.3.全局区(静态区)(static)-全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初

JDBC编程理论知识(1)

1.SUN公司为统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC 2.JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成. 组成JDBC的2个包: (1)java.sql.*; (2)javax.sql.*; 3.JDBC在程序中的位置: 4.JDBC的六个固定步骤 1,注册数据库驱动[利用反射] 2,取得数据库连接对象Connection 3,创建SQL对象 4,执行SQL命令,并返回结果集 5,处理结果集 6,