文章目录
- 1. 测试用例的基本要素
- 2. 测试用例的设计方法
-
- 2.1 基于需求设计测试用例
-
- 2.11 功能性需求测试分析
- 2.12 非功能性需求测试分析
- 2.2 具体的设计测试用例的方法
-
- 等价类(非常重要)
- 边界值
- 错误猜测法
- 场景法
- 因果图法
- 正交法
- 3. 测试分类
-
- 3.1 按照测试对象划分
-
- 1)界面
- 2)可靠性
- 3) 容错性
- 4) 文档测试
- 5) 兼容性测试
- 6) 易用性测试
- 7) 安装卸载
- 8) 安全测试
- 9) 性能测试
- 10) 内存泄漏测试
- 3.2 按是否查看代码划分
-
- 什么是黑盒测试
- 黑盒测试的方法
- 什么是白盒测试
- 白盒测试的测试方法
- 什么是灰盒测试
- 3.3 按照开发阶段划分
- 3.4 按照实施组织划分
- 3.4 按照是否运行代码
- 3.5 按照是否手工划分
- 3.6 按照地域划分(了解)
1. 测试用例的基本要素
在学习测试用例的基本要素之前,我们先回顾一下前面的一些知识:
-
什么是测试用例br>
-
为什么测试人员为何要写测试用例带给我们的好处)
2. 测试用例的设计方法
2.1 基于需求设计测试用例
需要做到以下几点
- 分析需求,验证需求的正确性和合理性,逻辑自洽,无二义性
- 细化需求,提取出测试项,从每一个测试项目中提取出测试点,根据测试点去具体设计测试用例
在分析测试需求时,一般分为和
2.11 功能性需求测试分析
功能性需求包括以下几个方面:
- 功能的全面性测试(界面从上到下,从做到右)
- ,比如:淘宝APP中的购物场景,我们需要先 ,这一系列就是把相关的功能串起来进行测试。注意:我们不能光关注某一个孤立的功能
- : 例如,QQ登录系统测试用例,输入不同的账 和密码,对应不同的结果,登录方式…
- : 同一个系统不同角色之间的交互。拿淘宝举例,同一系统(淘宝),不同角色(买家和卖家)
- :如:输入账 为空,输入错误的手机 …
- (白盒测试:需要看代码,对代码进行直接测试)
举个例子:我们要如何去分析这个日历页面,才能做到毫无保留把相关功能分析完
页面分析:从上到下,从左到右,依次去分析每个测试点
2.2 具体的设计测试用例的方法
等价类(非常重要)
根据输入(特殊情况下才考虑输出),。
等价类为了解决测试:
应用场景:
边界值
针对输入和输出的边界进行测试用例设计,:6~15位,边界值:5 6 15 16
tips:进行测试用例的设计
错误猜测法
,对自己认为有错误的模块进行专门的测试用例的设计,类似于探索性测试,适用于用例设计后,作为补充,加强去设计测试用例
错误猜测法更依赖个人(知识,经验,直觉),
场景法
很多软件不同的场景,是基于不同的事件的触发,不同事件的触发,导致场景走向不同的事件流。。不同的功能点又有不同的输出,不同的输出导致不同的测试场景。
幻想ATM取款机场景(如何测试):插卡——输入密码——输入取款钱数——取卡——退卡
2)与 (^):多个不同的输入同时为真,输出才为真
3)或 (v):多个输入中其中一个为真,输出为真
5)因果图法设计测试用例的:
- 分析出
- 找出
- 根据关系
- 根据因果图
- 根据判定表
通过一个小练习来更好的理解因果图法:
正交法
根据正交性来设计测试用例,从大量试验数据中根据正交原则取出最优的数据的组合,根据最优数据组合试验的结果,来分析整个测试的结果
3. 测试分类
3.1 按照测试对象划分
分为以下几个部分
1)界面
,界面设计的好坏,直接影响了用户对软件的印象
- 界面测试 测试
- 测试
- 测试 (文字没有重叠,消失,功能都在,可以正常使用,图片清晰排版合理),
- 测试 (有效高亮,失效置灰不能点击)
- 测试
界面常见的错误
- 截断
5. 文字自动换行
直观性:用户期望的操作存在用户课件范围之内
灵活性: 比如 键盘,有九宫格,全键盘,手写,拼音,对于不同习惯的人,要设计不同的 输入方式
舒适性:比如下载个东西,你给个进度条,让用户知道还需要多久才能下载好,不然你下载个东西,用户一点感知都没有,岂不淡疼/p>
实用性:
7) 安装卸载
- 不同的安装卸载途径(安装方式),安装卸载软件正常:安装径一般在:APPstore 安装包 第三方(蒲公英,软件小助手) 命令行
- 安装或者卸载过程中是否能暂停或取消,暂停后继续还是否可以正常安装和卸载
- 安装过程中空间不足,有提示
- 正常卸载软件,如果卸载取消了,不影响软件正常使用
- 安装过程中出现异常,软件可以正常处理(断电, 络连接异常等)
8) 安全测试
安全性指信息安全,软件用户的数据,隐私,以及数据传输过程中的安全性,防止病毒侵入和黑客攻击
安全性测试属于非功能性测试很重要的一个方面,系统常见的安全漏洞和威胁如下:
- 输入域:能够检测带病毒的字符串或者文件
- 防止输入注入:XSS/SQL 注入
- 权限分配要合理
- 传输文件/数据,防止拦截
- 防止爬虫,爬取信息
- 防止黑客攻击
9) 性能测试
我们在使用软件的时候有时会碰到软件 页打开时越来越慢,查询数据时很长时间才显示列表,软件运行越来越慢等问题,这些问题都是系统的性能问题引起的。
要进行软件产品的性能问题,要对产品的性能需求进行分析,然后基于系统的性能需求和系统架构,完成性能测试的设计和执行,最后要进行持续的性能调优。常见的性能问题如下:
- 资源泄露
- 资源瓶颈
- 线程死锁,线程阻塞
- 查询速度慢或效率低
- 受外部影响越来越大
衡量一个系统性能好坏的关键性指标有,。
10) 内存泄漏测试
内存泄露产生的原因:
- 程序中写的有问题,没法回收内存
- API函数使用不正确,无法回收内存
- 对分配的内存没有及时回收,造成内存泄漏
检查代码是否资源泄露:人工检查,工具检查
3.2 按是否查看代码划分
在软件测试岗位的面试中,常常被面试官问到的概念就是了,下面就来彻底讨论一下。
什么是黑盒测试
代码内部的逻辑结构,代码,软件功能的外部的输入和输出是否满足用户的需求,
优点:
- 站在用户的角度去设计测试用例(用户不关系代码,只关心功能,是否满足自己的需求),容易培养产品思维
- 设计测试用例是,
黑盒测试的方法
等价类,边界值,场景法,因果图,错误猜测法,正交法
什么是白盒测试
分析代码的逻辑结构,查看代码是否规范,代码的风格是否和公司的设计一致,对代码进行测试,看代码是否实现了需求。
单元测试(可以做)——>白盒测试
白盒测试的测试方法
主要包含六中测试方法:
语句覆盖,逻辑覆盖,逻辑覆盖,判定覆盖,条件覆盖,判定组合覆盖,判定和条件覆盖,条件和条件组合
补充:等价类和边界值 有时也会用在 白盒测试
如下图: a > 1 adn b = 0
什么是灰盒测试
灰盒测试介于白盒和黑盒之间,既关心程序的输入和输出,也关心程序内部的实现
3.3 按照开发阶段划分
2.集成测试阶段:按照一定的逻辑和策略把单元模块组合在一起,形成一个具有完全功能的大模板。
- 测试阶段:单元测试
- 测试方法:灰盒测试
- 测试对象:黑盒测试工程师/白盒测试工程师
- 测试依据:概要设计文档
- 测试内容:模块功能的正确性,组成模块的单元之间的接口测试,全局数据结构测试,单个模块的功能缺陷对整个模块的影响
3.系统测试阶段:对软件系统进行全面的功能和非功能测试
- 测试方法:黑盒测试
- 测试阶段:集成测试以后
- 测试对象:整个软件系统
- 测试方法:黑盒测试
- 测试人员:黑盒测试工程师
- 测试依据:需求设计文档
- 测试内容:系统的功能,界面,可靠性,容错性,易用性,可移植性,兼容性,安全性,性能,安装卸载(新软件)
- 回归测试:当系统引入新代码的时候,测试人员往往需要验证新的代码对旧功能参数的影响,所做的测试叫做回归测试(增加新功能的时候和修改BUG的时候,会进行回归测试)(重要)
- 冒烟测试:在软件开发完成后,要对软件的基础功能和核心流程进行测试,测试通过后,才可以进入正式测试环境,如果测试不通过,测试人员有权利打回,让开发重新修改直到冒烟成功(冒烟测试由测试/开发人员进行测试)(重要)
4.验收测试阶段:软件上线前最后一次测试,也称为交付测试
- 测试方法:黑盒测试
- 测试阶段: 系统测试之后
- 测试对象:整个软件系统
- 测试依据:用户需求
- 测试人员:用户
- 测试方法:黑盒测试
- 测试内容:同系统测试(文档测试)
3.4 按照实施组织划分
1.α测试:在β测试之前进行的,把用户或者非测试和开发的人请到开发现场进行测试
- 测试环境:开发现场
- 测试人员:非开发和测试的人
- 优缺点:优点:有问题可以直接反馈给开发人员 缺点:受制于开发人员
2.β测试:让实际用户在实际使用环境中进行测试,测试完成后对问题进行统一汇总反馈
α和β测试的区别:
- 测试环境不同
- 测试时间集中成都不同
- α测试优先于β测试
3.第三方测试:是软件的第三方测评机构,按照软件行业的标准规范对软件进行测试(了解即可)
4.按照代码是否运行
- 静态测试:不运行代码,通过检查代码的风格,格式是否符合公司的规范标准,检查代码的逻辑结构是否满足需求要实现的功能
- 动态测试:运行代码,给程序响应的输入,看是否得到期望的输出
3.4 按照是否运行代码
- 静态测试(查看代码)
- 动态测试
3.5 按照是否手工划分
1.手工测试:按照测试用例,公共去测试系统的功能
缺点:量大容易出错;效率低:有些极端情况无法测试到
优点:可以进行探索性测试,比较灵活,不能完全被自动化替代(重要)
2.自动化测试: 机器按照预先设定好的条件去运行,设定好的条件有正常的有异常的。
不是所有的项目都适合自动化(!!!!)
3.6 按照地域划分(了解)
补充:
软件国际化:进行软件设计和开发的时候,使用一种工程技术,使得软件在转化为不同的国家语言的时候,可以不用修改源码,适应不同的语言,不同国家人民的风俗习惯等
-
软件国际化测试:
- 外观上看界面功能没有缺失,正常使用
- 是否适应这国家人的使用习惯,文字,日期,风俗习惯,度量单位,货币,重量单位
- 不同分辨率下,软件的正常展示和使用
- 不同硬件设备
-
软件本地化:具体到某一个国家
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!