软件测试分析
概念:是根据需求提取被测软件中需要测试的地方,即找到要测试的地方。
测试项:又叫做应测特性,还可以叫做测试点、功能点,即要测试的地方。
学习测试分析的目的:把要测试的地方全部找到,防止漏测。
分析设计工作的前提:一定要根据需求来熟悉,熟悉被测软件,软件越熟悉对将来的测试分析工作就越好,分析的越全面。
熟悉需求的途径
1. 根据文档熟悉:
a) 需求文档——需求人员提供;
b) 测试用例——测试人员提供
c) 开发的设计文档——开发人员
d) 代码——开发人员(使用较少)
e) 帮助文档(用户手册)——资料人员(测试人员、需求人员兼职)
2. 可以直接到被测软件中操作来熟悉
3. 参考被测软件的同类型产品
对于新功能的途径:根据文档只能参考需求文档,参考同类型软件
对于老功能的途径:以上方法都可以
更科学的熟悉需求的方法:SFDPOT思路,从6方面来熟悉软件。
SFDPOT思路
01 S—Structure:结构
建议熟悉被测软件时,可以了解被测软件的架构和构成
架构:
B/S:服务器+浏览器——不用测试浏览器
C/S:服务器+客户端——测试客户端的安装、升级、卸载
单机版:客户端——测试客户端的安装、升级、卸载
构成:
1) 启动文件:要测试,双击能否打开,不会漏测
2) 卸载文件:要测试,双击打开卸载窗口,一步一步卸载软件,可能会漏测
3) 代码文件(dll):要测试,怎么测试?
a) 单元测试:一行一行代码进行测试,代码成本过高,测试要求较高,测试开发比例:1:1,甚至更高
b) 系统测试:测试和开发比例:1:3,节省成本
4) 配置文件
常见的配置文件后缀:.ini、.xml、.conf
要测试,容易漏测,如何测试?
测试配置选项,修改配置选项的value值,改成正确的、错误的分别测试
5) 帮助文档(help):要测试
打开帮助文档查看文档中的内容是否正确合理——文档测试
02 F—Function:功能
提醒测试人员要熟悉被测软件的功能模块,梳理所有的功能模块
例如:定时任务
03 D—Data:数据
提醒测试人员熟悉被测软件需要的测试数据,提前准备这些测试数据,节省测试时间
一般软件中包含三类数据:
1) 预置数据:搭建测试环境时,预先往数据库中准备的数据;操作之前需要提前准备的前提
2) 输入数据:考虑合法的(正确的)、非法的(错误的)
Eg:全能 合法:音视频文件(mp3、mp4、rmvb…)
非法:非音视频文件(txt、docx、py、sql…)、将txt改成mp3后缀
3) 输出数据:数据输入进去后会得到的正确的输出是什么?即:结果(预期结果)
04 P—Platform:平台
了解被测软件会在哪些环境中来使用(更加侧重于客户端的环境)
即:分析兼容性测试需要覆盖的环境
B/S:不同的浏览器:火狐、谷歌、IE、360、QQ浏览器…
C/S、单机版:不同的操作系统
PC:win7、win10…
终端:ios、android(设备厂商)、鸿蒙
05 O—Operation:操作
提醒测试人员了解客户通过哪些不同的方式使用软件,站在客户的角度考虑问题
06 T—Time:时间
提醒测试人员了解被测软件中是否有跟系统时间有关联的功能,如果有,需要分析系统时间的变化会不会影响对应功能
练习:利用SFDPOT思路熟悉QQ(PC)
注意:数据、操作 分别选择一个功能进行分析
1.结构:
架构:C/S架构:要测试客户端的安装、卸载、升级
构成:测试启动文件、卸载文件、系统功能测试、配置文件、帮助文件
2.功能:
根据功能模块覆盖,避免遗漏:登录、个人设置、消息管理、添加好友、删除好友、系统设置、qq空间
3.数据:登录模块
1)预置数据:账号已注册
2)输入:
合法:已注册账号
非法:未注册账号、字母、下划线、特殊字符
3)输出:
合法输入的输出:登录成功,看到QQ主界面——消息列表,增加登录成功日志记录
非法输入的输出:登录失败,界面异常提示,增加登录失败日志记录
4.平台
PC:win7、win8、win10、win11、MAC
5.操作:消息管理——发送消息
发送消息目标:好友、陌生人、群、黑名单
发送内容:文字、图片、文件、视频、音频
发送提交方式:按钮、Enter键
6.时间
会员:设备时间变更能否让过期会员继续使用会员特权
消息信息显示:本地设备时间变更会不会影响消息显示时间;聊天双方处于不同地理位置,界面显示时间是否收到各自客户端设备所处地域限制变化而变化
验证消息时间限制:接收验证消息超期后,修改本地系统时间是否能继续验证
提取测试项的方法:3种
1.质量模型分析法
2.功能交互分析法
3.用户使用场景分析法
1.质量模型分析法(最重要)
质量模型:6大特性27个子特性,告诉测试人员:质量不是单由一个方面来决定的,质量是多方面考虑的。
01、功能性
a) 适合性
功能适合当前这个软件,需求人员来把控的;
提醒测试人员需求中的功能在被测软件中都要有,即:所有的需求都要被开发,防止漏开发。
至于这个需求是否加到被测软件中,由需求人员把控,以及需求评审控制。
b) 准确性
被测软件提供的功能要正确,即:被测软件能正常使用
c) 互操作性
先分析被测软件和其它软件有无交互,如果有,针对交互进行测试
Eg:淘宝软件和支付宝、物流软件有交互;滴滴和高德地图有交互…
d) 保密安全性
先分析是否有敏感数据,再分析被测软件的安全级别要求高不高。
如果有敏感数据,安全级别要求高,就需要进行安全方面的测试。
Eg:全能音频转换通:不需要测试
银行系统:需要测试
总结:
适合性、准确性:属于功能测试,每个软件都要测试;
互操作性、保密安全性:需要进行分析,并不是每个软件都需要测试的。
02、易用性
a) 易理解性
提醒测试人员在测试时注意界面上的信息显示是否容易理解
b) 易学性
先分析有没有帮助文档、用户手册,如果有就需要测试——文档测试
c) 易操作性
提醒测试人员测试被测软件操作简便,即:操作上要简单、步骤少,用起来顺手
d) 吸引性
提醒测试人员测试时要考虑软件的外观(排版、布局、色彩、大小)
总结:
易理解性、吸引性:都是关注软件的界面,即GUI测试,基本上每个软件都要做GUI测试;
易学性:不一定每个软件都有
易操作性:基本上每个软件都要测试
03、效率
对于性能测试:一般有压力的情况下才需要测试性能。
软件的压力:
多用户带来的压力,主要测试服务器端的抗压能力;
大数据带来的压力,主要测试服务端数据库的抗压能力;
a) 时间特性:考虑用户在有压力的情况下使用软件是快还是慢
b) 资源利用率:一般考虑的是服务器的资源消耗情况(CPU、内存)
总结:性能不是每个软件都需要测试,先分析有没有压力(多用户、数据量比较大),如果有压力,就需要测试性能。
04、可移植性
a) 适应性
提醒测试人员在测试时要注意被测软件能否在不同的环境使用,主要是适应不同的客户端环境,即:测试客户端的兼容性
B/S:不同浏览器
C/S、单机版:不同的操作系统
b) 易安装性
先分析有没有客户端,如果被测软件有客户端,就需要测试客户端的安装;
c) 易替换性
升级:从低版本升级到高版本
两种:直接覆盖(不卸载旧版本直接安装新版本)、先卸载旧版本再安装新版本
d) 共存性
也是兼容性的一种,但是测试的不多
提醒测试人员在测试时要考虑被测软件和其它同类型软件或者有关联的软件能在一起使用,相互之间不影响。
总结:
适应性:每个软件都要测试——兼容性测试;
易安装、易替换性:不是每个软件都要测试,只有有客户端的软件才需要测试;
共存性:bug基本不会有,优先级低,一般不测试
05、可靠性
a) 成熟性
一般是和时间有关系,提醒测试人员:分析被测软件是否有长时间使用的情况,如果有就需要进行长时间的测试——稳定性测试
b) 容错性
提醒测试人员在测试时要考虑软件有容纳外来错误的能力
外来错误:输入进去的错误,即:输入的非法数据(属于功能测试中的异常测试)
c) 易恢复性
当前的运行环境出现一些问题后,被测软件的应对能力——可靠性测试
Eg:word未保存,断电,重新启动word后自动打开未保存的缓存内容
磁盘空间满:软件下载占用磁盘,下载过程中将磁盘占满,下载任务暂停,磁盘清理后下载任务能否继续
总结:
成熟性:不会每个软件都需要测试,如果软件没有长时间使用的情况就不需要测试;
容错性:属于功能测试,一般都需要测试;
易恢复性:想要测试的话,每个软件都可以测试,优先级低
测试类型总结
测试类型(工作中的说法) | 质量模型(理论上的说法) |
功能测试 | 适合性、准确性、容错性、互操作性 |
GUI测试 | 易理解性、吸引性 |
易用性测试 | 易操作性 |
兼容性测试 | 适应性、共存性 |
性能测试 | 时间特性、资源利用率 |
安装测试 | 易安装性、易替换性 |
文档测试 | 易学性 |
稳定性测试 | 成熟性 |
可靠性测试 | 易恢复性 |
安全性测试 | 保密安全性 |
练习:针对全能音频转换通软件进行质量模型分析法提取测试项,要求以添加文件为目标进行分析
针对全能音频转换通软件进行质量模型分析法提取测试项,要求以添加文件为目标进行分析
功能测试
适合性:在全能中有添加文件功能
准确性:测试全能中添加音视频文件
容错性:测试全能添加非音视频文件、非音视频文件改为音视频后缀的文件添加
互操作性:无
GUI测试
易理解性:全能添加文件界面文字信息显示
吸引性:全能添加文件界面布局、排版、色彩美观大方、放大缩小界面后的显示
易用性测试
易操作性:测试直接拖拽文件到全能中
兼容性测试
适应性:测试全能在不同操作系统(win7、win10、win11)中都能正常添加文件
共存性:测试全能和其它软禁一起使用不冲突
性能测试
单机版软甲,无服务器压力,当前添加文件操作实际读取文件名称和路径消耗资源很少,不会对设备造成太大资源消耗,所以不需要测试性能。
时间特性:
资源利用率:
安装测试
易安装性:测试全能安装、卸载
易替换性:测试全能升级
文档测试
易学性:测试全能添加文件帮助文档
稳定性测试
成熟性:添加文件很快,不存在长时间使用的情况,不需要测试
可靠性测试
易恢复性:添加文件很快,一瞬间完成,很难破坏,不考虑测试可靠性
安全性测试
保密安全性:没有敏感数据,安全级别要求不高,不需要测试
2.功能交互分析法
提醒测试人员不要只关注自己的模块,还要关注跟其他模块之间的交互、关联,如果有关联,需要针对关联进行测试(容易漏测)
关联有两种:
1) 需求中明确说明的,按照需求来测试
Eg:未添加文件时,转换操作调用添加文件
2) 需求中没有说明,但是需要关注,用户的操作——经验、发散思维
Eg:测试打开多个窗口,一个进行批量转换、一个进行合并转换、一个进行截取转换,都是对同一个音频文件处理
3.用户使用场景分析法
分析客户使用软件的整体的过程,需要了解客户使用软件是为了做什么
软件分类:
1) 如果是针对特定群体:和客户端沟通了解
Eg:全能音频转换通(音乐爱好者、剪辑配音)
2) 如果是针对大众群体:问自己、问朋友、问家人
3) 如果软件的客户不是人:软件的客户可以是另外一个软件
Eg:滴滴是高德的客户;淘宝是支付宝的客户
分析完客户,了解客户的使用场景,针对客户的使用场景进行测试
Eg:全能音频转换通
A. 格式转换,使用过程:打开全能—》添加音频文件—》批量转换—》播放试听—》关闭全能
B. 做歌曲串烧,使用过程:打开全能—》添加音频文件—》截取转换(多次)--》添加截取后的音频文件—》合并转换—》播放试听—》关闭
总结:
质量模型分析法:要求针对每一个功能模块都要借助质量模型分析法提取测试项,针对单一一个功能模块考虑
功能交互分析法:不是只考虑一个模块,还要考虑模块之间的关联
用户使用场景分析法:考虑用户使用的全过程,即:业务流程,多个功能模块全部串起来
提取一个软件的测试项以上三个方法都要用到,三个方法配合使用。