刘桂玲
摘要:在软件黑盒测试方法中,测试用例的设计有不同种方法,并且每一种设计方法都有其侧重面。因果图法主要表示测试软件输入条件的相互依赖与相互制约关系,并且包括由此导致的不同结果。论文从《黑盒测试的因果图测试法》教学设计方面进行阐述,主要介绍因果图的基本概念、因果图基本符号和主要关系、因果图测试法在教学中的设计。
关键词:软件测试;因果图;教学设计
中图分类号:TP311 文献标识码:A 文章编号:1003-2177(2019)13-0106-04
在等价类划分法和边界值分析法中,都是着重考虑输入条件,并没有考虑到输入情况的各种组合,也没考虑到各个输入情况之间的相互制约关系。如果在测试时必须考虑输入条件的各种组合,可能的组合数将是天文数字。因此必须考虑描述多种条件的组合,相应地产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图方法适合于检查程序输入条件的各种组合情况,因果图方法是一种有效的软件测试方法。
1 因果图法的概述
1.1 什么是因果图
因果图是一种形式语言,用自然语言描述的规格说明可以转化为因果图。因果图实际上是一种数字逻辑电路(一个组合的逻辑网络),但没有使用标准的电子学符号,而是使用了稍微简单点的符号,它有助于用一个系统的方法选择出高效的测试用例集,它还有一个额外的好处就是可以指出规格说明的不完整和不明确之处。
1.2 因果图设计方法
因果图法是从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),因果图中使用的是简单的逻辑符号,以直线连接左右结点。左结点表示输入状态(或称做原因),右结点表示输出状态(或称做结果),在因果图中用4种符号分别表示规格说明中的4种因果关系,通常在因果图中,用c表示原因,e表示结果。各结点表示状态,可取“0”或“1”值。“0”表示某状态不出现,“1”表示某状态出现。
使用因果图法的优点:
(1)考慮到了输入情况的各种组合以及各个输入情况之间的相互制约关系。(2)能够帮助测试人员按照一定步骤,高效率的开发测试用例。(3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性。
1.3 因果图设计步骤
(1)分析程序规格说明的描述中,哪些是原因,哪些是结果。并给每个原因和结果赋予一个标识符。原因常常是输入条件或是输入条件的等价类,而结果是输出条件。(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系,画出因果图。(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换成判定表。(5)把判定表的每一列拿出来作为依据,设计测试用例。
因果图生成的测试用例包括了所有输入数据取TRUE与FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而增加。
事实上,在较为复杂的问题中,这种方法常常是十分有效的,它能有效地帮助确定测试用例。当然,如果哪个开发项目在设计阶段就采用了判定表,也就不必再画因果图了,而是可以直接利用判定表设计测试用例了。
2 因果图基本符号和主要关系
2.1 因果图基本符号
因果图基本符号包括原因,用C表示,例如C1、C2……Ci;结果,用E表示,例如E1、E2……Ei;状态,用0或1表示,当一个原因为假或真时,称其处于“0状态”或“1状态”、当一个结果发生(或不发生)时,称其处于“1状态”或“0状态”,也就是说0表示某状态不出现,1表示某状态出现。
2.2 因果图基本符号间的主要关系
(1)原因与结果之间的关系。因果图中用来表示4种因果关系的基本符号,它们分别是恒等、非、或、与,如图1所示。
(2)原因之间的约束关系。在因果图中,原因之间的约束关系包括排异约束、包容约束、唯一约束和要求约束,这四种约束关系用特定的符号标明。排异约束用符号E表示,如图2所示;包容约束用符号I表示,如图3所示;唯一约束用符号O表示,如图4所示;要求约束用符号R表示,如图5所示。
3 《黑盒测试的因果图测试法》在教学中的设计
针对高职院校软件技术专业学生,结合《软件测试技术》课程教学大纲,下面将从教学分析、设计思路、实施过程、学习成果、教学评价五个方面进行论述。
3.1 教学分析
3.1.1教学内容选定
授课内容选自软件技术专业的一门核心课程《软件测试技术》课程,根据专业标准、人才培养方案、课程标准,立足软件测试行业人才需求,参考校企合作编写教材,将课程以一个项目“某某 web 网站的测试”为框架,以下分别设置讲述了4个任务:
(1)制定软件测试策略和根据具体测试项目确定测试方法;(2)根据测试计划采用黑盒测试方法进行测试用例的设计;(3)正确根据测试计划采用白盒测试方法进行测试用例的设计;(4)进行测试实施以及撰写测试报告。本单元授课内容为任务二中的 2.4 黑盒测试的因果图测试法,所需学时4学时。
3.1.2学情分析
授课对象为高职软件技术专业学生,通过前期调研分析可知,学生已经具备文档撰写技巧、涉及相关的基础知识和基本技能;学生还需在如下方面继续努力,提高成绩。如软件测试方法、测试用例设计、撰写测试报告等方面需要深入学习,团队合作等职业素养方面有待进一步加强。
3.1.3教学目标
根据课程标准和岗位要求,确定本单元的知识目标、能力目标;并把培养学生规范操作职业素养、培养精益求精的职业精神和团队合作精神贯穿于整个教学过程中。
3.1.4教学重难点
根据课程标准及学生已有的知识与能力,确定单元的教学重点是:通过需求规格说明,确定原因和结果;确定原因和结果之间的关系;能够绘制因果图。教学难点是:绘制因果图过程中,中间节点的抽取。
3.2 设计思路
依据职业教育教学改革要求,基于翻转课堂教学理念,采用任务驱动教学法,以“某某web网站的测试”为载体进行教学设计,完成从因果图基础知识(基本符号、主要关系)到绘制因果图、设计测试用例的完整工作过程。充分利用教学资源和网络课程平台的教学资源,开展课前预习、课上学习和课后拓展的教学活动。
3.3 教学实施
根据课程标准,“黑盒测试的因果图测试法”教学项目安排4课时,在教学实施过程中分为课前准备、课程教学环节(课堂引入、知识点讲解、实例讲解)、评价总结和课后拓展提高等4个环节。
3.3.1课前准备
教师提前将问题、学习资料上传到课程平台,发布课前预习通知。学生接到预习通知后,下载问题,并通过查找学习资源进行自主学习,拓展了学习的时间与空间。
3.3.2课程教学环节
通过小组代表演示、阐述预习问题,检验学生预习效果。教师播放FLASH动画引入本次课程的授课内容,一方面帮助学生梳理之前所学的等价类划分法、边界值着重考虑的是单个输入条件;另一方面引入本次课程学习内容“因果图测试法”,用因果图可以体现多个输入条件之间的组合关系。在教学环节中,采用的教学手段包括广播管理软件进行电子点名、课堂引入(信息化教学手段、学生动手画图、团队合作)、知识点讲解(学生自主学习、学生代表发言、小组PK、师生互动)、采用学生自主学习、小组交流、团队PK的形式进行因果图基本知识点讲解。通过小组代表发言交流,同学们对因果图部分内容知识点都基本掌握,个别同学对符号的表示有时会混淆。针对这一问题,通过对实例进一步讲解和小组之间完成互动游戏,进行PK,加深同学们对符号的记忆。在实例讲解环节中,由于因果图法的主要思想较难直观地达到理解的效果,所以采用引入实例的教学方法,帮助学生理清逻辑思路,通过7步法,完成实例同时也掌握了因果图法的主要思想。
实例1:
某软件的需求规格说明书中规定:
第一个字符必须是A或B,第二个字符必须是一个数字字符,在此情况下进行文件的修改;如果第一个字符不是A或B,则给出信息L;如果第二个字符不正确,则给出信息M。确定原因和结果,绘制正确的因果图,并设计合理的测试用例。
解析:实例1题目较简单,教师通过动画演示,分析实例说明,帮助学生理清逻辑思路,逐步确定原因和结果;确定因果关系;确定原因之间的约束;确定中间节点。在绘制因果图过程中,因为因果图的设计方法不唯一,为了集思广益,采用分组讨论,将小组所绘因果图上传平台并展示。大家共同讨论修改后,学生二次提交。最后,通过学生上交的结果,评选小组最佳因果图。通过“腾讯投票助手”投票,票数最高的小组作业为最优。
实例2:有一个自动售货机软件(只接收5元或者10元纸币),其规格说明如下,见图6。
(1)若投入5元纸币,按下可乐、雪碧或红茶按钮,则送出相应的饮料;
(2)若售货机没有零钱找,则一个显示“零钱找完”的红灯亮,此时投入10元纸币并按下某種饮料按钮后,则退还10元纸币;
(3)若售货机有零钱找,此时投入10元纸币并按下某种饮料按钮后,在送出相应饮料的同时退还5元。”
请根据上述描述确定原因和结果,并绘制因果图。
解析:实例2题目较难,教师先通过白板画图,帮助同学们分析实例说明,确定原因个数和结果个数;确定因果关系以及他们之间的约束。教师在电脑上进行操作。学生一边听讲,一边跟着教师操作。小组作业上传课程平台,教师点评、学生修改,小组进行二次提交。
3.4 评价总结
学生总结任务实施过程中的得失。总结内容包含知识掌握情况和综合素质情况两个方面。教师总结本次课的重点与课堂上发现的问题,总结学生上交作业情况。
3.5 课后拓展提高
课后学生完成任务单,包括企业真实案例。学生根据自身技能水平,合理选择拓展任务,学生课后遇到问题,可以与教师交流。
4 学习成果
(1)学生课堂满意度、课堂纪律、团队合作、任务单完成率均有明显提升;期中、期末考试成绩成上升趋势。(2)学习和小组PK贯穿整个教学环节,学生团队意识显著增强。(3)真实企业案例提升学生学习兴趣。
5 教学评价
根据学生课堂及完成活动任务的表现,以教师点评和学生互评的形式相结合,对所学知识在任务单中进行小结。