软件测试03
- 进阶
-
- 测试的分类
-
- 开发阶段
-
- 单元测试
- 集成测试
- 系统测试
- 验收测试
- 实施组织
-
- α测试
- β测试
- 第三方测试
- 运行
-
- 静态测试
- 动态测试
- 手工
-
- 手工测试
- 自动化测试
- 查看代码
-
- 黑盒测试
- 白盒测试
- 灰盒测试
- 地域
-
- 国际化测试
- 测试对象
-
- 业务测试
- 界面测试
- 容错性测试
- 兼容性测试
- 易用性测试
- 安全性测试
- 性能测试
- 内存泄露测试
-
-
- 补充
-
进阶
测试的分类
按开发阶段分:单元测试、集成测试、系统测试、验收测试
按测试实施组织:α、β、第三方
按测试执行方式:静态测试、动态测试
按是否查看代码:黑盒测试、白盒测试、灰盒测试
按是否手工执行:手工、自动化
按测试对象划分:性能测试、安全测试、兼容性测试、文档测试、易用性测试、业务测试、界面测试、安装测试
按测试地域划分:本地化测试、国际化测试

SDK:全称 SoftWare Development Kit ,一般是指软件工程师特定的软件包建立的开发工具集合
测试金字塔:从下到上定位问题越来越困难、从下到上测试效率越来越低
开发阶段
按开发阶段划分为:单元测试、集成测试、系统测试、验收测试
单元测试
测试阶段:开发前(TDD)、开发后
TDD:Test Driven Development,意为测试驱动开发;步骤为:测试人员先写测试脚本,开发人员根据脚本的异常去进行开发
测试对象:最小模块
测试人员:白盒测试工程师/开发测试工程师
测试方法:白盒测试
测试内容:模块接口测试,局部数据结构,边界测试,错误处理测试,逻辑结构测试
单元测试的步骤:
1.先在pom.xml文件中添加下述依赖
2.下载Junit插件(File-Setting中下载插件)
3.选中要测试的类的类名(Dao层)创建测试类(可以使用CTRL+SHIFT+T来创建,选择对应的版本,此处选择junit4)生成的类在test目录下
4.在这个测试类中,就有选择的Dao层类里所有的功能,就可以对其各个功能进行测试,在每个方法前都有@Test注解,可以单独运行这个注解来对对应的功能进行测试。
集成测试
按照一定的策略把单元功能模块组装起来,对组装起来的模块进行测试
测试阶段:单元测试之后
测试依据:概要设计文档
测试对象:接口
测试方法:黑盒白盒相结合
测试人员:黑盒测试工程师和白盒测试工程师
测试内容:模块与模块之间的接口,全局数据结构的测试,单个模块的缺陷对整个功能的影响,模块功能的正确性,冲突
系统测试
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试
测试阶段:集成测试之后
测试依据:详细设计文档
测试对象:整个软件系统
测试方法:黑盒测试
测试人员:黑盒测试工程师
测试内容:功能、界面,性能,易用性,安全性,兼容性,可靠性,可移植性等
回归测试:当系统引入新代码时(更新或修改bug后),进行回归测试
回归测试的策略:自动化测试
冒烟测试:对系统的主要功能和核心流程进行测试(正式进行系统测试前,测试人员是否接受本次迭代正式测试的依据)
验收测试
也叫交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求
测试阶段:系统测试之后
测试依据:用户需求
测试对象:整个系统
测试方法:黑盒
测试人员:用户
测试内容:与系统测试基本一致,增加了文档测试
实施组织
按照测试实施组织划分为:α测试、β测试与第三方测试
β测试之前要进行很长一段时间的α测试,在产品正式面向用户之前,会进行β测试
α测试
α测试:让用户进行现场测试
测试人员:非开发人员与测试人员的任何人(包括公司员工)
优点:可以及时的反馈测试信息
缺点:受环境限制,受开发人员与测试人员的影响
β测试
β测试:让用户进行实际测试,不限时间,不限地点。如:某游戏软件的内测
测试人员:用户(实际使用用户,如:内测)
第三方测试
第三方测试:找一些第三方测试公司(专业做测试)来对软件进行全方面的测试
运行
按是否运行分为:静态测试、动态测试
静态测试
不运行代码,通过静态分析代码的语法,编写规范,逻辑,结构,实现的功能,来判断软件是否满足用户的需求(也就是看代码)
软件的质量通过功能、性能、兼容性、易用性、可靠性、安全性、可维护性、可移植性来衡量
代码静态分析和文档测试都属于静态测试
动态测试
运行被测程序,检查运行结果与预期结果的差异,并分析运行效率,正确性和健壮性等性能,这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果
大多数软件测试工作都属于动态测试
手工
按是否手工分为:手工测试、自动化测试
手工测试
手工测试实际就是黑盒测试,测试人员先写测试用例,运行系统,执行测试用例,分析结果
缺点:量大,容易出错,会花费大量的时间
优点:进行探索性测试和发散性测试
自动化测试
机器按照预先设定好的条件去运行系统
自动化脚本:把手工测试的测试用例转化为脚本去测试
自动化测试的条件:系统功能稳定后
查看代码
按是否查看代码分为:白盒测试、黑盒测试、灰盒测试
黑盒测试
也就是把软件看成一个黑色的盒子,不关心软件内部结构、逻辑、功能的具体代码实现,只关心输入输出是否满足用户需求
黑盒测试:就是利用测试用例来对程序进行测试,常用的方法有:等价类、边界值、因果图法、场景法、错误猜测法、正交法等
在测试阶段中,集成测试、系统测试、验收测试会用到黑盒测试方法
白盒测试
也就是把软件看成一个透明的盒子,去测试软件内部代码的结构、逻辑、功能是否满足用户的需求。简单来说就是对代码的测试,透过现象看本质。
白盒测试的方法:语句覆盖、循环覆盖、逻辑覆盖(路径覆盖、条件覆盖、判定覆盖、条件组合、判定组合)
这些方法的目的是让代码的每一行都运行到(如 只运行 if 里的代码而不运行else里的代码是不行的)
灰盒测试
处于白盒测试与黑盒测试之间,既关心软件的输入输出,也关心软件内容的逻辑、结构、功能的实现
地域
按照测试地域划分为国际化测试和本地化测试
国际化测试
测试对象
按测试对象可以分为:性能测试、安全测试、兼容性测试、文档测试、易用性测试、业务测试、界面测试、安装测试
业务测试
把一个个孤立的功能点按照一定的策略组合在一起,形成一个业务,对这个业务进行测试,就是业务测试
相当于ATM机取款业务的测试
界面测试
界面测试的原因:一个优秀的界面可以提升用户的体验,从而保持大量的客户流量,因此,界面测试是很有必要的
界面测试的关注点:
布局(图片位置、文字展示、各种控件的展示)
文字(标题、字 、粗细、是否斜体、字体、是否下划线)
图片(位置是否合理、大小、是否遮挡、是否不清晰)
控件(按钮、滚动条是否可以使用,CheckBox)
页面元素有效无效的状态:有效、无效、高亮展示、灰色
弹出框:提示框位置是否合理
界面是否容易操作
界面测试常见的BUG:不合适的快捷键、丢失的文字、截断、自动换行、重叠、重复的快捷键、没有对齐
响应式界面:页面可以响应不同大小的浏览器,再不同大小的浏览器下有不同的合理的展示形式,如:各种设备(手机、ipad、电脑)
响应式界面的测试:
1.页面大小进行切换时,切换过程页面元素展示无缝衔接、丝滑、不会出现页面空白、图片或功能丢失的情况
2.页面从大到小切换,页面图片、文字都不会丢失
3.页面从大到小切换,页面功能不会丢失,且不影响正常使用
4.页面从大到小切换,都遵循UI界面设计需求
容错性测试
当系统由于外部环境或用户操作不当引起一些问题时,系统可以自我消化这些错误,不直接展示给用户,针对这些问题的测试就叫做容错性测试
容错性的表现:
数据级别:时间(如:某月32日)、货币
校验级别:前后空格(API:trim)、验证码
环境级别:断 、断电、服务器瘫痪
界面级别:界面会屏蔽违规违法操作,对于一些固定的输入,可以使用下拉框或者固定信息选择,模糊匹配,对于一些复杂或危险的操作,有详细的用户提示
失效恢复性测试:故意人为的让系统受到一些破坏,破坏系统的 络、电源、攻击系统的服务器、等到系统恢复正常时,用户的数据可以正常恢复
用户信息数据是否可以完全恢复
系统恢复数据所需时间
兼容性测试
登陆设备测试:PC IOS WIN Android MAC ipad等包括各版本
浏览器的兼容性(内核不一样就会使某些模块的显示不一样)IE、edge、chrome、firefox、360、QQ、搜狗、夸克、safari、opera等
软件的各版本
软件与其它同类软件的兼容性
数据兼容性等
易用性测试
也叫用户体验测试,遵循一定的标准和规范(软件行业默认的)
弹框:分为消息弹框、警告弹框、严重错误弹框
灵活性:用户可以有多种选择,可以选择自己认为较为方便的使用方式(如键盘:九宫格、手写、26键)
舒适性:进度条(上传、下载、移动文件)
实用性:软件的定位与软件的设计功能一致
安全性测试
如SQL注入攻击测试
性能测试
系统是否可以迅速的响应用户的请求
在超过用户负载时,系统是否可以稳定的运行
系统要在预期和非预期的情况下,用户有良好的体验
响应时间、点击率、事务平均响应时间(TPS)、系统运行时占用资源的使用情况等
内存泄露测试
内存泄漏的坏处:系统可以使用的内存越来越少、系统运行越来越慢、长期运行系统可能导致系统崩溃
导致内存泄露的原因:
分配了内存,忘记回收
API函数使用不正确
函数写的有问题,无法释放内存
分配的内存没有及时释放
要对内存泄露进行测试一般会用到静态测试或工具测试
补充
在进行单元测试时,在某个方法前添加注解@Ignore,就表示执行所有方法时不执行本方法
添加注解@Before,表示在执行每一个方法前都先执行本方法
添加注解@After,表示执行每一个方法后再执行本方法
安装与卸载
应用的安装与卸载在任何一个应用中都属于最基本的功能,一旦出错,就属于优先级为紧要的critical的缺陷。
安装与卸载作为一个测试点应注意以下几点:
1.应用是否可以正常安装(包括apk、命令行、手机助手、第三方软件安装等)
2.是否可以在不同系统上进行安装(如:Android、IOS、PC、ipad等)包括不同版本的系统
3.安装过程是否可以暂停
4.空间不足时是否会提示,提示是否友好
5.若出现断 情况,是否有提示
6.是否可以正常卸载(桌面卸载、第三方卸载、命令行卸载)
7.卸载后是否所有相关文件夹都以删除
8.卸载过程中出现不可控的情况,是否可以恢复卸载
9.卸载是否支持取消功能,取消后卸载情况是否正常
运行
软件安装后,需要检查软件是否可以正常运行
运行作为测试点应注意:
1.软件安装后,是否可以正常打开,稳定运行
2.APP的速度是否可以接受,是否运行流畅
3.反复使用某个功能,系统可以正常使用,而不是崩溃
4. 络异常时,应用是否会崩溃
注册和登陆
登陆一般分为以下几种:账 密码注册登录;手机 注册登录;第三方授权登录;二维码登录;刷脸登录;指纹登陆;苹果账户对已经登陆过的app的账户和密码进行记忆登陆;邮箱登陆;声纹登陆;蓝牙识别登陆
账 密码注册登陆应注意:
1.输入正确(符合要求)的账 密码,是否可以正常注册登录
2.已注册用户再次注册
3.未注册用户尝试登录
4.密码是否为明文展示
5.输入框(如账 格式、邮箱格式)是否对输入的长度与格式进行校验
6.密码是否加密传输
7.未登录时是否可以使用已登录的功能
8.切换账 ,是否会做到及时更新数据
9.多设备登陆同一账 时,是否会出现提示、数据是否及时更新、是否会卡掉原设备登陆状态等
手机 注册登录
1.手机 输入格式校验
2.验证码短信是否及时
3.用验证码是否可以正常登陆
4.验证码错误时,是否提示
5.验证短信文案是否符合app
6.重复发送验证码是否前一个会失效
7.频繁发送验证码是否有限制
8.验证码有效期是否正常
日期
在很多拥有时间、日期的软件中,应注意:
1.月份和日期校验
2.跨年时,年份是否及时更新
权限
常见的权限有:定位权限,蓝牙权限,wifi权限,应用自启动权限,存储权限,摄像头权限
权限方面应注意:
1.首次启动APP询问是否同意启用权限
2.消息权限开启时,消息推送是否正常接收(包括后台清理后是否可以接受推送)
3.消息权限关闭后,客户端接收不到消息推送
4.位置权限开启时,软件可定位到当前位置
5.位置权限关闭后,定位才可用的功能,是否有提示引导用户开启定位
6. 络权限关闭时,软件是否有提示
更新
分为强制更新和非强制更新
强制更新应注意:
1.多次关闭和打开软件后是否正常跳出更新弹窗,且无法关闭
2.点击更新后,是否会引导用户进行更新至完成
非强制更新应注意:
1.可正常关闭更新弹窗
2.重启软件更新提示按照需求再次显示,或者不再显示
3.点击更新后,是否会引导用户进行更新至完成
4.取消版本更新时,老版本可以正常使用
5.软件更新后版本 应有更新
6.软件更新后新增功能和老功能可正常使用
7.当有新版本时,不删除软件的情况下,直接更新是否成功
8.删除软件后更新(重新安装),安装的是最新版本的软件
络环境
络环境应注意:
1.3G,4G,wifi 络环境下应用的各功能可正常运行
2. 络异常时,数据交换失败是否有提示
3.有 -无 -有 ,数据是否可以恢复正常
4.只允许内 访问的软件,接到外 是否有提示
兼容性测试
兼容性测试应注意:
1.尽量覆盖该产品的主要用户
2.从不同系统,版本,分辨率,机型等纬度进行适配测试
3.在少数主流设备上执行全面的测试用例,在其他设备上执行主要功能的测试用例
4.在不同分辨率下是否存在展示异常
异常测试
1.没有内存空间时,软件能否正确响应
2.横竖屏切换展示
3.软件运行时 络中断
4.反复操作某个功能,不断点击和刷新,是否会出现闪退
5.软件运行时接入电话,短信,微信,或其他消息
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!