软件测试定义
定义
通过人工或者工具来检测软件系统的过程,检验系统是否满足需求文档的规定的要求,并找出与预期结果的差异
目的
通过测试活动发现并解决缺陷,增加人们对软件产品质量的信心
通过测试活动了解被测对象的质量状况,为决策提供数据依据
通过测试积累经验,预防缺陷的出现,降低产品失败的风险
总结: 通过尽可能少的人力、物力、财力来查找并解决软件中的问题,从而降低商业风险
软件测试的原则
1.穷尽测试是不可能的
2.测试要尽早介入
3.缺陷的集群性(2/8原则)
4.杀虫剂悖论
5.测试活动依赖于测试内容
6.“没有错误就是好” 是谬论
迭代
将一个长周期的项目按需求拆分成不同的阶段,每个阶段都会产出一个可交付的软件或产品
软件测试的流程
a.需求分析
目的:保证产品、开发、测试对需求的理解保持一致,避免因为理解不一致而产生BUG
产品经理主导,召集开发、测试、设计进行需求评审会议
提前熟悉产品的需求
b.编写测试计划和测试方案
测试计划和方案是由测试负责人或测试经理输出,同时需要跟开发负责人确定时间
输出计划和方案后需要邮件通知相关人员
c.编写测试用例
通过用例设计的相关方法来编写用例
用例的要素:用例编号、优先级、测试数据、前置条件、测试步骤、预期结果、实际结果
d.评审测试用例
查漏补缺的作用
e.接口测试(可选)
根据时间来进行接口测试
f.执行测试用例
部署测试环境
执行用例过程中发现的BUG需要记录到项目管理工具或者缺陷管理工具
g.提交测试报告
测试报告用来做为系统上线的依据
h.产品上线
web自动化基础
概念
由程序代替人工进行系统校验的过程
能解决什么问题
1.解决回归测试
2.解决压力测试
3.解决兼容性测试
4.提高测试效率,保证产品质量
优点
较少的时间内能运行更多的测试用例
自动化测试脚本可重复执行
有坑(注册的脚本无法重复执行,但是有解决方案)
减少人为的失误
克服手工测试的局限性
误区
自动化测试可以完全代替手工测试
自动化测试一定比手工测试厉害
自动化测试可以发现更多 的BUG
自动化测试适用于所有功能
分类
web自动化测试
移动自动化测试
接口自动化测试
单元测试-自动化测试
桌面自动化测试
安全自动化测试
嵌入式设备自动化测试
什么样的项目适合做web自动化测试
需求变更不频繁
回归测试
项目周期长
web自动化测试所属分类
黑盒测试(功能测试)
白盒测试(单元测试)
灰盒测试(接口测试)
web自动化属于黑盒测试
web自动化测试环境
selenium特点
代码开源
跨平台
支持windows、linux、macos
支持多浏览器
chrome、火狐、ie、EDGE、opera、safari
支持多语言
python、java、C#、Ruby、JS
成熟稳定、功能强大
环境安装
selenium安装
在线安装方式
pip install selenium
离线安装方式
需要下载selenium安装包
解压安装包文件,然后从DOS命令中进入到解压目录
执行pyhon setup.py install
查看selenium是否安装
pip show selenium
这两种安装方式适用于python所有的第三方模块
浏览器驱动安装
不同的浏览器有不同的浏览器驱动
不同版本的浏览器也有不同的浏览器驱动
将下载的浏览器驱动文件复制到python的安装根目录下即可。
selenium API
元素定位
元素概念
由标签头和标签尾以及标签头与标签尾所包含的内容组合起来就是一个元素
查看元素
通过浏览器开发者工具来进行查看
打开浏览器开发者工具
按F12
在web页面中右击元素,选择“检查”(谷歌)或者“检查元素”(火狐)
ID
通过ID的属性来进行元素定位的
前提条件:元素必须包含 ID属性
driver.find_element_by_id(id)
id 表示的是id的属性值
driver表示的浏览器驱动对象