精华内容
下载资源
问答
  • 【测试】黑盒测试

    2021-03-18 09:43:41
    黑盒测试定义功能主要内容测试方法划分等价类边界值分析法错误推测法因果图法判定表组成法正交试验设计场景法流程测试计划测试设计测试开发测试执行测试评估优缺点 定义 黑盒测试,顾名思义及将程序看作一个密不透风...

    定义

    黑盒测试,顾名思义及将程序看作一个密不透风的黑盒子,不考虑程序结构和内容,只单纯从使用,输入输出来测试程序。

    功能

    黑盒测试方法着重测试软件的功能需求,是在程序接口上进行的测试,主要是为了发现以下错误。
    (1)是否有功能错误,是否有功能遗漏。
    (2)是否能够正确地接收输入数据并产生正确的输出结果。
    (3)是否有数据结构错误或外部信息访问错误。
    (4)是否有程序初始化和终止方面的错误。

    主要内容

    (1)接受性测试。
    黑盒测试是从软件的接口接受测试输出结果,具有接受性测试的特点。
    (2)α/β测试。
    测试是项目组内的成员对被测软件进行的测试,α/β测试是由项目组外的人员参加的测试。α/β测试也适合于黑盒测试。也就是说,当测试发现错误后在开发人员修改的同时,项目经理也会对产品计划做出相应的调整,产品特征不断地被修改。
    (3)菜单/帮助测试。
    在软件测试过程中,开发人员将修复测试人员发现的错误,而且对软件的有些功能进行修改,同时项目经理也将根据情况调整软件的特性,因而在软件开发和测试的过程中,所有的功能都可以进行调整。因此,在软件产品开发的最后阶段,文档里发现的问题往往最多。
    (4)发行测试。
    在正式发行前,产品要经过非常仔细的测试。除了专门的测试人员外,还需要几千个甚至几十万其他用户与合作者通过使用来对产品进行测试。然后将错误信息反馈到技术部门到了发行测试时,如果出现非改不可的错误,就必须推迟软件的发行,在推迟时间内需要重新对软件产品进行全面的测试,将耗费大量的时间、人力和物力。
    (5)回归测试。
    在此阶段,首先要检查以前找到的错误是否已经更正了。回归测试可使已更正的错误不再重现,并且不会产生新的错误。
    (6)RTM测试。
    RTM测试是指在产品发行阶段所进行的测试。在这一测试阶段,每一个错误都需要经过高端人员同意才能更正。因为这时候修改软件非常容易产生其他的错误,所以只有那种非修复不可的错误才将允许进行修改。如果在发行阶段软件还有许多严重错误的话,就不能按时发布。

    测试方法

    划分等价类

    等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。
    有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
    无效等价类:与有效等价类的定义恰巧相反。
    设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。
    划分等价类的方法:下面给出六条确定等价类的原则。
    ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
    ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
    ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
    ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
    ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
    ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

    边界值分析法

    边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。
    (1)边界值分析方法的考虑:
    长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。
    使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
    (2)基于边界值分析方法选择测试用例的原则:
    1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
    2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
    3)根据规格说明的每个输出条件,使用前面的原则1)。
    4)根据规格说明的每个输出条件,应用前面的原则2)。
    5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
    6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
    7)分析规格说明,找出其它可能的边界条件。

    错误推测法

    错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
    错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。 例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。

    因果图法

    前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。 考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例,这就需要利用因果图(逻辑模型)。
    因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。
    生成测试用例:
    (1) 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
    (2) 分析软件规格说明描述中的语义。找出原因与结果之间,原因与原因之间对应的关系. 根据这些关系,画出因果图。
    (3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现. 为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。
    (4) 把因果图转换为判定表。
    (5) 把判定表的每一列拿出来作为依据,设计测试用例。
    从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。
    前面因果图方法中已经用到了判定表。判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

    判定表组成法

    条件桩(Condition Stub):列出了问题的所有条件.通常认为列出的条件的次序无关紧要。
    动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束。
    条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值。
    动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
    规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。
    判定表的建立步骤:
    ①确定规则的个数。假如有n个条件.每个条件有两个取值(0,1),故有2n种规则。
    ②列出所有的条件桩和动作桩。
    ③填入条件项。
    ④填入动作项.等到初始判定表。
    ⑤简化.合并相似规则(相同动作)。
    B. Beizer 指出了适合使用判定表设计测试用例的条件:
    ①规格说明以判定表形式给出,或很容易转换成判定表。
    ②条件的排列顺序不会也不影响执行哪些操作。
    ③规则的排列顺序不会也不影响执行哪些操作。
    ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
    ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

    正交试验设计

    就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率。

    场景法

    软件几乎都是用事件触发来控制流程的,事件触发的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
    基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。
    在这里插入图片描述

    流程

    测试计划

    首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。

    测试设计

    将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结果的有效性)。

    测试开发

    建立可重复使用的自动测试过程。

    测试执行

    执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。

    测试评估

    结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。

    优缺点

    (1)黑盒测试的优点:适用于功能测试、可用性测试及可接受性测试;对照说明书测试程序功能;可测试长的、复杂的程序的工作逻辑,易被理解。
    (2)黑盒测试的缺点:不可能进行完全的、毫无遗漏的输入测试,有一些软件Bug或人为设置的故障通过黑盒测试是无法检测出来的。正是因为黑盒测试的测试数据来自规格说明书,这一方法的主要缺点是它依赖于规格说明书的正确性。实际上,人们并不能保证规格说明书完全正确。如在规格说明书中规定了多余的功能,或是漏掉了某些功能,这对于黑盒测试来说是完全无能为力的。

    文献来源:https://baike.baidu.com/item/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/934030?fr=aladdin

    展开全文
  • 黑盒测试流程 黑盒测试方法 什么是黑盒测试 黑盒测试也称功能测试在测试中把程序看作一个不能打开黑盒子在完全不考虑程序内部结构和内部特性情况下在程序接口进行测试它只检查程序功能是否按照需求规格说明书...
  • 是在不了解程序内部结构和内部特性的情况下进行的测试方法,黑盒测试只验证程序是否能按照需求规格说明书的规定正常使用,是否能适当的接收数据并给出适当的输出结果,如错误提示,或正确的界面等。 常用黑盒测试...

    什么是黑盒测试

    黑盒测试又称功能测试,是在不了解程序内部结构和内部特性的情况下进行的测试方法,黑盒测试只验证程序是否能按照需求规格说明书的规定正常使用,是否能适当的接收数据并给出适当的输出结果,如错误提示,或正确的界面等。

    常用黑盒测试方法有等价类划分法、边界值分析法、正交实验法、流程分析法(场景法)、因图法、判定表法、输入域覆盖法、输出域覆盖法、猜错法(异常分析法)。

    一、 等价类划分法

    1.1简介

    等价类划分法是指将程序的输入值的集合划分为若干等价类,等价类又分为有效等价类和无效等价类,从每一类中选取少量数据进行测试。

    1.2构造测试用例方法

    • ① 根据需求文档明确需求

    • ② 分析需求中的每一个功能数

    • ③ 确定每一个功能有多少个输入

    • ④ 确定每个输入有多少规则

    • ⑤ 针对输入规则划分输入的等价类

    • ⑥ 根据等价类设计测试用例

    1.3举例

    1.在输入条件中确立一个范围时,可分为一个有效等价类和两个无效等价类。如成绩的输入,要求分数在[0,100]之间,划分等价类如下:

    有效等价类:

    • 分数在[0,100]之间

    无效等价类:

    • 分数小于0
    • 分数大于100

    2.确定输入取值为n个 值中的一个的时候,可划分为n个有效等价类和1个无效等价类,如学历的输入,要求只能输入专科、本科、硕士、博士四种,划分等价类如下:

    有效等价类:

    • 输入专科、本科、硕士、博士其中的一个

    无效等价类:

    • 输入除四种学历之外的数据

    3.在输入条件是真假值时,可确立为一个有效等价类(真)和一个无效等价类(假),如一个判断题的对错,划分等价类如下:

    有效等价类:对

    无效等价类:错

    4.在输入数据确定了只有一种符合条件的情况下,可确立为一个无效等价类和多个有效等价类,如填空题1+1=?,划分等价类如下:

    有效等价类:2

    无效等价类:除2之外的数字

    • 空格

    • 汉字

    • 字母

    • 特殊字符

    5.在输入数据确定了个数的时候,可分为一个有效等价类和两个无效等价类,如一天必须上2-10节课,等价类划分如下;

    有效等价类:

    • 一天上2-10节课

    无效等价类:

    • 一天上课的节数小于2
    • 一天上课的节数大于10

    6.在输入数据确定了格式的时候,可分为一个有效等价类和多个无效等价类,如设置密码时要求为字符、数字、特殊字符的组合,可划分等价类如下:

    有效等价类:

    • 字符、数字、特殊字符的组合

    无效等价类:

    • 纯字符
    • 纯数字
    • 三者两两组合
    • ……

    7.在输入值是一个路径的时候,可分为一个有效等价类和多个无效等价类,如输入图片的路径,可划分等价类如下:

    有效等价类:

    • 存在的图片路径

    无效等价类: 除图片之外的其他文件的路径

    • 超出深度要求的路径
    • 格式错误的路径(区分/和\,区分大小写的时候)
    • 不存在的图片路径
    • 不存在的其他文件路径
    • 路径中存在空格或其他特殊字符
    • ……

    二、 边界值分析法

    2.1简介

    边界值分析法是针对输入数据的边界值的测试,一般情况下与等价类划分法结合使用,根据各个等价类的边界值设计测试用例。

    2.2构造测试用例方法

    根据每个输入的等价类设计边界值测试用例,包括等价类的上点和离点(上点:边界值上的点;离点距离边界最近的点)

    2.3举例

    1.成绩的输入,分为三个等价类:

    有效等价类:输入分数在[0,100]

    无效等价类:分数小于0

    分数大于100

    可根据这三个等价类的边界值设计测试用例如下:

    等价类 边界值测试用例 预期结果
    [0,100] 0 正确
    [0,100] 100 正确
    小于0 -1 错误
    大于100 01 错误

    2.除去对等价类的边界值进行分析,还需对输入数据的类型以及各种场景的边界值进行测试,如:

    • a:整型数据的边界值:-32767和32768
    • b:布尔值的边界值:真和假
    • c:循环的边界值:第一轮循环和最后一轮循环
    • d:报表的第一行和最后一行
    • e:浏览器的左上角和右下角
    • f:数组里的第一个元素和最后一个元素

    三、 判定表法

    3.1简介

    是根据判定条件列出所有可能的组合,当有n个条件时,就需要列出相应的2n2^n个测试用例。

    3.2构造测试用例方法

    • ① 在需求中找到输入参数要满足的条件
    • ② 在需求中找到满足条件后得到的结果
    • ③ 将所有的n个输入条件进行全排列组合,形成2n2^n组测试用例,
    • ④ 查看是否可以合并测试用例
    • ⑤ 设计测试用例时可以忽略没有数据可取的不存在的结果

    3.3举例

    如下是对闰年判定的测试用例,其中闰年的判定条件为能被4整除但不能被100整除或者能被400整除。

    条件 能被4整除 Y Y Y Y N N N N
    不能被100整除 Y Y N N Y Y N N
    能被400整除 Y N Y N Y N Y N
    结果 是闰年
    不是闰年
    不存在

    四、 正交实验法

    4.1简介

    正交实验法是利用正交表来对程序进行测试,用较少的测试用例进行较全面的测试。根据正交表的正交性,从全面试验中挑选出适量的、有代表性的点进行试验。
      正交表是一种特制的表格,一般用Ln(mk)来表示,其中L表示正交表,n表示测试用例数,k表示最多可安排影响指标因素的个数或正交表的列数,m表示每个因素的水平数即状态,n=k*(m-1)-1,即最少的测试用例数。

    4.2构造测试用例方法

    • ① 从需求中找出所有的因素(输入参数)
    • ② 从需求中找出所有的水平(因素状态)并编号,画出因素状态表
    • ③ 通过因素状态表绘制出正交表
    • ④ 根据正交表,设计测试用例,一行是一条用例

    4.3举例

    1.因素数和水平数刚好符合正交表

    如测试一个登陆,需要输入用户名、密码和验证码,则用户名、密码和验证码是因素,每个因素都有填和不填两种水平(状态),则n= k*(m-1)-1=3*(2-1)+1=4组测试用例,根据正交实验法设计正交表如下

    状态\因素 用户名 密码 验证码
    1 不填
    2 不填
    3 不填
    4 不填 不填 不填

    L4(23)正交表
    在这里插入图片描述

    2.因素的水平数不相符

    如一个功能需要一个用户提交性别、学历、政.治面貌3个数据,每个数据要求如下:
    性别:取值为男、女2种
    学历:取值为大专、本科、硕士、博士4种
    政治面貌:取值为群众、共青团员、中共党员3种

    因素状态表:

    状态\因素 性别 学历 政.治面貌
    1 大专 群众
    2 本科 共青团员
    3 硕士 中共党员
    4 博士

    正交表如下:

    测试用例 性别 学历 政.治面貌
    1 大专 群众
    2 本科 共青团员
    3 硕士 中共党员
    4 博士 共青团员
    5 硕士 群众
    6 博士 中共党员
    7 本科 中共党员
    8 大专 共青团员
    9 本科 群众
    10 大专 中共党员
    11 博士 群众
    12 硕士 共青团员

    五、 流程图分析法

    5.1简介

    当一个事件触发时,就形成了一个场景,而同一事件的不同触发顺序和处理结果就形成了事件流。在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确的流程,即基本流,而凡是出现故障或缺陷的过程,就称为备选流,备选流是可以从基本流来的,或是由备选流引出的。

    5.2构造测试用例方法

    • ① 根据业务流程绘制出流程图,流程图包含基本流和备选流
    • ② 根据基本流和备选流生成不同的场景
    • ③ 对每一个场景生成相应的测试用例
    • ④ 对生成的测试用例重新评审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

    5.3举例

    1.例如一个需要输入用户名和密码的登陆并付款购物功能,其中如果密码错误3次会锁定用户的事件流如下:
    在这里插入图片描述

    通过从确定执行用例场景所需的数据元素入手构建矩阵。对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。

    测试用例ID 场景 用户名 密码 有钱购物 预期结果
    1 场景1:购物成功 V V V 成功购物
    2 场景2:用户名错误 I n/a n/a 提示用户名错误
    3 场景3:密码错误 V I n/a 提示密码错误
    4 场景4:密码错3次锁定 V I n/a 提示密码错误3次锁定用户
    5 场景5:没钱付款 V V I 提示余额不足

    六、 因果图法

    6.1简介

    因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,适用于检查程序输入的各种组合条件。

    因果图法比较合适输入条件比较多的情况,测试所有的输入条件的排列组合,所谓的原因就是输入,所谓的结果就是输出。

    因果图的“因”—输入条件

    因果图的“果”—输出结果

    因果图法要注意考虑:

    • 1.所有输入/输出条件的相互制约关系以及组合关系

    • 2.输入条件的依赖关系,也就是什么样的输入组合会产生怎么样的输出结果,即“因果关系”

    因果图中的基本符号:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.2构造测试用例方法

    • ① 分析需求中描述的原因和结果,给每个原因和结果赋予一个编号。
    • ② 根据这些关系画出因果图
    • ③ 因果图上用一些记号表明约束条件或限制条件
    • ④ 把因果图转换成判定表
    • ⑤ 将判定表的每一列作为依据设计测试用例

    6.3举例

    售货机:简化情况,假设投币只有1元和5毛两种;零钱默认都是5毛;有橙汁和可乐两种饮料,饮料价格均为5毛;机器没零钱的时候零钱找完的灯会亮

    梳理输入与输入,输入与输出之间的约束关系
    输入:
    (1)售货机有零钱
    (2)投币1元
    (3)投币5毛
    (4)按橙汁按钮
    (5)按可乐按钮
    输出:
    (21)零钱找完的灯亮
    (22)退回1元
    (23)退回5毛
    (24)出橙汁
    (25)出可乐
    输入与输入的约束关系:
    (2)、(3)是异的关系,至多出现一个,可能一个都不发生
    (4)、(5)是异的关系,至多出现一个,可能一个都不发生
    输入与输出的约束关系:
    (1)、(21)是非的关系

    因果图如下:


    根据因果图,判定表如下:在这里插入图片描述

    七、 输入域覆盖法

    7.1简介

    输入域覆盖是指根据SRS(需求分析文档)结合等价类划分法和边界值分析法的一种测试方法,主要是对输入的特殊值和类型边界补充测试用例。

    八、 输出域覆盖法

    8.1简介

    输出域覆盖是指在了解程序功能的所有输出后,查看测试用例中所有的输入产生的输出结果是否能够涵盖所有输出结果,如果不完善,则根据输出结果推导出相应的输入数据,将其补充到测试用例中。

    九、 猜错法

    9.1简介

    猜错法是基于经验和直觉,以及参考以往测试结果中出现较频繁及较隐蔽的错误,从而推测出程序所有可能出现的错误或异常,选择这些情况下的用例进行测试。

    展开全文
  • 这一篇讲接口测试基础,如果你还在做手工测试,你可以从这里开始入门,做接口测试是最...这个是不是和黑盒测试的流程一模一样呢?确实接口测试就是这样,也是最简单一种测试。唯一问题是没有图形界面,不能通...

    61d255f6714bdab7ef835abed6949e6a.png

    这一篇讲接口测试的基础,如果你还在做手工测试,你可以从这里开始入门,做接口测试是最容易的一种自动化测试。

    一、接口测试是什么

    首先要理解接口测试就是测接口,如图所示:

    fd38a08b797db03f9f03be8b5066205d.png

    让我们以数据驱动的视角来看接口测试,接口测试就是按约定的格式(接口)给待测软件传入某种数据,之后检查接口给的返回值是否正确。

    这个是不是和黑盒测试的流程一模一样呢?

    确实接口测试就是这样,也是最简单的一种测试。唯一的问题是没有图形界面,不能通过点点点去测,而要使用一些其他方法。

    二、手工做接口测试需要的工具

    因为没有图形界面,我们需要有某种方式把准备好的数据传给要测的接口。这一步通常需要借助工具。举个例子,如果目标接口是一个http接口(可以参考w3cschool的web service教程来了解什么是http接口),那么在linux使用curl命令就可以去调用这个接口,把数据传给它了。

    如果在windows上做接口测试,可以使用postman这个工具。

    另外,抓包工具也是接口测试必备的,linux上可以tcpdump,windows可以fiddler或者charles,抓底层的包用wireshark。下面介绍下大体上怎么用这些工具,至于具体教程,还请善用搜索引擎自己找具体教程。

    注意本文主要以http接口为例子来解释接口测试的基础,如果你要测的接口不是http接口,记住原理也是类似的。掌握原理之后,无非是换几个工具就能实现。

    三、手工接口测试的流程首先我们看一下普通的黑盒手工web测试的流程:

    1699b725e44916caaf6d0971e2da8ac7.png

    这中间通过抓包,可以抓到我们要的数据,也就是浏览器给服务器传送的输入数据,和服务器向浏览器传送的返回值。

    比如,用户登录时,输入数据是用户名密码,返回值是登录成功后生成的一个session id和cookie,以及“登录成功”这句提示信息。

    然后抓下来的数据包怎样使用呢?

    f2d3f99c089b9d8979edfc00495e5fd8.png

    这个就是一个典型的手工接口测试的流程:

    通过抓包或其他方法(比如看文档)准备好输入数据包,然后用发包的工具把数据发给服务端的接口,之后校验其返回值。

    如果你不知道某个接口需要什么数据,可以看接口的设计文档或者联系相关的开发人员,一般会提供给你一个调用的例子,相信大家能在网上搜到相关的例子的,在这个基础篇里,就不展开讲了。

    四、初步的自动化接口测试

    以上,大家已经了解了手工做接口测试的流程。

    那么下一步就是把一些接口测试编写成脚本,放在本地(自己电脑上),人工触发去批量得执行这些测试,并自动校验返回结果。

    这里推荐一下使用的工具。

    如果你是零基础的,推荐你用jmeter或soapUI,两者都不需要你具备任何代码功底就能用。

    Jmeter:当前最流行的性能测试工具。没错,他也可以做接口测试。并且脚本可以在性能测试里重用。特点是开源,免费,有图形界面,可以录制。学习方法:主要靠看官网用户手册,内容非常全。有空我再写一盘jmeter学习指引。

    SoapUI:一个很方便的接口测试工具,商业版有强大的功能。特点是图形界面强大,易用。其脚本也可以使用一些方式在性能测试中重用。学习方法主要看官网教程。

    假如你有编程基础,可以考虑使用python+requests+pytest/robotframework来做接口测试。如果用了python+requests,那么性能测试方面可以用python+locust。也可以不用locust,只要你掌握了前面提过的数据驱动的思想,配合一些自动化框架开发基础,也一样可以把接口测试做到能在其他性能测试工具里重用,当然这个就复杂了,以后再说吧。用java的话,也有对应的工具链,还是那句话,请善用搜索引擎。

    最后,即使你熟练地使用jmeter或soapUI做了接口测试,这仍然只是初步的。真正的自动化测试,肯定得和持续集成相结合,更大地解放人力。持续集成相关的基础文章也会稍后推出,希望能帮到大家。

    首发于公众号:测试进阶(test_up)

    展开全文
  • 是在不了解程序内部结构和内部特性的情况下进行的测试方法,黑盒测试只验证程序是否能按照需求规格说明书的规定正常使用,是否能适当的接收数据并给出适当的输出结果,如错误提示,或正确的界面等。  常用黑盒测试...

     什么是黑盒测试

      黑盒测试又称功能测试是在不了解程序内部结构和内部特性的情况下进行的测试方法黑盒测试只验证程序是否能按照需求规格说明书的规定正常使用,是否能适当的接收数据并给出适当的输出结果,如错误提示,或正确的界面等。

      常用黑盒测试方法有等价类划分法、边界值分析法、正交实验法、流程分析法(场景法)、因图法、判定表法、输入域覆盖法、输出域覆盖法、猜错法(异常分析法)。

     

    一、 等价类划分法

    1.1简介

      等价类划分法是指将程序的输入值的集合划分为若干等价类等价类又分为有效等价类和无效等价类从每一类中选取少量数据进行测试

     

    1.2构造测试用例方法

    ① 根据需求文档明确需求

    ② 分析需求中的每一个功能数

    ③ 确定每一个功能有多少个输入

    ④ 确定每个输入有多少规则

    ⑤ 针对输入规则划分输入的等价类

    ⑥ 根据等价类设计测试用例

     

    1.3举例

    1.在输入条件中确立一个范围时可分为一个有效等价类和两个无效等价类如成绩的输入要求分数在[0,100]之间划分等价类如下

    有效等价类分数在[0,100]之间

    无效等价类分数小于0

    分数大于100

    2.确定输入取值为n 值中的一个的时候,可划分为n个有效等价类和1个无效等价类,学历的输入,要求只能输入专科、本科、硕士、博士四种,划分等价类如下:

    有效等价类输入专科、本科、硕士、博士其中的一个

    无效等价类输入除四种学历之外的数据

    3.在输入条件是真假值时可确立为一个有效等价类(真)和一个无效等价类(假),如一个判断题的对错,划分等价类如下:

    有效等价类

    无效等价类

    4.在输入数据确定了只有一种符合条件的情况下可确立为一个无效等价类和多个有效等价类如填空题1+1=?,划分等价类如下

    有效等价类:2

    无效等价类2之外的数字

    空格

    汉字

    字母

    特殊字符

    5.在输入数据确定了个数的时候,可分为一个有效等价类和两个无效等价类,如一天必须上2-10节课等价类划分如下;

    有效等价类:一天上2-10节课

    无效等价类一天上课的节数小于2

    一天上课的节数大于10

    6.在输入数据确定了格式的时候可分为一个有效等价类和多个无效等价类如设置密码时要求为字符数字特殊字符的组合可划分等价类如下:

    有效等价类字符数字特殊字符的组合

    无效等价类:纯字符

    纯数字

    三者两两组合

    ……

    7.在输入值是一个路径的时候可分为一个有效等价类和多个无效等价类如输入图片的路径,可划分等价类如下:

    有效等价类:存在的图片路径

    无效等价类除图片之外的其他文件的路径

    超出深度要求的路径

    格式错误的路径(区分/\,区分大小写的时候)

    不存在的图片路径

    不存在的其他文件路径

    路径中存在空格或其他特殊字符

    ……

     

     

    二、 边界值分析法

    2.1简介

      边界值分析法是针对输入数据的边界值的测试一般情况下与等价类划分法结合使用根据各个等价类的边界值设计测试用例

     

    2.2构造测试用例方法

      ① 根据每个输入的等价类设计边界值测试用例,包括等价类的上点和离点(上点:边界值上的点;离点距离边界最近的点)

     

    2.3举例

    1.成绩的输入分为三个等价类

    有效等价类输入分数在[0,100]

    无效等价类分数小于0

    分数大于100

    可根据这三个等价类的边界值设计测试用例如下

    等价类

    边界值测试用例

    预期结果

    [0,100]

    0

    正确

    [0,100]

    100

    正确

    小于0

    -1

    错误

    大于100

    101

    错误

    2.除去对等价类的边界值进行分析,还需对输入数据的类型以及各种场景的边界值进行测试,如:

    a:整型数据的边界值:-3276732768

    b:布尔值的边界值:真和假

    c:循环的边界值第一轮循环和最后一轮循环

    d:报表的第一行和最后一行

    e:浏览器的左上角和右下角

    f:数组里的第一个元素和最后一个元素

     

    三、 判定表法

    3.1简介

      是根据判定条件列出所有可能的组合当有n个条件时就需要列出相应的2n个测试用例

     

    3.2构造测试用例方法

    ① 在需求中找到输入参数要满足的条件

    ② 在需求中找到满足条件后得到的结果

    ③ 将所有的n个输入条件进行全排列组合形成2n组测试用例

    ④ 查看是否可以合并测试用例

    ⑤ 设计测试用例时可以忽略没有数据可取的不存在的结果

     

    3.3举例

      如下是对闰年判定的测试用例其中闰年的判定条件为能被4整除但不能被100整除或者能被400整除。

     

    条件

    能被4整除

    Y

    Y

    Y

    Y

    N

    N

    N

    N

    不能被100整除

    Y

    Y

    N

    N

    Y

    Y

    N

    N

    能被400整除

    Y

    N

    Y

    N

    Y

    N

    Y

    N

     

    结果

    是闰年

     

     

     

     

     

    不是闰年

     

     

     

     

     

     

     

    不存在

     

     

     

     

     

     

    四、 正交实验法

    4.1简介

      正交实验法是利用正交表来对程序进行测试用较少的测试用例进行较全面的测试。根据正交表的正交性,从全面试验中挑选出适量的、有代表性的点进行试验。

      正交表是一种特制的表格一般用Lnmk)来表示,其中L表示正交表,n表示测试用例数,k表示最多可安排影响指标因素的个数或正交表的列数,m表示每个因素的水平数即状态,n=k*m-1-1,即最少的测试用例数

     

    4.2构造测试用例方法

    ① 从需求中找出所有的因素(输入参数)

    ② 从需求中找出所有的水平(因素状态)并编号,画出因素状态表

    ③ 通过因素状态表绘制出正交表

    ④ 根据正交表设计测试用例一行是一条用例

     

    4.3举例

    1.因素数和水平数刚好符合正交表

      如测试一个登陆需要输入用户名密码和验证码,则用户名、密码和验证码是因素,每个因素都有填和不填两种水平(状态),则n= k*m-1-1=3*2-1+1=4组测试用例根据正交实验法设计正交表如下

    状态\因素

    用户名

    密码

    验证码

    1

    不填

    2

    不填

    3

    不填

    4

    不填

    不填

    不填

     

    2.因素的水平数不相符

    如一个功能需要一个用户提交性别、学历、政治面貌3个数据,每个数据要求如下:

     

    性别取值为男、女2

     

    学历取值为大专本科硕士博士4

     

    政治面貌取值为群众共青团员中共党员3

     

     

     

    因素状态表

    状态\因素

    性别

    学历

    政治面貌

    1

    大专

    群众

    2

    本科

    共青团员

    3

     

    硕士

    中共党员

    4

     

    博士

     

     

    正交表如下

    测试用例

    性别

    学历

    政治面貌

    1

    大专

    群众

    2

    本科

    共青团员

    3

    硕士

    中共党员

    4

    博士

    共青团员

    5

    硕士

    群众

    6

    博士

    中共党员

    7

    本科

    中共党员

    8

    大专

    共青团员

    9

    本科

    群众

    10

    大专

    中共党员

    11

    博士

    群众

    12

    硕士

    共青团员

     

    五、 流程图分析法

    5.1简介

      当一个事件触发时就形成了一个场景而同一事件的不同触发顺序和处理结果就形成了事件流。在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确的流程,即基本流,而凡是出现故障或缺陷的过程,就称为备选流,备选流是可以从基本流来的,或是由备选流引出的。

     

    5.2构造测试用例方法

    ① 根据业务流程绘制出流程图,流程图包含基本流和备选流

    ② 根据基本流和备选流生成不同的场景

    ③ 对每一个场景生成相应的测试用例

    ④ 对生成的测试用例重新评审去掉多余的测试用例测试用例确定后对每一个测试用例确定测试数据值

     

    5.3举例

      1.例如一个需要输入用户名和密码的登陆并付款购物功能其中如果密码错误3次会锁定用户的事件流如下

     

     

     

     

      通过从确定执行用例场景所需的数据元素入手构建矩阵。对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。

    测试用例ID

    场景

    用户名

    密码

    有钱购物

    预期结果

    1

    场景1:购物成功

    V

    V

    V

    成功购物

    2

    场景2:用户名错误

    I

    n/a

    n/a

    提示用户名错误

    3

    场景3:密码错误

    V

    I

    n/a

    提示密码错误

    4

    场景4:密码错3次锁定

    V

    I

    n/a

    提示密码错误3次锁定用户

    5

    场景5:没钱付款

    V

    V

    I

    提示余额不足

     

     

    六、 因果图法

    6.1简介

    因果图法是一种利用图解法分析输入的各种组合情况从而设计测试用例的方法适用于检查程序输入的各种组合条件

    因果图法比较合适输入条件比较多的情况,测试所有的输入条件的排列组合,所谓的原因就是输入,所谓的结果就是输出。

    因果图的“因”—输入条件

    因果图的“果”—输出结果

    因果图法要注意考虑:

    1.所有输入/输出条件的相互制约关系以及组合关系

    2.输入条件的依赖关系,也就是什么样的输入组合会产生怎么样的输出结果,即“因果关系”

    因果图中的基本符号:

     

     

     

    6.2构造测试用例方法

    ① 分析需求中描述的原因和结果,给每个原因和结果赋予一个编号。

    ② 根据这些关系画出因果图

    ③ 因果图上用一些记号表明约束条件或限制条件

    ④ 把因果图转换成判定表

    ⑤ 将判定表的每一列作为依据设计测试用例

     

    6.3举例

    1.一个交通卡充值系统的需求:

    系统只接收100元,只能选择充值100

    若输入100元并选择充值100元,提示充值成功并退卡

    若输入纸币后一定时间不选择充值按钮退回输入的纸币并提示错误

    不输入纸币直接选择充值按钮,提示错误

     

    输入条件

    ① 输入100元纸币

    ② 点击充值100

     

    输出:

    ① 提示充值成功

    ② 完成充值退卡

    ③ 提示错误

     

     

    因果图如下

      输入                                                                                             输出:

     

    根据因果图判定表如下

     

     

    1

    2

    3

    输入

    输入100元纸币

    1

    1

     

    选择充值按钮

     

    1

    1

    输出

    提示充值成功

     

    1

     

    充值成功并退卡

     

    1

     

    提示错误

    1

     

    1

     

     

    七、 输入域覆盖

    7.1简介

      输入域覆盖是指根据SRS(需求分析文档)结合等价类划分法和边界值分析法的一种测试方法,主要是对输入的特殊值和类型边界补充测试用例。

     

    八、 输出域覆盖法

    8.1简介

      输出域覆盖是指在了解程序功能的所有输出后查看测试用例中所有的输入产生的输出结果是否能够涵盖所有输出结果如果不完善,则根据输出结果推导出相应的输入数据,将其补充到测试用例中。

     

    九、 猜错法

    9.1简介

      猜错法是基于经验和直觉,以及参考以往测试结果中出现较频繁及较隐蔽的错误,从而推测出程序所有可能出现的错误或异常,选择这些情况下的用例进行测试。

     

    转载于:https://www.cnblogs.com/l199616j/p/11403666.html

    展开全文
  • 黑盒: 等价类划分、边界值分析、...–接口上,能否正确接收输入数据,并产生正确的输出信息; –性能错误。 2.等价类划分法 等价类划分法: 依据需求对输入的范围进行细分,然后再分出的每一个区域内选取一个代表性的.
  • 场景设计法 现在的软件几乎都是用事件触发来控制流程的 • 用户一系列的操作事件触发...• 基本流(直黑线表示):是经过用例的最简单 的路径,软件功能按照正确的事件流实现的一 条正确流程 • 备选流(彩线表示):出
  • 黑盒测试:不需要了解程序源代码,通过使用整个软件功能来验证程序是否满足需求测试方法 白盒测试:是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试测试方法 灰盒测试:一种基于程序运行时外部...
  • 黑盒测试:不需要了解程序源代码,通过使用整个软件功能来验证程序是否满足需求测试方法 白盒测试:是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试测试方法 灰盒测试:一种基于程序运行时...
  •  黑盒测试的测试内容:功能是否存在遗漏、数据或参数能否正确输入输出、数据结构错误或外部信息访问错误、性能要求、是否有初始化或终止性错误  白盒测试(逻辑测试、结构测试):内部实现逻辑 . 灰盒测试: 2....
  • 黑盒测试 不考虑内部结构,主要测试功能十分满足需求 比如软件,检查单个功能是否正常流转能够使用 白盒测试 针对代码级别,测试开发工程师一般具备白盒测试能力,针对程序内部逻辑结构进行代码级别测试...
  •  使用黑盒测试方法的功能测试流程简述如下: 1.确定参照体系,参照体系是软件测试的判断依据。对于不同的实现,需要参照体系明确正确的实现方式。功能测试中,参照体系的角色通常由需求规格说明书来担当。在更为...
  • 这个是不是和黑盒测试的流程一模一样呢? 确实接口测试就是这样,也是最简单一种测试。唯一问题是没有图形界面,不能通过点点点去测,而要使用一些其他方法。 二、手工做接口测试需要工具 因为没有图形界面,...
  • 白盒测试流程: 源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖情况分析 黑盒测试: 是根据功能需求来测试程序是否按照预期工作,是要从用户角度分析.尽量
  • 黑盒测试:由开发小组人员互相交换源代码来帮助测试各个模块。其测试内容是:检查各个模块连接是否紧密,各个超级连接是否正确,在安装有Interdev等开发软件计算机上面是否有JS报错,表单区域中文本框和...
  • 集成测试:是模块间的测试测试接口(软件各模块之间接口和软件与硬件之间接口)是否正确,是灰盒测试(白盒和黑盒结合) 系统测试:系统测试包括:冒烟测试 系统测试 回归测试 (1)冒烟测试:主干流程测试,...
  • 测试用例设计方法

    2021-02-06 17:29:54
    答:等价类划分法是一种典型、重要的黑盒测试方法,等价类是指某个输入域子集合。 在该子集合中,所有输入数据对于揭露软件中错误都是等效,一般分为有效等价类和无效等价类。 2、什么是边界值分析法? 答...
  • 测试用例分类

    2020-08-05 09:09:38
    黑盒测试(页面跳转逻辑) ③灰盒测试(接口) 2,从是否执行程序角度 ①.静态测试(需求评审、用例评审、代码走查) 静态方法是指不运行被测程序本身,仅通过分析或检查源程序语法、结构、过程、接口等来...
  • 这一篇讲接口测试基础,如果你还在做手工测试,你可以从这里开始入门,做接口测试是最...这个是不是和黑盒测试的流程一模一样呢?确实接口测试就是这样,也是最简单一种测试。唯一问题是没有图形界面,不能通...
  • 黑盒测试:封装代码,只显示输入和输出。通过比较实际输出和预想输出从而得到软件或者程序是否正确 白盒测试:不封装代码,看过程和流程,思考代码是否高效,一般写代码。Junit测试属于白盒测试一种。 二、...
  • 软件测试面试题

    2020-10-22 16:21:18
    黑盒测试流程: 功能需求-->产生测试用例-->被测程序-->输出实际结果-->与预期结果比较-->分析功能是否实现. 白盒测试可以叫做结构测试或者逻辑驱动测试,主要检查程序内部结构,按照程序内部逻辑...
  • 测试分类

    2017-08-07 15:54:02
    白盒测试: ...白盒测试流程: 源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖情况分析 黑盒测试: 是根据功能需求来测试程序是否按照预期工作,是要从用户
  • 灰盒测试介于白盒测试与黑盒测试之间,它关注输出、输入的正确性,同时也关注程序内部情况。灰盒测试以程序主要功能和主要性能为测试依据,测试方法主要根据程序流程图、需求说明书以及测试者实践经验来设计。...
  • 软件测试规范

    2018-04-23 09:16:12
    黑盒测试方法 ............................................................................................................................................ 7 1.等价类划分 .................................
  • 富途网络科技测试笔试题

    千次阅读 2019-11-20 11:51:05
    75分钟,不许切屏。烂网络,断了几次重连卡了自动交卷了。。。 这个岗位要求还是挺高的啊,还考单元测试,单元测试这种一般还是...1、黑盒测试流程正确的顺序是(A)?(5.0分) A 、需求评审->用例设计->用...
  • Junit单元测试

    2019-07-19 15:30:18
    Junit单元测试 单元测试是编写测试代码,...黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望值。 白盒测试:需要写代码。关注程序具体执行流程。 Junit使用:白盒测试 步骤: 定义一个测试类(...
  • 黑盒测试(页面跳转逻辑) ③灰盒测试(接口) 2,从是否执行程序角度 ①.静态测试(需求评审、用例评审、代码走查) 静态方法是指不运行被测程序本身,仅通过分析或检查源程序语法、结构、过程、接口等来检查...
  • DATE: 2018.12.12 1、什么是测试? 测试是描述一种用来促进鉴定软件的正确性...– 黑盒测试 – 灰盒测试 执行角度 – 静态测试 – 动态测试 开发流程的角度 – 单元测试 – 集成测试 – 确认测试 – 系统测试 – ...
  • 系统测试 (3)

    2020-10-21 12:08:46
    多做功能、少做功能、或者说功能没有正确的实现,都是要当做bug处理 2、软件生命周期? 2.1 需求分析(需求分析人员)、设计(开发)、编码(开发)、测试、运维 2.2软件从定义到实现交付的一系列过程 QA 质量保证...

空空如也

空空如也

1 2 3 4
收藏数 65
精华内容 26
关键字:

黑盒测试流程正确的是