1.概述黑盒测试也称功能测试或数据驱动测试它是在已知产品所应具有的功能通过测试来检验每个功能都是否能够正常使用。在测试时把程序看作一个不能打开的黑盒子在完全不考虑程序内部结构和内部特性的情况下测试人员进行直接测试检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当的接收输入数据而输出正确的结果等检查相应的文档是否采用了正确的模板、是否满足规范需求。2. “黑盒”的两种基本方法黑盒测试有两种基本方法即“通过测试”和“失败测试”。在进行“通过测试”时实际上是确认软件能做什么而不会考验其能力如何。软件测试 员只运用最简单、直观的测试案例。在设计和执行测试案例时总是先进行通过测试。在进行破坏性试验之前看一看软件基本功能是否能够实现。在确信了软件正确运行之后就可以采取各种手段通过搞垮软件来找出缺陷。纯粹为了破坏软件而设计和执行的测试案例被称为失败测试或迫使出错测试。3.黑盒测试的优、缺点1优点a.比较简单不需要了解程序内部的代码以及实现。b.与软件内部实现无关。c.从用户角度出发很容易的知道用户会用到哪些功能会遇到哪些问题。d.在做软件自动化测试时较为方便。e.基于软件开发文档所以也能知道软件实现了文档中的哪些功能。(2)缺点a.不可能覆盖所有代码覆盖率较低大概只能达到总代码量的30%。b.自动化测试 的复用性较低。4.黑盒测试的测试用例设计方法1等价类划分法2边界值分析法3错误推测法4因果图法5判定表6功能图法4.1等价类划分法1概念等价类划分法就是解决如何选择适当的数据子集来代表整个数据集的问题通过降低测试的数目去实现“合理的”覆盖覆盖了更多的可能数据以发现更多的软件缺陷。等价类是指某个输入域的一个特定的子集合在该子集合各个输入数据对于揭露程序中的错误都是等效的。2等价类划分的过程a.分类即将输入域按照具有相同特性并用实例来表征这个特性。b.抽象即在各个子类中去抽象出相同特性并用实例来表征进行分类。3等价类划分的优缺点a.优点基于相对较少的测试用例就能够进行完整覆盖很多程度上减少了重复性。b.缺点缺乏特殊用例的考虑同时需要深入的系统知识才能选择有效的数据。4有效等价类和无效等价类1有效等价类是指输入完全满足程序输入的规格说明、有意义的输入数据所构成的集合利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。2无效等价类和有效等价类相反即不满足程序输入要求或者无效的输入数据构成的集合。使用无效等价类可以测试程序/系统的容错性——对异常输入情况的处理。5不同情形的处理输入条件有效等价类无效等价类规定了取值范围或个数的条条件(输入条件满足小于100大于10的整数x)1个10x1002个x10和x100规定了输入值的集合或者规定了“必须如何”的条件下(输入条件为x10)1个x101个x≠10规定了输入条件是一个布尔量输入条件bool x ture1个x true1个x false规定了一组输入数据包括n个输入值对每一个输入值分别处理输入条件为x取值于一个固定枚举类型1,3,5,7,9n个x∈1,3,5,7,91个x不属于1,3,5,7,9的集合规定了输入数据必须遵守规则的情况下输入是页面用户输入有效的Email地址的规则必须满足几个条件含有后面格式为xx,Email地址不带有特殊符号1个满足所有条件的输入集合n个不满足其中任何一个条件或所有条件的输入集合在已知的等价类中各元素在程序处理中的方式不同的情况下则应再将等价类进一步划分为更小的等价类。7案例有一报表处理系统要求用户输入处理报表的日期。假设日期在2000年1月至2020年12月即系统只能对该段时期内的报表进行处理。如果用户不再这个范围内则显示错误信息。并且此系统规定日期由年月的6位数字组成前4位代表年后2位代表月。输入有效等级类无效等价类报表日期16位数字字符2少于6位数字字符3多余6位数字字符4有非数字字符年份范围5在2000年到2020年之间6小于20007大于2020月份范围8在1到12月之间9等于010大于124.2边界值分析法1概念边界值分析法就是在某个输入输入变量范围的边界上验证系统功能是否正常运行的测试方法。2与等价划分类的区别a.边界值分析不是从等价类中随便挑一个作为代表而是使这个等价类的每个边界都要作为测试条件。b.边界值分析不仅考虑输入条件还有考虑输出空间产生的测试情况。3边界值分析的处理技巧a.如果输入条件规定了值的范围则取刚刚到达这个范围的边界值。b.如果输入条件规定了值的个数则用最大个数、最小个数、比最大个数多一个比最小个数少一个的数等作为测试数据。c.根据规格说明的每一个输出条件分别使用以上两个规则。d.如果程序的规格说明给出的输入域或输出域是有序集合如有序表、顺序文件等则应选取集合的第一个和最后一个元素测试数据。4边界值附近的数据确定的几种方法项边界值测试用例的设计思路字符起始-1个字符/结束1个字符假设一个文本输入区域要求允许输入1-255个字符输入1个和255个作为有效等价类输入0个和256个作为无效等价类这几个数值都属于边界条件值。数值开始位-1/结束位-1例如数据的输入域为1-999其值最小为1最大值为999,1000刚好在边界值附近。方向刚刚超过/刚刚低于空间小于空余空间一点/大于空余空间一点例如测试数据存储时使用比最小剩余空间大一点几KB的文件作为最大值检验的边界条件。4.3错误推测法1概念错误推测法是基于经验和直觉推测程序中所有可能存在的各种情况从而有针对性的设计列出测试用例的方法。错误推测法基于这样一个思想在某处发现了缺陷则可能隐藏更多的缺陷。在实际操作中列出所有可能出现的错误和容易发现错误的地方然后语句测试者经验做出选择。2优点与缺点优点充分发挥人的直觉与经验在一个测试小组中集思广益方便实用特别是在软件测试基础较差的情况下很好地组织测试小组进行错误推测是一种有效的测试方法。使测试者能够快速且容易地切入并且能够体会到程序的易用与否。缺点错误推测法不是一个系统的测试方法所以只能用着辅助手段即先用上述方法设计测试用例在没有其他方法可用的情况下再采用错误推测法补充一些例子进行额外的测试。难以知道测试的覆盖率可能丢失大量未知的区域并且这种测试行为带有主观性且难以复制。4.4因果图法1概念因果图法借助图形着重分析输入条件的各种组合每种组合条件就是“因”它必然有一个输出结果这就是“果“。因果图是一种形式化的图形语言由自然写成的规范转换而成这种形式化的语言实际上一种简化记号表示数组逻辑图不仅能发现输入输出中的错误还能指出程序规范中的不完成性和二义性。因果图方法最终生成的就是判断表它适合于检查程序输入条件的各种组合情况。2因果图介绍1因果图中使用了简单的逻辑符号以直线联接左右结点。左结点表示输入状态原因右结点表示状输出态结果。ci表示原因通常位于图的左边;ei表示结果通常位于图的右边。ci和ei均可取值0或1,0表示某状态不出现1表示某状态出现。如下图4种符号分别表示了规格说明书中4中因果关系。如上如所示a.恒等:若ci是1则ei也是1否则ei为0.b.非若ci是1则ei是0否则ei为1。c.或若c1或c2或c3是1则ei是1否则ei为0.“或可以有任意个输入”。d.与若c1和c2都是1则ei为1;否则ei为0.“与可以有任意个输入”。2因果图概念——约束A.输入条件的约束a:E约束异a和b中至多有一个可能为1,即a和b不能同时为1.b.I约束或a、b和 中至少有一个必须是1即a、b和c不能同时为0.c.O约束唯一a和b必须有一个且仅有一个为1.d.R约束要求a是1时b必须是1即不可能a是1是b是0.B.输出条件的约束输出条件的约束只有M约束强制若结果a是1则结果b强制为0.3利用因果图生成参数用例的步骤a.分析软件规格说明描述中那些是原因即输入条件或输入条件等价类那些是结果即输出条件并给每个原因和结果赋予一个标识符。b.分析软件规格说明书描述中的语义。找出原因与结果之间原因与原因之间对应关系。根据这些关系画出因果图。c.由于语法和环境限制有些原因与原因之间原因与结果之间的组合情况不可能出现。为表明这些特殊情况在因果图上用一些记号表明约束或限制条件。d.把因果图转换为判定表。4因果图案例例某软件规格说明书包含这样的要求第一列字符必须是A或B第二列字符必须是一个数字在此情况下进行文件的修改但如果第一列字符不正确则给出信息L如果第二列字符不是数字则给出信息M。解A:根据题意原因和结果如下原因1——第一列字符是A; 2——第一列字符是B; 3——第二列字符是数字。结果21——修改文件 22——给出信息L 3——给出信息M。B.对应的因果图11为中间节点不考虑原因1和原因2不可能同时为1因此在因果图上施加E约束。4.5功能图法1概念功能图法是用功能图FD形式化地表示程序的功能说明并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成。状态迁移用于表示输入数据序列以及相应的输出数据在状态迁移图中由输入数据和当前状态绝对输出数据和后续状态。2功能图功能图由状态迁移图和布尔函数组成。状态迁移图用状态和迁移来描述一个状态指出数据输入的位置或时间而迁移则指明状态的改变同时要依靠判定表或因果图表示的逻辑功能。3测试用例的生成方法从功能图生成测试用例得到的测试用例数是可接受的。问题的关键是如何从状态迁移图中选取测试用例若用节点代替状态用弧线代替迁移则状态迁移图可转化成一个程序的控制流程图形式。问题就转化称为程序的路径测试了。4测试用例生成规则为了将状态迁移测试路径的测试用例与逻辑模型局部测试用例的测试用例组合起来从功能图生成实用的测试用例须定义以下规则在一个结构化的状态迁移中定义三种形式的循环结构顺序、选择和重复。但分辨一个状态迁移中所有循环是有困难的。5从功能图中生成测试用例的过程a.生成局部测试用例在每个状态中从因果图生成局部测试用例局部测试用例由原因值输入数据组合与对应结果值生输出数据或状态组成。b.测试路径生成利用上面的规则三种生成从初始状态到最后状态的测试路径。c.测试用例合成合成测试路径与功能图中每个状态局部测试用例结果是初始状态到最后状态的一个状态序列以及每个状态中输入数据与对应的输出数据的组合。5.流程1测试计划首先根据用户需求报告中关于功能要求和性能指标的规格说明书定义相应的测试需求报告即制订黑盒测试的最高标准以后所有的测试工作都将围绕着测试需求来进行符合测试需求的应用程序即是合格的反之即是不合格的同时还要适当选择测试内容合理安排测试人员、测试时间及测试资源等。2测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程并为每个测试过程选择适当的测试用例测试用例选择的好坏将直接影响到测试结果的有效性。3测试开发建立可重复使用的自动测试过程。4测试执行执行测试开发阶段建立的自动测试过程并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成测试人员应本着科学负责的态度一步一个脚印地进行测试。5测试评估结合量化的测试覆盖域及缺陷跟踪 报告对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。最后下方这份完整的软件测试 视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】​​​软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。