1.检查功能错误或功能遗漏
2.检查界面错误
3.检查数据库错误
4.检查是否有程序开始或终止方面的错误

  • 测试流程

1.测试计划
根据用户需求报告中的关于功能和性能的有关规格制定测试需求报告。将测试需求报告作为整个测试过程中的最高行为准则,符合测试需求报告就是正确的,否则就是错误的。再次阶段还要合理安排测试时间和人员配置。
2.测试设计
将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,撰写测试用例
3.测试执行
将测试用例中的相关测试点提取并且逐一去检测
4.回归测试
将之前发现的程序缺陷进行二次测试,要考虑与之前错误程序可能有关联的地方会不会出现连结错误。
5.测试评审
对测试结果进行小组评审,总结问题,并撰写测试说明书。

  • 优缺点

优点:适用于功能测试、可用性测试及可接受性测试,依照软件规划说明书上的需求和功能来进行长的且复杂的测试。对程序的工作逻辑非常容易理解。
缺点:不可能进行毫无遗漏的测试,只能依照规格说明书和测试人员的经验进行大面积覆盖测试,有些时候,软件的逻辑可能有人为设置的错误或者规格说明书中有功能模块被遗漏等,黑盒测试都是无能为力的。

  • 常用方法

  • 等价类划分法

  • 定义
    首先要明确,测试时无法穷尽所有出现问题的可能。而我们要做的就是尽可能找到有代表性的例子,通过对这些例子进行测试来尽可能评估产品或程序的功能是否可能出现错误。
    等价类:是指将所有可能的程序输入域划分成若干个子集,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其他值的测试。

  • 等价类的划分
    等价类的划分可以分为有效等价类和无效等价类。
    有效等价类是值对程序的需求来说是正确的,有效的,合理的,有意义的集合。有效等价类主要是探寻程序是否实现了规格说明书中对程序的功能和性能上的需求。说直白点有效等价类就是输入正常的值来观察程序是否出错。
    无效等价类是指对程序的需求说明是不合理的或无意义的输入数据所构成的集合。无效等价类可以为一个也可以为多个。无效等价类主要是检查程序对错误的值的处理。

  • 划分方法
    1.在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
    2.在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类。
    3.在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
    4.在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
    5.在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
    6.在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

  • 例子:
    有这样一个程序,允许一到六个英文字符或者数字输入。
    问题分析:
    有效等价类:长度 :1-6,字符:a-z,A-Z,0-9
    无效等价类:长度:0,7,字符:除英文和数字以外的字符

  • 边界值划分法

  • 定义
    边界值划分法主要用于对输入框的边界值进行测试,是对等价类划分法的补充。由大量的测试经验总结可知大量错误往往发生在边界中,所以针对边界进行测试,可以大概率查出错误。
    边界值分析方法的理论基础也是基于一个假设:假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。

  • 边界值法设计测试用例
    使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的任意值作为测试数据。

  • 使用条件
    1.输入条件明确了值的范围(比如参数值范围1-99)
    2.输入条件明确了值的个数(比如参数表示个数,需求规定个数1-5个)
    3.输入条件明确了是一个有序的集合(比如参数只能是(1,2,3))

  • 例子
    淘宝店铺老板想搞活动,假设淘宝服务搞活动接口其中一个参数就是活动时长,后端规定活动的时长最多72个小时,最少24个小时。此时针对创建活动的这个时长参数,我们可以设计如下用例。
    问题分析:首先用等价类进行划分
    有效等价类:24<=时长<=72
    无效等价类:时长<24,时长>72,时长为非整数,时长为非法字符。
    然后用边界值的思想进行补充。
    这里的边界有两个24和72,这里边界情况取了5种,24,72,23,73,36。
    因为是闭区间,所以除了边界值,还要考虑边界值过去的点,比如23,73。
    然后因为时间长度是个范围,还要在范围内补充一个测试点,这里取36。

  • 错误推测法

  • 定义
    在程序测试中,测试人员可以依照自己的经验和直觉推测程序中可能存在的错误,从而有针对性的进行程序测试和编写用例设计。错误推测法最重要的就是对测试人员的经验要求高,不推荐小白进行使用。
    错误推测法的核心思想是:列出程序中所有可能有的错误和可能发生错误的情况,根据这些可能情况针对性选择测试用例。例如,之前测试环节发现的错误和程序中常见错误对其进行总结,可对其进行测试用例。
    错误推测法直白的说就是运用你掌握的测试知识和对之前出现错误的总结经验以及对可能出现的错误的直觉设计测试用例来进行测试。

  • 错误推测法的前提条件
    1.深度熟悉被测系统的业务逻辑和功能需求。
    这里的熟悉是指能够完全了解系统的功能和运行逻辑,而不是停留在表面的简单使用上。
    2.对被测系统或类似系统之前的缺陷分布情况进行过系统的分析。包括功能缺陷,数据缺陷,接口缺陷和界面缺陷等等。

  • 举例:
    这是我第一家面试的测试实习生问的问题,当时答的不是很好,现在来总结一下。
    手机不能接打电话,可能的原因是。
    测试手机终端的通话功能,可以设计通话失败的情况来补充测试用例
    1.无SIM 插入时进行呼出(非紧急呼叫)
    2.插入已欠费SIM卡进行呼出
    3.射频器件损坏或无信号区域插入有效SIM卡呼出
    4.网络正常、插入有效SIM卡,呼无效号码
    5.网络正常,插入有效SIM卡,使用“快速拔号”功能呼出设置无效号码的数字

  • 因果图法

  • 定义
    是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
    因果图方法最终生成的就是判定表。

  • 因果图概述
    在因果图中,用Ci表示条件,Ei表示动作,有4种符号分别表示了规格说明中的4种因果关系,如图:

    其中各节点表示的状态,可取值“0”或“1”。其中,“0”表示某状态不出现,“1”表示某状态出现。

