1.认识软件及测试
1.1.什么是软件
软件:控制计算机硬件的工具
软件分两大类:(1)系统软件
pc端:Windows,Linux,Mac
移动端:Android,IOS
(2)应用软件
聊天软件:微信、QQ
文本软件:Wps、Office、记事本
下载软件:迅雷、比特
游戏软件:LOL、WOW、仙剑
1.2.软件基本组成
软件组成:客户端,服务端,数据库
1.3.软件生产过程
1.4.什么是软件测试
软件测试:使用技术手段验证软件是否满足使用需求。
1.5.软件测试目的
目的:减少软件缺陷(bug),保证软件质量
1.6.总结
1.什么是软件?
控制计算机硬件工作的工具。
2.什么是软件测试
使用技术手段验证软件是否满足使用需求。
3.软件测试目的
减少软件缺陷(bug),保障软件质量。
2.测试主流技能
测试主流技能有四点:
1.功能测试
2.自动化测试
3.接口测试
4.性能测试
2.1.功能测试
功能测试:主要验证程序的功能是否满足需求
例如:测试用户登录功能
根据测试用例表来逐一测试,每一项测试完成后写实际结果:
问1:测试用例表谁写?测试人员
问2:什么时候写?需求文档,界面
问3:什么时候测?开发完成
问4:有没有技巧?有
2.2.自动化测试
自动化测试:是指使用代码或工具代替手工,对项目进行测试
例如:测试商城登录功能
通过代码进行自动测试,效率比人工快:
然后生成相应的自动化报告:
问1:自动化有什么意义?自动化阶段讲
单从提高效率上讲,假如明天项目上线,今晚上又加了一个功能,那产品经理会想,新 增的这个功能会不会影响前面的20个功能?让测试人员去测?一万头泥马。
如果我们用自动化测,估计就三四个小时完成了。
2.3接口测试
接口测试:使用代码或工具对服务端提供的接口进行测试
(1)什么是接口?
硬件接口:
软件接口:
(2)工具实现
开发人员一定会给测试人员一个接口文档,上面写清楚了接口的请求地址、请求方式和请求参数及响应数据等等信息,测试人员只需要按要求输入正确或错误的数据,看输出的数据是否与接口文档中的一致。
我们通过接口测试工具来进行测试:
常用的接口测试工具:postman、postApi等等。
(3)代码实现
代码实现接口测试,效率会更高,也会生产测试报告
常见的代码接口测试:swagger
2.4.性能测试
性能测试:模拟多人使用软件,查找服务器缺陷
例如:模拟20人登录
(1)使用工具
实现模拟20人同时登录:
常用的性能测试工具:JMeter
(2)代码实现
2.5.总结
功能测试:测试主要验证程序的功能是否满足需求。
自动化测试:使用代码或工具代替手工,对项目进行测试。
接口测试:使用代码或工具验证程序中的接口是否访问正常。
性能测试:模拟多人使用软件,查找服务器缺陷。
3.常见的测试分类
3.1.按测试阶段划分
- 在国内,目前单元测试都是由程序员自己测试,测试自己写的代码没问题,再提交测试人员。
- 集成测试是测试模块和模块间的接口,是非常重要的测试。
- 相同测试时对整个系统进行全方位的测试,不仅仅是代码,功能,流程,包括整体的性能等等。
- 验收测试时在项目开发完成后,从不同用户的角度来测试。
3.2.按代码可见度划分
即能不能见到源代码。划分为:
(1)黑盒测试
只见UI,不见源代码
(2)灰盒测试
部分源代码可见(机集成测试中的接口测试),功能不可见。
(3)白盒测试
全部代码可见,UI功能不可见
3.3.小结
(1)按阶段划分
1..单元测试:针对程序源代码进行测试
2.集成测试:针对程序接口进行测试
3.系统测试:针对程序功能,非功能进行测试。
4.验收测试:使用不同用户(公测,内测)进行测试
(2)按代码可见度划分
1.黑盒测试:不关注源代码,针对程序UI功能进行测试
2.灰盒测试:针对程序部分代码进行测试
3.白盒测试:针对程序源代码进行测试
注:UI(User Interface 用户接口),指的就是界面。
4.测试模型
4.1.质量模型
质量模型: 衡量一个优秀软件的维度
通过8点来衡量,即
通过案例来说明这8点。
4.2.案例
需求:
1.开发一款网络游戏,要求有10个功能
2.游戏支持Web(浏览器)端、App端
3.游戏上线后预计每日20w用户玩家在线
(1)功能性
需求 测试
● 10个功能 ● 功能数量为10个
● 功能详情(……) ● 功能正确实现
● 错误处理情况
(2)性能
需求 测试
● 预估每日在线人数20W ● 服务器每秒处理请求数
● 服务器硬件配置是否满足
(3)兼容性
● 浏览器:谷歌、IE、火狐、欧朋、苹果
● 操作系统:Win系统:win7、win8、win10、其他
● 手机:分辨率、品牌、系统、网络、其他
(4)易用性
● 简洁
● 友好
● 流畅
● 美观
(5)可造性
● 无响应:出现无响应
● 卡顿:响应时间慢
● 死机(闪退):系统崩溃
(6)安装
● 传输加密
● 存储加密
(7)可移植性
● 数据迁移
(8)可维护性
● 核心代码注释
vs
注:功能、性能、兼容、易用、安全是必测。
5.软件测试流程
测试流程分6步:
(1)需求评审
产品人员将需求转换成文档——《需求文档》
然后召集UI、开发、测试、实施讲解项目,确保各部门需求理解一致。
(2)编写测试计划
测什么(对象)、谁来测(人员)、怎么测(安排)
(3)用例设计
验证项目是否符合需求的操作文档
(4)用例执行
项目模块开发完成,开始执行用例文档实施测试。
(5)缺陷管理
对缺陷进行管理的过程
(6)测试报告
实施的测试结果文档
6.测试用例
6.1.什么是用例?
用例:用户使用的案例
- 是否能开机:打开手机按下电源键3秒钟,看是否能开机。
- 验证内存:打开手机设置查看内存是否为64G
- 验证屏幕:打开手机在白屏背景下是否有黑点
- 检查运行速度:打开手机下载吃鸡游戏,是否运行流畅
6.2.什么是测试用例
测试用例:为了 测试项目而设计的执行文档 测试人员一定要按照这文档来测试。
问:没有文档就不能测试吗?
答:肯定能测试,有测试文档是为了防止漏测。
6.3.用例的作用
1.防止漏测
没有文档也能测,但一定会存在漏测。
2.执行测试的标准
如果测试只是为了测成功或失败,那程序员测就行了。测试人员还要关注体验感,从用户角度出发去测试软件,是一个综合性的测试标准。
6.4.用例编写格式
用例编写的格式,我们简称为8大要素:
(1)用例编号
用例的唯一标识符。
格式:项目_模块_编号
(2)用例标题
该用例测什么东西(是比较难写的一个要素,要让评审看明白我们有没有覆盖测试点)。
格式:预期结果(测试点)
(3)项目模块
该用例所属的项目或模块
(4)优先级
执行的优先级
表示用例的重要程序或影响力:P0~P3(P0最高,是指核心功能,用户常用的功能)
P0:核心功能测试用例(冒烟测试),确定此版本是否可测的测试用例,此部分测试用例如果fail会阻碍大部分其他测试用例的验证。
P1:高优先级测试用例,最常执行以保证功能性是稳定的。基本功能测试和重要的错误、边界值测试。
P2:中优先级测试用例,更全面的验证功能的各个方面,异常测试,边界、中断、断网、容错、UI等测试用例。
P3:低优先级测试用例,不常被执行,性能、压力、兼容性、稳定性、安全、可用性等等。
(5)前置条件
要执行此条用例,有哪些前置操作
(6)测试步骤
描述清楚执行测试的每一个步骤
(7)测试数据
执行测试中使用到的数据,没有可以为空
(8)预期结果
期望的达到的结果
问:可以写6大要素、7大要素吗?
答:可以,但测试不完整
6.5.用例测试
需求:QQ登录(4条)
- 账号为空
- 账号未注册
- 密码为空
- 密码错误
测试用例: