全文来自于网络资料整理,每段后面标有出处。

应用测试分析的切入点

1. 应用的启动和停止1.1 首次启动

是否出现欢迎界面,欢迎界面的停留时间合理,欢迎界面后是否正常进入应用;

首次启动时间是否合理;

该拉取的信息是否正确;

桌面图标是否创建成功,功能启动快捷键创建是否成功(某些安卓手机会有在桌面创建应用内某个功能的快捷键的需求)

1.2 二次启动

启动时间是否符合预期;

从各个启动入口进入应用是否可以正常进入:程序启动主图标,某个功能的快捷键,widget;

启动后状态检查:如初始化信息、初始状态、启动对网络

启动进程服务检查:进程名、进程数、服务名、服务数、第三方调用的SDK如GPS

带登陆的应用是否二次启动的时候正常登录

1.3 程序异常退出后的启动

操作出现crash后再启动:如空指针、内存溢出等

手动停止进程:多进程的情况停止所有或者停止其中一个后重启

手动停止服务:多服务的情况,停止所有或者停止部分服务后,未重启直接使用

管家软件一键清理进程后重启

其他系统软件工具停止进程、清理软件数据

2. 程序功能模块

这个一般是根据需求来对应用的所有模块所以功能的触发事件逐一验证。这个最基本的要从两个方面考察,一方面是顺从需求来对模块进行操作,是否达到需求规定的预期;另一方面就是与需求背道而驰是否程序会有相应异常控制等等。廖叔提出了Google正在使用的测试建模的概念,这个方法可以可以帮助我们更好的结合需求分析应用的架构,设计更完善的功能模块用例。

2.1 文本框输入功能

正常输入,输入越界,特殊字符集(\n,\r等等),利用复制粘贴向文本输入内容,输入程序规定不让输入的字符

2.2 事件触发

每一个按钮、每一个可点击项是否能够完成需求规定的功能

尝试点击页面上不可点击的区域,来验证在测试过程当中的预留测试后门是否关闭

3. 权限安全

需要用户确认的权限没有授权,权限默认关闭

联网权限被管家、系统安全类软件限制情况下的联网操作

权限敏感度,如通讯录等为系统的绝密权限谨慎获取

使用安全软件进行安全漏洞、病毒扫描,看被测APP是否会被这些安全软件提示有问题而影响用户的对被测APP的使用或者印象

4. 文件存储

APP使用过程中产生的临时文件存储路径、命名方式等

APP中涉及的下载操作产生的文件存储方式

存储的文件被锁、占用

有外置SD、内置SD卡都要考察APP产生的文件是否正确

APP被安装在SD卡或者手机存储空间

磁盘空间不足、磁盘无权限(如读、写)

5. 网络与流量

网络信号,尤其是弱网络环境下应用的表现

不同运营商网络:电信、联通、移动,2G/3G/4G

网络中断、网络恢复场景的逻辑处理(如重试),以及网络提示

首次启动应用的流量是否符合预期

统计、异常上报对流量的影响

APP中图片大小、尺寸是否有考虑对网络流量的影响

基于流量安全的特殊业务,如仅wifi联网

6. 接口容错

请求网络层错误:http response返回非200的状态

请求业务层错误:接口返回内容为空、超长、字段类型不匹配

7. 中断测试

锁屏中断:停留在程序操作界面进行锁屏,恢复后检查操作是否正常

前后台切换:停留在程序操作界面,通过Home键,进行程序的前后台切换

加载中断:页面接口请求、界面框架加载时,通过Home键、返回键、快速切换操作进行中断

系统异常中断:如关机、断电、来电

8. 机型适配8.1 分辨率适配

UI结构、对话框基于分辨率、屏幕大小进行适配

8.2 OS版本适配

涉及API调用如获取SIM卡信息、外置SD卡设置(4.4外置SD卡不具备写的权限)

8.3 CPU硬件配置

X86机型、V5、V6、V7、V8

9. 系统配置

进程管理:省电管理、后台进程驻留管理

显示管理:字体大小、字体类型

语言环境:语言环境

横竖屏配置:是否支持横竖屏自适应处理

10. 升级 覆盖安装

逐步升级:用户数据、设置、状态的保留,特步注意新版本已去掉的状态或设置

跳级:即隔开版本覆盖安装

降级:覆盖安装更低版本

卸载安装 4、卸载安装,安装目录清理,SD卡存储数据不被清理

省流量升级:有些助手提供省流量升级的方式