恒等:

若条件出现,则动作出现;若条件不出现,则动作也不出现。

非(∽):

若条件出现,则动作不出现;若条件不出现,则动作出现。

或(∨):

若几个原因有一个出现,则结果出现;若几个原因都不出现,则结果不出现。

与(∧):

若几个原因都出现,结果才出现;若其中一个原因不出现,则结果不出现。

  • 生成测试用例
    (1) 分析软件规格说明书中的输入输出条件并分析出等价类,将每个输入输出赋予一个标示符;分析规格说明中的语义,通过这些语义来找出相应的输入与输入之间,输入与输出之间的关系。

(2) 将对应的输入与输入之间,输入与输出之间的关系关联起来,并将其中不可能的组合情况标注成约束或者限制条件,形成因果图。

(3) 由因果图转化成判定表。

(4) 将判定表的每一列拿出来作为依据,设计测试用例。
例子:某个软件规格说明中包含以下要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改;但如果第一列字符不正确,则输出信息L;如果第二列字符不是数字,则给出信息M。

解:

采用因果图方法进行分析,根据如下“关系表”,获得“因果图”的各种组合,其中∨表示“或”,∧表示“与”,∽表示“非。”

因果图

注:11为中间节点;因为原因1和原因2不能同时为1,所以施加约束。
C1和C2为互斥关系,用E表示。

根据“因果图”制定“判定表”,3个因素共有8种组合。由于C1(首字符是A)成立时,C2(首字符是B)就不成立,此时变成6种组合。再合并结果一样的列,变成4种组合。如下表:

注:“判定表”的每一列代表一个测试用例。

  • 判定表法

  • 定义
    判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达的既准确又明确。
    判定表法主要是侧重输入条件之间的逻辑关系。
  • 判定表法组成部分
    1.条件桩:列出所有可能的条件
    2.条件项:列出所有的条件取值的组合
    3.动作桩:列出所有可能操作
    4.动作项:列出在每一种条件取值组合的情况下执行动作桩的哪些动作
    5.规则:一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则。条件组合的数目就是规则的数目。
  • 建立判定表可遵循的步骤
  1. 列出条件桩和动作桩
  2. 确定规则的个数,用来给规则编号
  3. 完成所有条件项的编写
  4. 完成所有动作项的填写
  5. 合并相似规则,对初始判断表进行简化。

备选流1:用户不存在→注册用户

备选流2:密码不正确

备选流3:账户余额不足→充值

第二步:根据基本流和各项备选流确定场景;

场景1(成功购物):基本流;

场景2(账户不存在):基本流 备选流1

场景3(账户密码错误):基本流 备选流2

场景4(账户余额不足):基本流 备选流3

第三步:对每一个场景生成测试用例;

第四步:对生成的所有测试用例重新复审,补充测试数据值;

