软件测试学习笔记丨测试用例设计方法

编程有点难不难 2024-08-20 14:28:44

本文转自测试人社区,原文链接:

一,黑盒测试方法论1,等价类1.1 定义等价类划分是一种重要的、常用的黑盒测试方法不需要考虑程序的内部结构,只需要考虑程序的输入规格即可它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性用户所有可能输入的数据,划分成了若干个子集,然后从每一个子集当中选取少数具有代表性的数据作为测试用例在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果1.2 等价类分类有效等价类:指符合《需求文档》,输入合理的数据集合无效等价类:指不符合《需求文档》,输入不合理的数据集合1.3 设计步骤先划分等价类:找出所有可能的分类确定有效等价类:需求中的条件确定无效等价类:与条件相反的情况,再找到特殊情况从各个分类中挑选测试用例数据2,边界值2.1 定义边界值分析法是一种很实用的黑盒测试用例方法,它具有很强的发现故障的能力边界值分析法是作为对等价类划分法的补充,测试用例来自等价类的边界2.2 边界值确定上点:边界上的点离点:离上点最近的点内点:在输入域内任意一个点选取正好等于、刚好大于或刚好小于边界值作为测试数据2.3 边界值总结确定边界情况选取正好等于、刚刚好大于或刚刚好小于边界值作为测试数据确定各个值的等价类3,判定表3.1 定义因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例画因果图非常麻烦,影响测试效率,可以直接写判定表,进而编写测试用例3.2 组成条件桩:问题的所有条件动作桩:问题的所有输出条件项:针对条件桩的取值动作项:条件项的各种取值情况下的输出结果3.3 设计步骤列出所有的条件桩和动作桩确定规则数:条件取值个数^条件数填入条件项填入动作项。得到初始判定表简化判定表4,场景法4.1 定义场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程基本流:按照正确的业务流程来实现的一条操作路径备选流:导致程序出现错误的操作流程4.2 用例设计步骤根据需求规格说明,画出功能模块流程图;根据流程图,描述出程序的基本流及备选流;根据基本流和备选流生成不同的场景,构造场景列表;对每一个场景生成相应的测试用例;对生成的所有测试用例重新复审,去掉多余的测试用例;测试用例确定后,为每一个测试用例确定测试数据值5,因果图5.1 定义因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法它适合于检查程序输入条件的各种组合情况“因” —— 输入条件“果” —— 输出结果5.2 适合场景描述多种条件的组合产生多个动作5.3 因果图中的基本符号恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现非:若原因出现,则结果不出现;若原因不出现,则结果出现或:有多个原因。若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现与:有多个原因。若几个原因都出现,则结果才出现;若其中一个原因不出现,则结果不出现5.4 因果图中的约束条件互斥 E:a、b、c 只能有一个成立,但是可以都不成立包含 I:a、b、c 中至少有一个成立唯一 O:a、b、c 有且仅有一个成立要求 R:如果 a 成立,则要求 b 必须也成立,其他的不约束屏蔽 M:如果 a 成立的时候,强制 b 不成立,其他的不约束5.5 因果图法基本步骤找出所有的输入条件(因)找出所有的输出条件(果)明确所有输入条件之间的制约关系以及组合关系明确所有输出条件之间的制约关系以及组合关系找出什么样的输入条件组合会产生哪种输出结果把因果图转换成判定表为判定表中的每一列表示的情况设计测试用例6,正交法6.1 定义

简介正交法(0rthogonalArray)是一种设计实验方案和测试用例的统计方法,旨在通过有限次试验来研究多个因素对结果的影响,同时尽可能减少试验次数。正交法的主要特点是通过一种合理的方式选择一组试验参数的组合,以实现对所有可能的参数组合进行有效的覆盖,从而节省试验资源和成本。

正交法的核心思想是在所有可能的因素组合中,选择一组互相正交的因子水平组合,以尽可能少的试验次数来观察所有因素的影响。

正交表是一种特制的表格,一般用 Ln(m^k)表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m 表示每个因素水平数。

其中,因素是影响试验结果的一个变量或因素,可以是独立变量、处理水平或参数。因素可以是产品的属性、工艺参数、环境条件等。水平是每个因素可能的取值或状态。例如,一个因素可以有多个不同的水平,如高、中、低等。

6.2 使用场景及操作步骤

使用场景