在没有更新或者网络时,需要给予用户正确的信息表达

如果升级有忽略本次版本升级,那么当有新的升级版本时,是否还有提示升级

强制升级 8、不升级无法使用

11. 性能测试11.1 性能

核心操作的性能指标:如CPU/内存、响应时长、电量、流量

11.2 稳定性

选择某些场景做持续反复操作

Monkey稳定性操作,持续多个小时

11.3 流畅度

列表滑动、返回进入、快速点击(这个肉眼不好评判,可以借助GT,一般打分在90分以上是比较好的)

11.4 软件兼容

通用软件 输入法

安全软件

通信类

竞品软件 同类软件,是否出现冲突

12. 竞品对比测试

功能方面:与同类竞品软件在UI设计,交互体验等方面进行对比

上面内容转载自作者:赏味不足
链接:https://www.zhihu.com/question/51558124/answer/126391053

测试用例具体编写方法

在编写测试用例之前,你得想好有哪些前置条件。这些前置条件满足了才能达到你得预期。比如账号密码登录,前置条件时账号和密码同时正确才能正常登录成功。那么此时你就得编写条件不符的时候,是否也会成功。如果成功了,那就属于BUG,需要技术进行修复。

一般正常情况,请考虑一下几个方面

  1. 页面布局是否合理,如导航栏上面应该显示三个按钮,实际上却显示了两行。
  2. 页面文字描述是否准确,如气泡提示:密码格式错误,请重新输入。实际上却显示:账号密码错误。
  3. 如果有加载规则,是否符合加载规则。如:进入页面加载20条内容,实际上却加载了10条。
  4. 如果有排列规则,是否符合排列规则。如应按照时间倒序排列,实际上却是正序排列。
  5. 操作是否符合要求,如单击某个点,是否准确跳转或显示内容。如本应该进行跳转,实际上却未进行跳转。
  6. 输入框输入的内容是否有符合格式要求。如:账号不允许",",而实际上却允许了。
  7. 输入的内容是否符合合法性要求。如:账号密码是否一致等问题。

等等这些基本考虑内容都需要考虑进来。

大概理清楚需要考虑的内容之后,就可以开始动手写了。

  1. 序号: 不用说,就是按顺序下去的。
  2. 模块:该功能点具体属于哪个模块的,填写这个主要是方便查找,如:注册/登录模块
  3. 编号:对每个用例进行编号,方便后期跟进。毕竟用文字说,容易口误。不过此处建议编号设计的有点规则,方便快速定位查找。如:A0001。其中A表示注册/登录模块。00表示账号登录,01 表示账号密码登录下的第一个测试用例。
  4. 功能点:具体指某个功能,如:账号登录、首页、发布等。
  5. 子功能点:具体指功能点,如:账号密码登录、手机验证码登录、邮箱登录、第三方授权登录等。
  6. 用例名称:具体测试用例的名称。如:输入账号、输入密码、密码不合规等等。
  7. 前置条件:指要达到预期测试结果,需要满足那些条件才能达到。如:账号密码不一致时,就需要登录失败,那么此时就得保证账号正确或密码正确以及账号正确时是存在的。
  8. 操作步骤:指要达到预期测试结果,需要按这些步骤来。最好说明在什么页面,点击或操作什么内容,输入什么内容。
  9. 预期结果:说明按照前面写的应该呈现出怎样的结果。
  10. 测试结果:如果符合预期结果,直接填写正常或OK,如果不符合,则说明不符合或NO,
  11. 结果描述:如果正常,可以不用填写,如果不符合预期结果,则说明哪里不符合。
  12. 测试人员:填写测试人的名字,方便后期跟踪BUG。
  13. 测试日期:填写测试的时间,方便后期查询。
  14. BUGID:跟测试编号一样,自己设定ID规则,方便快速查询。
  15. BUG负责人:此处应该有技术那边填写,具体落实到某个人身上,才能更好的解决到问题。

以上就是测试用例的具体填写方法及作用。测试完了之后,记得进行回归测试以确保测试的意义

此处转载自作者:光点神奇
链接:https://www.zhihu.com/question/51558124/answer/160438357

测试人员应该怎样编写一份高质量的测试用例?

1.测试用例设计方法

等价类划分法

边界值分析法

因果图

决策表

正交试验

场景法

状态迁移

错误推测法

2.测试用例的组成元素

用例编号

用例标题

功能模块名称

前置条件

输入数据

操作步骤

预期结果

优先级

执行结果

