软件测试基础
前言
- 软件测试的基础知识总览
一、什么是软件测试
- 软件测试就是软件的质量检测,通过一定时间,操作和检测确保软件的功能是否正常
二、软件测试的目的
- 发现程序员在开发过程中代码存在的问题,以及逻辑上的错误
- 审核提交的产品是否符合客户需求
- 提高客户的满意度
- 提交更高质量的产品
三、软件测试的基本流程
- V模型,RAD快速开发,也成为了软件开发的V模型。就是开发和测试同时进行,用来缩短开发周期,提高测试相率。
四、测试分类
- 白盒测完(逻辑驱动测试):称为结构测试、透明盒测试,是基于代码的测试,要求测试人员能够自己写带吗来测试程序内部逻辑结构,和所有逻辑路径,输出测试数据
- 黑盒测试(数据驱动测试): 称为功能测试,界面测试(UI测试,测试界面布局是否合理),压力测试,负载测试
- 兼容性测试: 测试系统软件硬件的兼容性能力(app、浏览器兼容性、客户端兼容性)
- 性能测试: 压力测试(最大访问量)、负载测试(最大访问量的最长时间)
- 安全测试: 测试系统防止非法入侵的能力(网络安全方面)
- 恢复测试
- 回归测试: 按错误修改后或软件功能,环境发生变化后进行的重新测试(就是开发对测试所提出的bug进行修复后,再把软件发给测试重新测)
- 探索性测试
- 验收测试
五、测试用例
1、什么是测试用例
- 在测试之前,根据测试点来设计的的测试依据。
(就是指导你执行测试,帮助你证明软件功能或发现软件缺陷的一种说明。也就是每一个测试点的数据设计和步骤设计。)
2、测试用例的重要性
- 便于测试计划的实施
我们可以根据测试用例,一步一步滴测试,并清楚地知道测试的进度。 - 规划测试数据的准备
根据测试用例,提前设计好测试需要的数据,如:手机号码(数据类型,数据长度),微信红包金额(0.01-200) - 编写测试脚本的根本
- 评估测试结果的基准
根据测试用例的通过率以及错误率,来判定该软件测试项目的测试结果,能不能发布 - 分析缺陷、
3、测试用例的设计方法
- 等价类划分:这个范围内的数据对某个功能或者是某个定义规则而言,取任何一个数据都是等同效果的。
- 边界值 :就是定义分类的左右两边附近的值
- 错误推测法:推测其异常情况,平常大部分异常情况,都是来自于错误推测法。
- 场景法:模拟整个业务流程的场景,然后验证系统功能是否正确。
- 正常流:基本流就是没有出现异常 (一次性正常登录)
- 分支流:判断异常,然后进行处理
4、测试点分析
- 对某个功能模块的单个功能进行验证。(功能测试)
- 模块与模块间的业务联系,验证相关联系==(功能交互测试)==
- 考虑隐形的需求验证,在需求文档中一般没有体现==(界面,安全,兼容性,易用性,性能)==
示例:整理绑定银行卡的测试点
测试点如下:
- a. 正常功能:先测试整体业务流程,看能不能正常绑定银行卡。
- b. 检查下拉框,能不能下拉,下拉框中的信息是否符合数据字典要求,能不能在选择框中编辑信息。
- c. 置灰界面能不能输入信息,置灰界面中的信息是否与数据库中的信息匹配。
- d. 检测输入“卡号”的数据长度,数据类型能否遵循数据字典的要求。
- e. 检查输入“手机号”的数据长度,数据类型是否符合数据字典的要求。
- f. 检查输入“充值金额“的大小是否符合满足规定的要求(边界值)。
- g. 检查按下”获取验证码”后,到获取了验证码的时间是否满足规定的时间。
如果在规定时间内没有获得验证码,是否可以再次按下获取验证码。 - h. 检查所“获取的验证码”的数据长度,和数据类型是否符合遵循数据字典的要求。
如果输入错误的验证码,能不能直接通过手机验证。
如果输入错误的验证码,有没有提示。 - i. 检查页面手机是否协调,页面信息是否完整,清晰。
- j. 检查页面窗口功能是否正常。
5、如何编写测试用例
- 一句不同的功能模块列出测试点
- 选择等价类、边界值、错误推断法等测试用例设计方法,西华测试点分解我不同的测试标准,并补充对应的测试步骤及测试数据,预期结果
- 测试用例覆盖所有的用户需求,包括单个功能及功能业务的覆盖;正面和反面用例的覆盖
- 编写时注意测试用例编写格式要求,元素包含测试编号、测试标题、预置条件、…;不存在冗余、重复、二义性等。
6、测试用例的一般形式
| 编号 | 功能模块 | 子模块 | 标题 | 预设条件 | 测试步骤 | 预期结果 | 实际结果 | 备注 |
|---|---|---|---|---|---|---|---|---|
| DXFS_001 | 短信平台发送 | 正常功能 | 输入正常合法的各信息,是否发送成功 | 网络正常、账号登录系统成功 | 1.点击[短信群发] 2.输入3个手机号:15878788888(移动)、18600001111(联通)、18900001111(电信)3.输入短信内容:testing 4.发送方式默认即时发送,点击提交 | 1.正常跳转至短信群发界面 2.成功添加3个手机号码 3.短信内容字数更新为74.提示发送成功,查询[短信发送记录]正确显示 | ||
| DXFS_002 | 短信平台发送 | 手机号 | 手机号为黑名单,是否过滤 | 1.网络正常 2.账号登录系统成功 3.在[黑名单]模块已添加黑名单号码 | 1.点击[短信群发] 2.输入2个手机号,其中包含黑名单号码:15878788888、18600001111(黑名单) 3.输入短信内容:testing 4.发送方式默认即时发送,点击提交 | 黑名单号码信息被过滤,下发一条信息成功,查询[短信发送记录]正确显示 | ||
| DXFS_003 | 短信平台发送 | 手机号 | 手机号为重复号码,是否过滤 | 1.网络正常2.账号登录系统成功3.在[黑名单]模块已添加黑名单号码 | 1.点击[短信群发] 2.输入2个手机号,其中包含黑名单号码:15878786543、15878786543(重复号码) 3.输入短信内容:testing 4.发送方式默认即时发送,点击提交 | 过滤重复号码,下发一条信息成功,查询[短信发送记录]正确显示 |
六、软件测试需求
- 只要解决“测什么”的问题。一般来自于需求规格说明书中的原始需求。
- 测试需求应该覆盖全部业务流程,包括功能和非功能方面的需求。
1、什么是需求
- 设计测试用例的依据
- 有助于保证测试用例的质量,和进度
- 衡量测试覆盖率的重要指标(功能的覆盖)
2、如何进行软件测试需求分析
- 列出需求文档中具体可测的原始需求。
- 对每一条需求进行细化分解,形成可测试的分层测试描述的测试点(就是测试的地方)。
- 对每一条测试点,从软件产品的质量需求来分析,确定测试执行时需要实施的测试类型。
- 建立测试需求跟踪矩阵,对测试需求进行管理。
七、浏览器兼容性测试
1、定义
- 网页或网站兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。我们的需求就是,无论用什么浏览器查看我们的网站或登录我们的系统,都应格是正常显示效果。为了给用户提供更好的体验效果。(浏览器的兼容,主要是排版问题)
2、产生兼容性问题的原因
- 浏览器使用的内核(决定了浏览器如何显示网页的内容以及页面的格式信息)不同及所支持的HTML等网页语言不标注。
3、常见浏览器介绍
- Firefox:跨多个操作系统平台,最大特色就是兼容性,跟IE相比,速度比较快,不会动不动就卡数,然后也不会被各种广告拦截,还有一些比较有用的插件,比如全屏截图的,firebug抓包、接口httpresquest功能
- Chrome:软件体积小,浏览网页速度快,本身安全性比较高,其简洁、快速的特点、拥有者比较多。因为谷歌退出中国市场,关闭了国内网络,搜索服务,在访问google服务时会自动跳转至HK服务器,但不影响我们兼容性测试。有一个比较厉害的功能就是,可以模拟各种手机进行测试,当日仅限于网页的调试,并不能完全替代手机。
- safari:现在苹果很火,也许你以后到的公司做的产品就需要考虑到苹果浏览器的用户,所以就需要测试这个浏览器
- 其他小众浏览器:世界之窗、猎豹、遨游、QQ
3、浏览器兼容性测试的应用场景
- . 网站:天猫、淘宝、唯品会等
4、什么时候需要做浏览器兼容性测试
- 用户有要求,指定浏览器;网站一般都需要做兼容性、用户使用量来看,选取主流浏览器
5、一般兼容性测试是怎么做的
- 主要是页面格式、字体、输入框、下拉框、复选框、按钮等的检查
6、常见兼容性测试工具
- letester,可以测试不同版本的IE浏览器
- 在虚拟机里面安装不同版本的IE浏览器
- https://app.crossbrowsertesting.com 这个网站支持不同系统版本浏览器的兼容性测试,但是免费用的时长不多,需要缴费进行测试
- Spoon Browser Sandbox http://spoon.net/browsers你可以查看你的网站在各大主流浏览器中的显示效果。当然,使用这个工具之前,你需要先安装一个小插件,但是启动起来非常慢非常慢,需要注册之后才能使用,启动之后效果还是非常好的。
八、软件测试计划和测试报告
1、软件测试计划
- 属于软件测试流程中的第二个阶段。(需求分析,计划,设计,执行,评估)
- 一般由主管来写,是整个测试工作开始之前做的一些准备计划工作。
- 包括的内容:目的,测试范围,测试进度安排,测试人员,测试环境,测试方法,测试工具,风险评估,培训计划。
2、软件测试报告
- 属于软件测试流程中的第五个阶段。
- 一般由测试人员来写
- 包括的内容:
- 如果是初始版本:就要包括测试的功能模块,测试环境,一流的bug有哪些,测试用例的覆盖率有多少,bug的统计与分析,风险有哪些。版本测试评估,发布的建议?
- 如果是升级或者修复版本:就要在上面的基础上,列出这次升级测内容包括哪些。
3、测试结果分析
- 新增功能,老功能的升级bug,出现的新bug
- 还存着哪些问题,并罗列在风险分析。
九、BUG的生命周期
- BUG:与需求不符的产品缺陷
1、bug的类型
- bug的类型:
- 代码错误,设计缺陷,界面优化,性能问题,配置相关,安全部署,安全相关,标准规范,测试脚本,其他。
- 其他划分:功能类,界面类,性能类,易用性类,兼容性类、其他
2、bug的等级
-
致命错误 1级
1)常规错做引起的系统崩溃,死机,死循环
2)造成数据泄露的安全性问题
3)涉及金钱 -
严重错误 2级
1)重要功能不能实现
2)错误的涉及面广,影响到其他重要功能正常实现;
3)非常规操作导致的系统崩溃,死机,死循环
4)外观难以接受的缺陷
5)密码明文显示 -
一般错误 3级
称为故障起因,但对产品外观。
不影响产品的运行,不会成为故障起因,但对产品外观和下一道工序影响较大的缺陷。
1) 次要功能不能正常实现
2)操作界面错误(包括数据窗口内列名定义,含义不一致)
3)查询错误,数据错误
4)简单的输入限制未放在前台控制;
5)删除操作未给出提示 - 细微错误 4级
示例:bug的等级判定
| 编号 | bug标题 | 等级 | 备注 |
|---|---|---|---|
| 1 | 网站无法登陆,无法进行后续操作 | 1级 | |
| 2 | 网站无法登陆,能够进行后续操作 | 2级 | |
| 3 | 用户输入错误的密码可以登陆 | 1级 | 涉及安全性 |
| 4 | 验证码显示打印在网页上,程序员忘记去掉这个打印功能了 | 1级 | 一旦涉及短信验证码,都是安全性比较高的 |
| 5 | 酒店管理网站的网页某些图片显示不出来 | 2级 | |
| 6 | 酒店管理网站的网页某些图片出现重复 | 3级 | |
| 7 | 网站后台删除商品失败 | 2级 | |
| 8 | 网站出现404,访问不了地址,没有给出友好提示 | 1级 | 系统崩溃(服务器繁忙) |
| 9 | 网站出现404,访问不了地址,给出友好提示 | 4级 | 正在维护,平台升级 |
| 10 | 网站充值后,出现金额错误 | 1级 | 涉及金额 |
| 11 | 网站购物后,已经支付,但是仍然显示未支付状态 | 1级 | 涉及金额 |
| 12 | 点击登陆按钮,或者注册按钮无效 | 2级 | |
| 13 | app的某个图标显示太小或者像素失真 | 4级 | |
| 14 | 某个提示语需要改进一下,用户对专业术语不太懂 | 4级 |
3、bug的生命周期
- 就是一个bug被发现到这个bug被关闭的过程
4、bug的状态处理
5、常见问题的处理
- 有没有你印象深刻的bug?
- 从下面的角度思考:
(1)需求阶段发现的问题:更能体现所经历测试工作中测试提前的思想,是很多测试管理者想要的,一直在为之努力的。而且在需求阶段发现BUG需要对业务的熟练掌握,还能体现自己的业务能力;
(2)有争议的Bug:可以使基于用户体验的但需求未明确说明的Bug,可以体现自己对于用户体验的理解。
- 当开发认为不是bug,如何处理?
- 确认开发环境是否跟测试环境一致,如果如开发所说不是缺陷则进行关闭;如果确认是缺陷就去跟开发沟通,沟通未达到一致结果就去找产品经理确认,确认是BUG注明情况再次指派给开发。
- 对于复现率不高的bug怎么处理?
- 确认开发环境是否跟测试环境一致,包括操作步骤,浏览器,特定帐号等,如果多个版本验证之后,如开发所说无法重现,依据BUG的严重程度跟产品,开发一起确认关闭;如果找到重现原因,注明清楚情况,再次指派给开发