软件测试任务驱动教程 课件 模块2 手工测试结构化Python 应用程序_第1页
软件测试任务驱动教程 课件 模块2 手工测试结构化Python 应用程序_第2页
软件测试任务驱动教程 课件 模块2 手工测试结构化Python 应用程序_第3页
软件测试任务驱动教程 课件 模块2 手工测试结构化Python 应用程序_第4页
软件测试任务驱动教程 课件 模块2 手工测试结构化Python 应用程序_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块2手工测试结构化Python应用程序软件测试任务驱动教程名校名师精品系列教材人民邮电出版社目录导航2.1测试用例设计2.3白盒测试方法2.2黑盒测试方法测试实战2.1.1测试用例的基本概念软件工程中的测试用例是为某个特定目标设计的一组条件或变量,是包含测试输入、执行条件及预期结果的集合,用于测试某个程序路径或核实是否满足某个特定需求。测试用例可以用一个简单的公式来表示:测试用例=输入条件+预期输出+测试环境其中,输入条件是指测试数据和操作步骤;预期输出是指系统的预期结果;测试环境是指系统环境配置,包括硬件环境、软件环境和数据,有时还包括网络环境。测试操作预期结果评价标准测试索引测试环境测试输入2.1.1测试用例的基本概念测试用例设计的注意事项如下。选用适合的用例管理工具,例如Word、Excel。测试用例一定要及时更新,补充新的测试用例,删除过时的测试用例。做好测试用例的分级。做好测试用例的评审,编写测试用例之前可以征询相关人员的意见,如果评审通过可以参考其执行测试,如果未通过,需要继续修改直到通过为止。测试用例设置要全面,包括功能、性能、兼容性、安全性、易用性、容错性等方面。注意把握适当的颗粒度。2.1.2测试用例的主要作用作为分析缺陷的基准指导测试的实施指导测试数据的规划作为判定的基准指导测试脚本的编写2.1.3测试用例设计的基本原则确保测试结果的可再现性确保测试用例的代表性确保测试用例的正确性确保测试结果的可判定性2.1.4测试用例设计的基本过程根据需求文档、概要设计、测试计划、测试方案细分出各功能模块的测试项。根据各测试项,按照概要设计、详细设计以及测试方案中对测试覆盖率的要求细分出测试子项。根据测试子项,按照测试用例的设计方法(因果图、边界值分析、等价类划分等)编写测试用例。0102032.1.5测试用例的编写标准测试日期测试环境要求测试项测试的步骤测试用例之间的关联测试标题测试用例的编号测试用例的优先级测试的预期结果测试用例设计人员和测试人员2.1.5测试用例的编写标准2.1.5测试用例的编写标准【示例】为测试带有广告的纸杯设计测试用例01OPTION测试对象带有广告的纸杯。02OPTION基本功能测试硬度测试界面测试易用性测试稳定性测试安全性测试本地化测试对设计的改进建议目录导航2.1测试用例设计2.3白盒测试方法2.2黑盒测试方法测试实战2.2.1黑盒测试的基本概念黑盒测试是将程序看成黑盒子的一类测试方法的总称。使用这种方法时,可以将程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和特性的情况下,仅关注测试程序的功能性要求—测试者在程序接口处进行测试,检查程序功能是否可以按照需求规格说明书的规定正常使用,是否能接收输入数据并产生正确输出,并且是否保持数据库或文件的完整性。黑盒测试依据程序功能的需求规范确定测试用例,并推断测试结果的正确性。黑盒测试是在已知软件系统功能的情况下,通过测试验证每项功能是否正常运行,因此是从用户角度进行的测试,通常适用于确认测试、系统测试、验收测试。2.2.1黑盒测试的基本概念初始化和终止错误。性能错误。数据结构错误或外部数据库访问错误。界面错误。功能未实现或遗漏。黑盒测试能发现的错误类型2.2.1黑盒测试的基本概念利用数据类型和数据值的最小集进行测试。每个软件特性必须被一个测试用例或一个经过认可的异常处理情形所覆盖。利用一系列真实的数据类型和数据值运行程序,测试超负载及其他“最坏情况”下的结果。利用假想的数据类型和数据值运行程序,测试排斥不规则输入的能力。测试影响性能的关键模块,例如基本算法、精度控制、时间效率和容量管理等,需进行专项测试以验证其是否正常运行。黑盒测试对程序功能测试的要求2.2.1黑盒测试的基本概念有针对性地寻找问题,并且定位问题更准确。黑盒测试可以证明软件系统是否实现用户要求的功能,是否符合用户的工作要求。能重复执行相同功能的测试任务,测试工作中最枯燥的部分可交由自动化测试工具来完成。黑盒测试的优点2.2.1黑盒测试的基本概念测试人员要负责大量文档、报表的编制和整理工作。在测试过程中很多操作仍需手工测试操作。需要充分了解软件系统用到的技术,测试人员需要具有较多经验。黑盒测试的缺点2.2.1黑盒测试的基本概念等价类划分法边界值分析法决策表法正交试验法错误推断法场景设计法因果图法功能图分析法采用黑盒测试设计测试用例的主要方法2.2.2等价类划分法等价类指某个输入域的子集,使用该方法时,可以将程序的输入域划分为若干子集,然后从每一个子集中选取少数具有代表性的数据作为测试用例。由于测试时,不可能覆盖所有输入数据,只能从全部输入数据中选取少数具有代表性的数据,而同一类代表性数据在测试效果上等价于这一类的其他数据。可以根据输入数据的特性,将全部输入数据合理划分为若干等价类,在每一个等价类中选取一个数据作为测试的输入条件,就可以用少量具有代表性的测试数据达到较好的测试覆盖效果。0102032.2.2等价类划分法1.等价类的划分有效等价类是指对于程序规格说明来说,合理的、有意义的输入数据构成的集合。利用它可以检验程序中功能和性能的实现是否有不符合规格说明要求的地方。无效等价类是指对于程序规格说明来说,不合理的、无意义的输入数据构成的集合。利用它可以检验程序中功能和性能的实现是否有不符合规格说明要求的地方。有效等价类无效等价类2.2.2等价类划分法2.划分等价类的方法0203按处理方式划分按限制条件划分按数值集合划分按数值划分按限制规则划分主要方法01050406按区间划分2.2.2等价类划分法3.根据等价类划分设计测试用例设计新测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类;重复此步骤,直到所有有效等价类均被覆盖。设计新测试用例,使其仅覆盖一个还没有被覆盖的无效等价类;重复此步骤,直到所有无效等价类均被覆盖。划分等价类,形成等价类表,并为每个等价类分配一个唯一的编号。0102032.2.3边界值分析法使用边界值分析法设计测试用例,首先应确定边界情况。再选取“正好等于边界值”“稍大于边界值”“稍小于边界值”的数据作为测试数据。边界值分析法与等价类划分法的区别是,边界值分析法不是从某个等价类中随便挑一个数据作为代表,而是使这个等价类的每个边界都作为测试条件。边界值分析法是对输入或输出的边界值进行测试的一种黑盒测试方法。该方法通过选择等价类边界的测试用例进行测试。边界值分析法2.2.3边界值分析法屏幕上光标所在的最左上和最右下位置是边界值。报表的第1行和最后1行是边界值。数组的第1个和最后1个元素是边界值。对于16位整型数据来说,32767和−32768是边界值。对于循环结构来说,第0次、第1次、倒数第1次和倒数第2次循环是边界值。常见的边界值2.2.3边界值分析法边界值分析法选择测试用例的基本原则如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个,比最小个数少1个的数作为测试数据。根据规格说明的每1个输出条件,使用前面两条规则。如果程序的规格说明给出的输入域或输出域是有序集合(例如有序表、顺序文件等),则应选取集合的第1个和最后1个元素作为测试用例。如果程序使用了1个内部结构,应该选取这个内部数据结构的边界值作为测试用例。分析规格说明,找出其他可能的边界条件。2.2.4决策表法决策表是将作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,既简明易懂,又可避免遗漏。利用决策表能够设计出完整的测试用例集合。使用决策表设计测试用例时,可以将条件解释为输入,将动作解释为输出。0102032.2.4决策表法条件桩列出了问题的所有条件,除了某些问题对条件的先后次序有特定的要求外,通常在这里列出的条件其先后次序无关紧要。条件桩条件项针对条件桩给出的条件列出所有可能的取值。条件项动作桩列出了问题规定的可能采取的动作,这些动作的排列顺序一般没有约束,但为了便于阅读也可令其按适当的顺序排列。动作桩动作项指出在条件项的各组取值情况下应采取的动作。通常将任何一个条件组合的特定取值及其相应要执行的动作称为一条规则。动作项决策表的组成部分2.2.4决策表法构造决策表的主要步骤列出所有的条件桩和动作桩。分析输入域,对输入域进行等价类划分。分析输出域,对输出进行细化,以指导具体的输出动作。确定规则的条数,假如有n个条件,每一个条件有两个取值(分别取真值、假值),则有2n条规则。填写条件项和动作项,得到初始决策表。合并相似规则,简化决策表,得到最终决策表。目录导航2.1测试用例设计2.3白盒测试方法2.2黑盒测试方法测试实战2.3.1白盒测试的基本概念白盒测试也称结构性测试或逻辑驱动测试,它按照程序内部逻辑结构测试,检测产品内部动作是否按照设计规格说明书的规定正常运行,检验程序中每条通路是否都能按预定要求正确工作。这一方法将测试对象看作“打开的盒子”,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际运行状态与预期是否一致。在使用白盒时,测试者必须检查程序的内部逻辑结构,从逻辑分析入手生成测试数据。2.3.1白盒测试的基本概念代码检查法逻辑覆盖法静态结构分析法基本路径测试法域测试法符号测试法数据流测试法Z路径覆盖法程序变异法2.3.1白盒测试的基本概念保证一个模块中的所有独立路径至少被执行一次。对所有逻辑值均需测试其取值为逻辑真(True)和逻辑假(False)的情况。在上下边界及可操作范围内运行所有循环。检查程序的内部数据结构,确保其结构的有效性。遵循原则2.3.1白盒测试的基本概念白盒测试时要考虑的问题测试中尽量先用自动化测试工具来进行静态结构分析。建议先从静态测试开始(例如静态结构分析、代码走查和静态质量度量),然后进行动态测试(例如覆盖率测试)。以静态结构分析法的结果作为依据,结合代码检查和动态测试方法对静态结构分析法的结果进一步确认,提高测试效率及准确性。覆盖测试是白盒测试的重要手段,可以作为测试报告中量化指标的依据,对于软件的重点模块来说,应使用多种覆盖率标准衡量代码的覆盖率。在不同的测试阶段,测试的侧重点是不同的。2.3.2代码检查法1.代码检查的概念代码检查主要检查代码和设计意图的一致性、代码结构的合理性、代码编写的标准性和可读性、代码逻辑表达的正确性等。代码检查包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。在进行代码检查前应准备好需求文档、程序设计文档、程序的源代码清单、代码编码标准、代码缺陷检查表和流程图等。2.3.2代码检查法2.代码检查的目的0203检查代码是否易于阅读、理解和维护。检查有没有遗漏的项目。发现程序缺陷和程序产生的错误。检查代码是否符合流程图要求。检查代码是否易于移植。目的01050406检查程序是否按照某种编码标准或规范编写。2.3.2代码检查法3.代码检查的方式桌面检查是程序员对源程序代码进行分析、检验,发现程序中的错误的过程。由于程序员熟悉自己的程序,可以由程序员自己检查,这样可以节省很多时间,但要注意避免主观判断。(1)桌面检查(2)代码走查(3)代码审查代码走查是程序员和测试人员组成的审查小组通过运行程序发现问题的过程。小组负责人把材料发给每个成员,然后由小组成员提出发现的问题。