多参数系统:当系统具有多个输入参数,而且这些参数之间存在相互影响时,正交法特别有用。多条件覆盖:当需要覆盖不同的条件组合,以测试系统在不同情况下的行为。资源有限:当测试资源有限,需要在较小的测试用例集中获得尽可能广泛的覆盖。

常用正交表

正交表根据参数数量和取值范围的不同,有多种等级和类型可供选择。选择适当的正交表可以有效地设计测试用例,覆盖各种参数组合,以达到最佳的测试覆盖和效率

操作步骤1.确定测试参数和取值范围:识别系统的输入参数和条件。这可能包括各种参数、设置、状态等。2.确定正交表和参数等级:根据参数数量和取值范围,选择合适的正交表3.设计正交表:使用正交表工具,根据系统的输入参数和条件构建正交表,4.生成测试用例:从正交表中选择测试用例,以覆盖尽可能多的参数组合。确保所选用例能够测试系统的各个方面。

7,基于模型的测试二,测试用例设计1,用例组成(以我测过的项目为例)需求名称一级模块二级模块用例标题优先级前提条件测试步骤期望结果(预期结果)2,用例设计方法的选择任何情况下,都需要采用等价类划分法,将无限测试变成有限测试在规定了数据范围的情况下,必须采用边界值分析法如果需要关注它的主要功能和业务流程、业务逻辑是否正确实现,考虑使用场景法如果含有输入条件的组合情况,考虑选用因果图和判定表法采用错误推断法再追加测试用例3,测试用例编写步骤划分功能模块正向功能验证单个功能项验证功能之间交互验证隐形需求4,测试用例的粒度测试用例可以写的很简单,也可以写的很复杂最简单的测试用例是测试的纲要,仅仅指出要测试的内容测试用例写的过于简单,则可能失去了测试用例的意义测试用例写得过于复杂或详细,会带来两个问题:效率问题维护成本问题5,用例评审测试用例的本身的描述是否清晰,是否存在二义性测试用例内容是否正确,是否与需求目标相一致测试用例的期望结果是否确定、唯一测试用例是否覆盖了所有的需求测试用例是否具有可执行性是否从用户层面来设计用户使用场景和业务流程的测试用例场景测试用例是否覆盖最复杂的业务流程用例设计是否包含了正面、反面的用例三,面试测试用例设计1,设计思路需求分析明确需求和面试官交流需求细节界面页面布局设计和产品原型图一致页面文案正确功能正向功能验证单个功能项验证功能之间交互验证接口验证易用性功能操作是否简便页面布局是否美观合理提示语相关信息是否易于理解兼容性APP平台厂商系统版本屏幕大小与分辨率WEB浏览器操作系统分辨率性能服务器性能测试APP 客户端性能测试安全性注入攻击加密权限APP 测试要点网络中断系统权限WEB 测试要点链接测试多个浏览器同时访问四,白盒测试方法1,白盒测试的度量根据待测产品的内部实现细节来设计测试用例白盒测试的执行手段是可以涵盖单元测试、集成测试使用代码覆盖率作为白盒测试的主要度量指标2,代码覆盖率常见概念语句覆盖:每行代码都要覆盖至少一次判定覆盖:判定表达式的真假至少覆盖一次判定/条件覆盖:判定覆盖与条件覆盖都必须覆盖条件组合覆盖:判定表达式中的所有条件组合都需要覆盖分支覆盖:控制流中的每条边都要被覆盖一次路径覆盖:所有的路径都要尽量覆盖指令覆盖:一行代码会被编译为多条指令,尽可能的覆盖所有指令方法覆盖:每个方法至少要被覆盖一次类覆盖:每个类至少被覆盖一次3,覆盖率统计的工具emmacoberturajacoco4,插桩原理对jvm的字节码插桩基于block插桩计算覆盖的代码块5,流程覆盖利用代码执行流代表流程流程覆盖用路径覆盖率表达对流程进行裁剪获得一个适合业务的小规模的业务子集流程覆盖率=测试经过的路径/业务子集路径6,精准化测试代码调用链与黑盒测试用例的关联根据代码变更自动分析影响范围黑盒测试过程中借助代码流程覆盖数据指导探索式测试利用线上数据推导有效测试用例代码流程分析与覆盖率统计

0 阅读:0

编程有点难不难

简介:感谢大家的关注