黑盒测试简介和常用方法相关推荐

  1. NLP:自然语言处理技术之NLP技术实践—自然语言/人类语言“计算机化”的简介、常用方法分类(基于规则/基于统计,离散式/分布式)之详细攻略

    NLP:自然语言处理技术之NLP技术实践-自然语言/人类语言"计算机化"的简介.常用方法分类(基于规则/基于统计,离散式/分布式)之详细攻略 导读:在NLP的技术实践中,处理自然语 ...

  2. ML之FE:机器学习算法/数据挖掘中特征选取(变量筛选)的简介、常用方法(单变量分析并筛选—Filter/Wrapper/Embedded、多变量间相关性分析并筛选—PCC/MIC/IV)之详细攻略

    ML之FE:机器学习算法/数据挖掘中特征选取(变量筛选)的简介.常用方法(单变量分析并筛选-Filter/Wrapper/Embedded.多变量间相关性分析并筛选-PCC/MIC/IV)之详细攻略 ...

  3. ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介、常用方法、案例应用之详细攻略

    ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介.常用方法.案例应用之详细攻略 目录 ...

  4. DataScience:数据可视化和讲故事的简介、常用方法(Tableau/PowerBI/QlikView等工具可视化、matplotlib/seaborn/plotly等编程可视化)之详细攻略

    DataScience:数据可视化和讲故事的简介.常用方法(Tableau/PowerBI/QlikView等工具可视化.matplotlib/seaborn/plotly等编程可视化)之详细攻略 导 ...

  5. JavaScript数组对象简介及其常用方法介绍

    数组 就是存储多个数据的集合. 创建一个数组. //对象形式创建一个数组. var arr1 = new Array(); //字面量形式创建一个数组. var arr2 = []; arr1.pus ...

  6. 黑盒测试简介以及方法简介

    引言: 黑盒测试是从软件的外部对软件实施测试,也常形容为闭着眼睛测试.在接下来的学习中将介绍几种常用的黑盒测试方法,其中包括等价类划分.边界值分析.决策表测试等. 1. 等价类划分测试 等价类划分是一 ...

  7. Hamcrest简介以及常用方法

    Hamcrest的Jar下载地址 <span style="font-size:18px;"> </span> <span style="f ...

  8. 【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )

    文章目录 一.AsyncTask 参数简介 二.AsyncTask 方法简介 三.AsyncTask 基本用法 四.AsyncTask 构造函数源码解析 五.AsyncTask 构造函数相关源码注释 ...

  9. ML:机器学习算法中—因子模型(多变量)、时序模型/时间序列模型(主要以单变量)算法对比的简介、带有时序性的因子模型概述、案例应用之详细攻略

    ML:机器学习算法中-因子模型(多变量).时序模型/时间序列模型(主要以单变量)算法对比的简介.带有时序性的因子模型概述.案例应用之详细攻略 目录 因子模型和时序模型/时间序列模型算法的简介 1.因子 ...

最新文章

  1. Oracle RAC一节点宕机导致另一节点HANG的问题分析
  2. python2基础教程廖雪峰云-Python 基础教程
  3. 【SpringMVC 之应用篇】 1_SpringMVC入门 —— 第一个 Spring MVC 程序
  4. 7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)
  5. shiro---注解
  6. API的非向后兼容性无论如何通常代表着一种比较差的设计
  7. POJ 3268:Silver Cow Party 求单点的来回最短路径
  8. yii不能没有提示验证错误信息_安装Mac系统时提示”应用程序副本不能验证 它在下载过程...”的解决方法...
  9. 从业6年,给你5点建议
  10. 人工智能、机器学习和深度学习的区别与认识
  11. Exchange server 2010系列教程之四 如何卸载exchange server 2010
  12. idea将项目打包(jar包/war包)
  13. CentOS 6.5 Zabbix监.控系统功能及基本使用
  14. 西南林业大学计算机考研,西南林业大学考研难吗
  15. php商品详情页页面代码,商品详情页是怎么生成的?
  16. js设计模式 -- 单例模式
  17. 前端学习笔记之页面制作(一)——PS切图
  18. 以十年维度思考技术的发展
  19. Verilog之条件语句、循环语句、块语句与生成语句
  20. java url解码解不了_java – 为什么URL没有完全解码?

热门文章

  1. floyed 4.9
  2. scratch3.0-穿越城市的巴士
  3. 从零开始搭建Vue2.0项目(二)之集成axios
  4. ENDNOTE使用方法(转发)
  5. 注册服务号、订阅号流程
  6. 达芬奇机器人变身‘模仿达人’,通过看视频模仿手术缝合、穿针、打结等动作...
  7. SSH工具连接虚拟机
  8. spyglass使用教程
  9. Ubuntu 安装 libvirt
  10. Altium Designer 14.1.5 Build 30772