记录小组成员对程序逻辑及功能提出的疑问,开会探讨发现的问题并提出解决方法。代码审查是程序员和测试人员组成的审查小组通过阅读、讨论、分析对程序进行静态结构分析的过程。小组负责人把程序文本、规范、相关要求、流程图及设计说明书发给每个成员。每个成员将所发材料作为审查依据开展审查会议,由程序员讲解程序的结构、逻辑和源程序。2.3.2代码检查法4.代码检查的主要项目及应遵循的原则检查数据类型及变量检查条件判断语句其他检查检查函数检查目录文件组织检查代码注释检查循环语句2.3.2代码检查法5.使用缺陷检查表列出典型错误2.3.2代码检查法6.静态结构分析静态结构分析主要以图形和图表的方式表现程序的内部结构,例如函数调用关系图、函数内部控制流图。静态结构分析主要分析以下内容。函数的调用关系是否正确。是否存在孤立的函数没有被调用。明确函数被调用的频繁度,对调用频繁的函数可以重点检查。2.3.3逻辑覆盖法逻辑覆盖法是白盒测试中主要的动态测试方法之一,是以程序内部的逻辑结构为基础的测试技术,通过对程序内部逻辑结构的遍历实现程序的覆盖。从覆盖源代码的不同程度来看,逻辑覆盖可以分为以下6个标准:判定/条件覆盖条件组合覆盖路径覆盖语句覆盖判定覆盖条件覆盖2.3.3逻辑覆盖法【示例】对方法logicExample()的代码进行分析在PyCharm集成开发环境中,创建名为“TestDemo”的项目,并在该项目的根文件夹下创建文件testDemo01.py。在该文件中定义方法logicExample()的代码。2.3.3逻辑覆盖法一般做白盒测试时,不会直接根据源代码进行测试,而是根据流程图来设计测试用例、编写测试代码;若项目中没有设计文档,需根据源代码画出流程图。方法logicExample()的流程图如图所示。2.3.3逻辑覆盖法1.语句覆盖语句覆盖设计足够多的测试用例,使得被测程序中的每条可执行语句至少被执行一次。在【示例2-2】中,可执行语句是指语句块1、语句块2、语句块3、语句块4中的语句。基本概念。01OPTION设计测试用例。02OPTION2.3.3逻辑覆盖法1.语句覆盖语句覆盖可以很直观地从源代码中生成测试用例,无需细分每条判定表达式。这种测试方法仅针对程序逻辑中显式存在的语句,对于隐藏的条件和可能到达的隐式逻辑分支是无法测试的。主要特点。03OPTION测试充分性说明。04OPTION假设第一条判断语句ifx>0、and、y>0:中的“and”被程序员错误地写成了“or”,即ifx>0ory>0:,使用上面设计出来的测试用例组来进行测试,仍然可以达到100%的语句覆盖率,所以语句覆盖无法发现上述的逻辑错误。在6个逻辑覆盖标准中,语句覆盖的逻辑覆盖能力最弱。2.3.3逻辑覆盖法2.判定覆盖(分支覆盖)判定覆盖设计足够多的测试用例,使得被测程序中的每条判断语句的“真”“假”分支至少被执行一次。在本示例中共有两条判断语句ifx>0andy>0:(记为P1)和ifmagic<0:(记为P2)。基本概念。01OPTION设计测试用例。02OPTION2.3.3逻辑覆盖法2.判定覆盖(分支覆盖)判定覆盖覆盖所有分支,能发现更多与分支逻辑相关的缺陷,因此判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无需细分每条判定表达式就可以得到测试用例。主要特点。03OPTION测试充分性说明。04OPTION假设第一条判断语句ifx>0andy>0:中的“and”被程序员错误地写成了“or”,即ifx>0ory>0:,使用上面设计出来的测试用例组来进行测试,仍然可以达到100%的判定覆盖率,所以判定覆盖也无法发现上述的逻辑错误。由于判定覆盖的可执行语句或在判断语句的“真”分支上,或在“假”分支上,所以,只要满足了判定覆盖标准就一定满足语句覆盖标准,反之则不然。因此,判定覆盖比语句覆盖的逻辑覆盖能力更强。2.3.3逻辑覆盖法3.条件覆盖条件覆盖设计足够多的测试用例,使得被测程序中的每条判断语句中的每个逻辑条件的可能值至少被满足一次。在本示例中有两条判断语句ifx>0andy>0:(记为P1)和ifmagic<0:(记为P2),共计3个逻辑条件x>0(记为C1)、y>0(记为C2)和magic<0(记为C3)。基本概念。01OPTION设计测试用例。02OPTION2.3.3逻辑覆盖法3.条件覆盖条件覆盖比判定覆盖增加了对符合判定情况的测试。要达到100%的条件覆盖率,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个逻辑条件至少有一次为真,而不考虑所有的判定结果。主要特点。03OPTION测试充分性说明。04OPTION上面的测试用例组也达到了100%的判定覆盖率,但并不能保证达到100%的条件覆盖率的测试用例组都能达到100%的判定覆盖率,如表所示的第2组测试用例。2.3.3逻辑覆盖法4.判定/条件覆盖(分支/条件覆盖)判定/条件覆盖设计足够多的测试用例,使得被测程序中的每条判断语句本身的判定结果(真或假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次,即同时达到100%判定覆盖率和100%条件覆盖率。基本概念。01OPTION设计测试用例。02OPTION2.3.3逻辑覆盖法4.判定/条件覆盖(分支/条件覆盖)判定/条件覆盖标准满足判定覆盖标准和条件覆盖标准,弥补了二者的不足。判定/条件覆盖标准的缺点是未考虑条件的组合情况。主要特点。03OPTION测试充分性说明。04OPTION达到100%判定/条件覆盖率一定能够达到100%条件覆盖率、100%判定覆盖率和100%语句覆盖率。2.3.3逻辑覆盖法5.条件组合覆盖条件组合覆盖设计足够多的测试用例,使得被测程序中的每条判断语句的所有可能条件取值的组合至少被满足一次。基本概念。01OPTION设计测试用例。02OPTION2.3.3逻辑覆盖法5.条件组合覆盖条件组合覆盖标准满足判定覆盖、条件覆盖和判定/条件覆盖标准。条件组合覆盖要求设计足够多的测试用例,使得判断语句中每个条件的所有可能结果至少出现一次,每条判断语句本身的所有可能结果也至少出现一次,并且每个条件都能单独影响判定结果。条件组合覆盖增加了测试用例的数量。主要特点。03OPTION测试充分性说明。04OPTION达到100%条件组合覆盖率一定达到100%条件覆盖率和100%判定覆盖率。2.3.3逻辑覆盖法6.路径覆盖路径覆盖设计足够多的测试用例,使得被测程序中的每条路径至少被覆盖一次。基本概念。01OPTION设计测试用例。02OPTION2.3.3逻辑覆盖法6.路径覆盖路径覆盖可以对程序进行彻底的测试,比前面5个标准的覆盖面都广。由于路径覆盖需要对所有可能的路径(包括循环、条件组合、分支选择等)进行测试,所以需要设计大量复杂的测试用例,使得测试工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的。这样不仅降低了测试效率,而且大量的测试结果的累积也为排错带来麻烦。主要特点。03OPTION测试充分性说明。04OPTION由表2-12可知,达到100%路径覆盖率,但并不一定能达到100%条件覆盖率(C2只取到了真),但一定能达到100%判定覆盖率(因为路径就是从判断语句的某条分支经过的)。2.3.3逻辑覆盖法7.6个逻辑覆盖标准的强弱关系一般认为这6个逻辑覆盖标准从弱到强的排列顺序是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。但经过上面的分析,它们之间的关系实际上可以用下图

表示(路径覆盖很难在该图中表示出来)。2.3.4循环语句测试1.简单循环测试简单循环的测试集。01OPTION0次循环:从循环入口直接跳到循环出口。1次循环:只有一次通过循环,用于查找循环变量的初始值方面的错误。2次循环:两次通过循环,用于查找循环变量的初始值方面的错误。m次循环:m次通过循环,其中m<n,用于检查在多次循环时才能暴露的错误。n−1次循环:n−1次通过循环,比最大循环次数少一次。n次循环:n次通过循环,即最大循环次数。n+1次循环:n+1次通过循环,比最大循环次数多一次。2.3.4循环语句测试1.简单循环简单循环应重点测试的方面。02OPTION循环变量的初始值是否正确。循环变量的最大值是否正确。循环变量的增量是否正确。何时退出循环。重点测试2.3.4循环语句测试2.嵌套循环有效减少嵌套循环测试数目的方法。01OPTION从最内层循环开始,将其他外层循环的参数设置为最小值。对最内层循环采用简单遍历,保持外层循环的迭代参数(即循环计数器)为最小值,并针对范围外或特殊情况进行额外的测试用例设计。逐层向外层扩展,外构造下一层循环的测试,将其他的外层循环参数设置为最小值,并为其他嵌套循环赋予“典型”值。重复上述过程,直至所有循环层级均被测试覆盖。2.3.4循环语句测试2.嵌套循环嵌套循环重点测试的方面。02OPTION当外层循环变量为最小值,内层循环变量也为最小值时,运算结果是否正确。当外层循环变量为最小值,内层循环变量为最大值时,运算结果是否正确。当外层循环变量为最大值,内层循环变量为最小值时,运算结果是否正确。当外层循环变量为最大值,内层循环变量也为最大值时,运算结果是否正确。循环变量的增量是否正确。何时退出循环。2.3.4循环语句测试3.串接循环4.不规则循环如果两个循环串接起来,而且第1个循环的循环结束值是第2个循环的初始值,则这两个循环相互依赖,并非独立。在相互依赖的情况下,则推荐使用嵌套循环的方法进行测试。串接循环(也称为顺序循环)在每个循环彼此独立的情况下,可以被优化为两个独立的单个循环来分别处理。应尽可能先将不规则循环重新设计为结构化的程序结构,再进行测试。目录导航2.1测试用例设计2.3白盒测试方法2.2黑盒测试方法测试实战【任务2-1】使用黑盒测试方法测试三角形问题使用黑盒测试方法测试三角形问题【任务要求】【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-1】使用等价类划分法对三角形问题进行测试等价类划分测试用例01OPTION编号有效等价类编号无效等价类1数值41条边为非数值52条边为非数值63条边为非数值23个数值7只有1个数值8只有2个数值9多于3个数值31≤a≤1001≤b≤1001≤c≤100101条边的边长为0112条边的边长为0123条边的边长为0131条边的边长<0142条边的边长<0153条边的边长<0161条边的边长>100172条边的边长>100183条边的边长>100测试用例编号a、b、c预期输出覆盖无效等价类Test022.5、4、5毫米限制无法输入汉字4Test032.5、3.5mm、5mm限制无法输入字母5Test042.5m、3.5m、4.5m限制无法输入字母6Test053提示“请输入边长b的值:”7Test064、5提示“请输入边长c的值:”8Test074、5、6、7无法输入第4条边的值9Test080、4、5提示“边长的值应为1~100之间的数……”10Test090、0、5提示“边长的值应为1~100之间的数……”11Test100、0、0提示“边长的值应为1~100之间的数……”12Test11-3、4、5提示“边长的值应为1~100之间的数……”13Test13-3、-4、5提示“边长的值应为1~100之间的数……”14Test13-3、-4、-5提示“边长的值应为1~100之间的数……”15Test14101、55、65提示“边长的值应为1~100之间的数……”16Test15101、101、65提示“边长的值应为1~100之间的数……”17Test16101、101、101提示“边长的值应为1~100之间的数……”18三角形问题的等价类三角形问题中覆盖无效等价类的测试用例【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-1】使用等价类划分法对三角形问题进行测试输出域等价类划分测试用例02OPTION输出域等价类。R1={边长为a、b、c的等边三角形}。R2={边长为a、b、c的等腰三角形}。R3={边长为a、b、c的一般三角形}。R4={边长为a、b、c不能构成三角形}。测试用例编号abc预期输出Test17555等边三角形Test18335等腰三角形Test19345一般三角形Test20215不能构成三角形三角形问题的4个输出域等价类测试用例【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-1】使用等价类划分法对三角形问题进行测试执行软件测试与分析测试结果03OPTION测试用例Test01测试用例Test06测试用例Test08测试用例Test17测试用例Test18测试用例Test20【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-2】使用边界值分析法对三角形问题进行测试设计软件测试用例01OPTION【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-2】使用边界值分析法对三角形问题进行测试执行软件测试与分析测试结果02OPTION测试用例Test04测试用例Test08测试用例Test13【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-3】使用决策表法对三角形问题进行测试列出所有的条件桩和动作桩01OPTION三角形问题的条件桩如下所示。(1)C1:a、b、c构成三角形?(2)C2:a=b?(3)C3:a=c?(4)C4:b=c?三角形问题的动作桩如下所示。(1)A1:不能构成三角形。(2)A2:一般三角形。(3)A3:等腰三角形。(4)A4:等边三角形。(5)A5:不可能情况。【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-3】使用决策表法对三角形问题进行测试确定规则的条数02OPTION三角形问题的决策表有4个条件,每个条件可以取两个值,所以应有24=16条规则。构造决策表03OPTION【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-3】使用决策表法对三角形问题进行测试设计软件测试用例04OPTION【任务2-1】使用黑盒测试方法测试三角形问题【任务实施】【任务2-1-3】使用决策表法对三角形问题进行测试执行软件测试与分析测试结果05OPTION测试用例Test01测试用例Test04测试用例Test05测试用例Test08【任务2-2】使用白盒测试方法测试三角形问题判断能否构成三角形及判断三角形类型的函数judgeTriangle()的代码如表所示,该代码的功能是将输入的3个数值作为三角形的3条边,判断能否构成三角形,如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。另外三角形边长的取值限制为1~100。【任务要求】【任务2-2】使用白盒测试方法测试三角形问题获取三角形边长的取值和调用函数judgeTriangle()的相关代码如表所示。【任务要求】序号代码010203040506070809101112131415161718num1=0num2=0num3=0

whileTrue:whileTrue:try:whileTrue:num1=float(input('请输入边长a的值:'))

ifnum1>100ornum1<1:print('边长的值应为1~100之间的数,请重新输入边长a的值。')

continueelse:breakwhileTrue:num2=float(input('请输入边长b的值:'))

ifnum2>100ornum2<1:print('边长的值应为1~100之间的数,请重新输入边长b的值。')序号代码19202122232425262728293031323334353637continueelse:breakwhileTrue:num3=float(input('请输入边长c的值:'))

ifnum3>100ornum3<1:print('边长的值应为1~100之间的数,请重新输入边长c的值。')

continueelse:breakbreakexcept:print('请输入正确的边长数值')

continueprint("三角形的类型为:"+judgeTriangle(num1,num2,num3))end=int(input('测试是否结束?按0表示结束测试,按1表示继续测试。'))

ifend<1:print('测试完毕!')

break【任务2-2】使用白盒测试方法测试三角形问题使用白盒测试方法测试三角形问题的测试计划如表所示。【任务要求】【任务2-2】使用白盒测试方法测试三角形问题【任务实施】【任务2-2-1】使用代码检查法对三角形问题进行测试针对上表中程序代码对代码结构的合理性、代码编写的规范性和可读性、代码逻辑表达的正确性等方面进行检查,检查结果如下所示。【任务2-2】使用白盒测试方法测试三角形问题【任务实施】【任务2-2-2】使用逻辑覆盖法对三角形问题进行测试分析程序的逻辑结构01OPTION程序代码的流程图6个基本的逻辑条件。C1:a+b>c。C2:b+c>a。C3:a+c>b。C4:a==b。C5:b==c。C6:a==c。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论