编写人

执行人

以上元素在一个测试用例中并不是需要完全包括,但是像用例编号,用例标题,前置条件,输入数据,操作步骤,预期结果,优先级,执行结果则是每一条测试用例必要元素。

3.用例标题

  • 字数不能太多
  • 概括性-看到标题就能清楚这条用例测试点是什么
  • 不能歧义性

4.测试用例的特点

  • 步骤清晰

操作步骤要清楚明了,如果刚开始不知道怎么写,建议就按执行测试的步骤一步一步写清楚

例如现在有一个QQ登录成功的用例,操作步骤就可按如下写:

1.点击QQ应用程序

2.输入正确的用户名

3.输入正确的密码

4.点击登录

  • 结果唯一

一条测试用例只允许有一个测试结果;一条测试用例只包含一个测试点;一条测试用例可以有多个检查点;预期结果中不要包含有歧义性或二义性的字

  • 可操作性强

这一点主要体现在不同的测试人员在不同的测试平台上运行,最终的结果都是相同的

注意点:不管是用例标题还是预期结果,尽量不要使用含糊不清的语句

用例设计方法

1.等价类划分法

等价类划分法,顾名思义,就是指将界面上的输入框的输入域看成一个大饼,然后又根据某方面输入值之间等价性进行划分,再而从每个等价域中选取少量具有代表性的数据做为测试用例的输入数据。每个等价类值又根据是否对程序有无作用,而分为有效等价类和无效等价类。

有效等价类:此类中值对程序来说是有意义的、合理的,可检验程序是否实现了需求规格说明中所规定的功能和性能

无效等价类:此类中的值正好相反,对程序来说是不合理的、无意义,输入此类中值程序无法实现相应的功能和性能,但是不是说程序不会对此类中值有反应,从程序的健壮性来考虑,程序也应该对此类中的值做出正确的反应。

等价类划分的原则:

1、按区间划分

在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类

2、按数据集合划分

在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类(该集合有效值以外)

3、按数据布尔值划分

在输入条件是布尔值的情况下,可确定一个有效等价类和一个无效等价类

4、按数值划分

要规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类

5、按限制条件或规则划分

在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

6、按细分等价划分

在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类

根据以上的原则将输入域的值从不同的维度进行划分后,就可以在每个等价类中选取少量的、并具有代表性意义的值作为程序的输入数据,并开始设计测试用例。其实在设计测试用例数据时,测试人员不仅要考虑输入域,还需要考虑输出域,输出域的等价类划分和输入域的划分相同。

设计测试用例的方法:

1)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止

2)设计新的测试用例,使其只覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止

注意点:一条测试用例只能包含一个无效等价类,这一点是非常重要的,就像测试人员经常说一条测试用例只包含一个测试点一样。如果是测试新手刚开始不能一下子理清有效等价类和无效等价类,可以先输出一个等价类表,然后再根据等价类表和设计测试用例的方法输出测试用例。

2.边界值分析法

边界值分析法经常用于对等价类划分法完成之后作的补充,但这也是必不可少的,原因就是程序的大量错误是发生在输入或输出范围的边界上的,而不是在输入范围的内部,因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。

所谓的边界是指相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。边界值分析不仅考虑输入条件,还要考虑输出空产生的测试情况。空值(空格,null)是比较特殊的情况,在设计测试用例时尤为需要注意。

边界值分析的值:

内点:域内的任意点都是内点

上点:指边界上的点,无论此时域是开区间还是闭区间,上点就是域的上限与下限值

离点:指的就是离上点最近的点,这里就跟闭区间还是开区间就有关系了,如果是开区间,那么离点就在域内,如果闭区间,那么离点就在域外(开内闭外)

例如:输入框的输入数据范围为3-6(包含3和6),则内点是4,5;上点是3,6;离点是2,7。

边界值分析的原则:

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据(内点,上点,离点)
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
  • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
  • 如果程序中使用的一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例
  • 分析规格说明,找出其他可能的边界条件

边界值分析法不仅可以针对输入框中数值进行分析,对于下拉框、空间都是可以进行分析的。

黑盒用例设计方法除了以上二种还有很多,测试人员在编写测试用例时不需要强制要求使用哪一种方法,并且在编写用例过程中,一般都需要搭配多种设计方法共同编写,以满足测试用例对需求规格说明书的最大覆盖。

此处转载自作者:王豆豆
链接:https://www.zhihu.com/question/51558124/answer/25643141

如何编写测试用例?(最全版)相关推荐

  1. SAP UI5 应用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输入文本的功能试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  2. 如何编写测试用例?流程及5大编写步骤

    编写测试用例的5个步骤: 1.选择测试工具: 2.确定测试场景: 3.编写测试用例: 4.确认测试用例: 5.组织测试用例.但在编写测试用例之前,测试人员需要充分了解软件的需求和规格,以确保测试用例能 ...

  3. html 网页制作标签,html网页制作标签最全版.doc

    html网页制作标签最全版 Meta Name(页面描述信息) keywords.关键字,格式: description.描述,格式: author. 作者,格式: generator.编写工具,格式 ...

  4. 软件测试用例模板和例子_如何编写测试用例?

    一.刚刚从事软件测试职业,如何快速掌握编写测试用例的方法?该怎样编写测试用例呢?专家分析:1.根据需求文档,完全按照需求文档框架/功能描述,根据自己的理解整理为用例.简单来说,就是将需求文档描述的内容 ...

  5. 亲测快捷高效的编写测试用例方法

    目录 一.什么是测试用例? 二.设计用例是否有必要? 三.设计用例的益处? 四.一定要写测试用例吗? 五.测试用例怎么写? 六.用例必备4个方面? 七.用例设计理念? 八.没有需求文档,如何测试,如何 ...

  6. 【日拱一卒】如何编写测试用例(上)

    [日拱一卒]如何编写测试用例(下) [写在前面的话] 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入.执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求. 测试用 ...

  7. 教你如何编写测试用例

    从今天开始文末有免费送书活动了 1.测试用例(test cases)的概念是什么? 测试用例是一组有条件的用例,QA可以依靠这些条件来确定应用程序.软件系统或某些功能是否按预期执行. 测试用例是QA执 ...

  8. 创建单元测试-编写测试用例 and执行测试用例

    编写测试用例 编写单元测试一版遵循3A模式: Arrange(准备).设置测试场景,准备测试数据 Act(执行).调用被测试代码 Assert(断言).验证被测代码的行为是否与预期相同 在jasmin ...

  9. 如何编写测试用例-好东西与大家分享

    1.刚刚从事软件测试职业,如何快速掌握编写测试用例的方法?该怎样编写测试用例呢? 专家分析: 1.根据需求文档,完全按照需求文档框架/功能描述,根据自己的理解整理为用例.简单来说,就是将需求文档描述的 ...

最新文章

  1. 独家 | 带你入门比Python更高效的Numpy(附代码)
  2. JUnit 5 – 早期试用体验 – 第2篇
  3. OpenCV + python 实现人脸检测(基于照片和视频进行检测)
  4. pve 群晖 virtio速度慢_群晖DS Note高级教程——教你使用智能记事本
  5. ace nonblock
  6. mysql 有十进制类型吗_MySQL数据类型
  7. 【详解】CSS阴影用法——Web前端系列学习笔记
  8. 利用StringUtils可以避免空指针问题
  9. 船员英语老师是面试还是计算机答题,面试时的英语介绍
  10. 【报告分享】2019中国少儿编程行业报告.pdf(附下载链接)
  11. kubernetes集群搭建
  12. Oracle sga、pga介绍改动
  13. day30 JavaWeb阶段——HTML基础(源码+w3cschool菜鸟教程)
  14. PS2022安装教程(附个人详细安装教程)
  15. Android接入三方登录——QQ、微信、Facebook、Twitter
  16. 给定一字符串,按顺时针顺序输出为一个正方形
  17. CF 1646D Weight the Tree 树形dp
  18. 宝马项目化流程标准(BMW ABC flyer requirement)
  19. JUnit5技术分享
  20. 线阵相机的优势是什么?如何选择线阵相机?

热门文章

  1. 最实用的vue刷新当前页面,provide / inject 组合 方式实现vue页面刷新
  2. 测试岗面试基础知识——软件测试
  3. 【Python强化】使用pandas和csv读取csv文件
  4. (转)企业如何留住人才
  5. 【Wu的课堂】《运筹学》单纯形法中文讲解笔记
  6. 博多·舍费尔实现财务自由的10+1个想法
  7. 遇到问题--mac合盖后断网----mac合盖后不断网设置--亲测有效
  8. 天天酷跑java_利用Java怎么实现一个天天酷跑游戏
  9. 音频服务器运行失败怎么办,音频服务错误1068怎么解决 音频服务未运行win10解决方法...
  10. 如果一级方程式定义效率