收藏 分销(赏)

软件测试及常用的策略和方法.doc

上传人:二*** 文档编号:4765248 上传时间:2024-10-12 格式:DOC 页数:67 大小:2.24MB
下载 相关 举报
软件测试及常用的策略和方法.doc_第1页
第1页 / 共67页
本文档共67页,全文阅读请下载到手机保存,查看更方便
资源描述
软件测试及常用的策略和方法(完整版)实用资料 (可以直接使用,可编辑 完整版实用资料,欢迎下载) 软件测试分类 一.黑盒测试与白盒测试 1.黑盒测试:black-box testing:只关心软件的输入数据和输出结果。 包括功能测试与性能测试。 2.白盒测试:white-box testing:研究源代码与程序结构 二.静态测试和动态测试 1.静态测试:不实际运行被测软件,只静态地检查程序代码,界面或文 档中可能存在的错误的过程。 包括:代码测试(测试标准和规范,界面测试(实际界面与需求中的说明是否相符,文档测试(用户手册与需求说明是否真正符合用户的实际要求 2.动态测试:实际运行被测程序,输入相应的测试数据,检查实际输出 结果和预期结果是否相符过程 三.单元测试,集成测试,系统测试和验收测试 1.单元测试:对软件中的最小可测试单元进行检查和验证。 A.单元测试需要在项目前期进行,在程序员编码之后,代码已经通过编 译后进行; B.由白盒测试员或者开发人员来测试,开发人员需要交叉测试,避免测 试自己的代码 C.测试的依据是:源程序本身,包括代码和注释;还项目的《详细设计》 文档 D.通过的标准:程序通过所有单元测试的用例。语句的覆盖率达到百分 百;分支的覆盖率达到85% E.需要检查代码是否符合规范,动态运行代码,检查其实际运行结果。 F.桩模块和驱动模块 桩模块:STUB指模拟被测模块所调用的模块 驱动模块:DRIVER指模拟被测模块的上级模块,用来接收测试数据,启动被测模块并输出结果 2.集成测试 A.integration testing:将通过测试的单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口部分 B.单元与集成同步进行。测试参数传递。 C.由开发人员或者白盒测试员测试 D.依据是单元测试的模块以及《概要设计》文档 3.系统测试与验收测试 A.系统测试:system testing将整个软件系统看做一个整体进行测试,包括对功能,性能以及软件所运行的软硬件环境进行测试 系统测试由黑盒测试员来完成,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及在不同的软硬件环境中的兼容性;主要依据是《系统需求规格说明》文档 B.验收测试 α测试:由用户,测试人员,开发人员共同参与的内部测试 β测试:内测后的公测,完全交给最终用户的测试 4.功能测试与性能测试 A.功能测试:function testing检查实际软件的功能是否符合用户的需求 逻辑功能测试(logic function testing:计算器 界面测试(ui testing:窗口,下拉式菜单和鼠标操作,数据项 易用性测试(usability testing:合理性与方便性进行测试 安装测试(installation testing:安装与缷载 兼容性测试(compatibility testing:包括硬件兼容性测试与软件兼容性测试。 5.性能测试(performance testing A.软件性能主要有时间性能与空间性能两种。一般需要用到自动化的测试工具。 B.软件测试分为:一般性能测试,稳定性测试(reliability testing, 负载测试(load testing和压力测试(stress testing 6.回归测试,冒烟测试,随机测试 A.regression testing:对软件的新的版本测试时,重复执行上一个版本 测试时的用例 B.smock testing:在对一个新版本进行系统大规模的测试之前,先验证 一下软件的基本功能是否实现,是否具备可测性 C.random testing:在测试中所有的输入数据都是随机生成的,目的是模 拟用户的真实操作,并发现一些边缘性的错误。也叫猴子测试。 功能测试常用的策略和方法 黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。 采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。 黑盒测试试图发现以下类型的错误: 1功能错误或遗漏; 2界面错误; 3数据结构或外部数据库访问错误; 4性能错误; 5初始化和终止错误。 一、黑盒测试的测试用例设计方法 ·等价类划分方法 ·边界值分析方法 ·错误推测方法 ·因果图方法 ·判定表驱动分析方法 ·正交实验设计方法 ·功能图分析方法 等价类划分: 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集,然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 1划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个 输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类:与有效等价类的定义恰巧相反。 设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。 2划分等价类的方法:下面给出六条确定等价类的原则。 ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效 等价类和两个无效等价类。 ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。 ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效 等价类。 ④在规定了输入数据的一组值(假定n个,并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。 ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则和若干个无效等价类(从不同角度违反规则。 ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。 3设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类: 输入条件有效等价类无效等价类 然后从划分出的等价类中按以下三个原则设计测试用例: ①为每一个等价类规定一个唯一的编号。 ②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。直到所有的有效等价类都被覆盖为止。 ③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步。直到所有的无效等价类都被覆盖为止。 边界值分析法 边界值分析方法是对等价类划分方法的补充。 (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,故有种规则。 ②列出所有的条件桩和动作桩。 ③填入条件项。 ④填入动作项。等到初始判定表。 ⑤简化、合并相似规则(相同动作。 B.Beizer 指出了适合使用判定表设计测试用例的条件: ①规格说明以判定表形式给出,或很容易转换成判定表。 ②条件的排列顺序不会也不影响执行哪些操作。 ③规则的排列顺序不会也不影响执行哪些操作。 ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。 ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。 黑盒测试的优点 1、基本上不用人管着,如果程序停止运行了一般就是被测试程序CRASh了 2、设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定crash 原因 黑盒测试的缺点 1、结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG 的东西很值得借鉴 2、没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作 3、就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的tEStcase造成的问题。这些在堆的问题中表现的更为突出。 黑盒测试(功能测试工具的选择 那么,如何高效地完成功能测试?选择一款合适的功能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。尽管现阶段存在少数不采用任何功能测试工具,从事功能测试外包项目的软件服务企业。短期来看,这类企业盈利状况尚可,但长久来看,它们极有可能被自动化程度较高的软件服务企业取代。 目前,用于功能测试的工具软件有很多,针对不同架构软件的工具也不断推陈出新。这里重点介绍的是其中一个较为典型自动化测试工具,即Mercury公司的WinRunner。 WinRunner是一种用于检验应用程序能否如期运行的企业级软件功能测试工具。通过自动捕获、检测和模拟用户交互操作,WinRunner能识别出绝大多数软件功能缺陷,从而确保那些跨越了多个功能点和数据库的应用程序在发布时尽量不出现功能性故障。 WinRunner的特点在于:与传统的手工测试相比,它能快速、批量地完成功能点测试;能针对相同测试脚本,执行相同的动作,从而消除人工测试所带来的理解上的误差;此外,它还能重复执行相同动作,测试工作中最枯燥的部分可交由机器完成;它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,通过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用;它针对于大多数编程语言和Windows技术,提供了较好的集成、支持环境,这对基于Windows平台的应用程序实施功能测试而言带来了极大的便利。 WinRunner的工作流程大致可以分为以下六个步骤: 1.识别应用程序的GUI 在WinRunner中,我们可以使用GUI Spy来识别各种GUI对象,识别后,W inRunner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Gl obal GUI Map File和GUI Map File per Test。其最大区别是后者对每个测试脚本产生一个GUI文件,它能自动建立、存储、加载,推荐初学者选用这种模式。但是,这种模式不易于描述对象的改变,其效率比较低,因此对于一个有经验的测试人员来说前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。 2.建立测试脚本 在建立测试脚本时,一般先进行录制,然后在录制形成的脚本中手工加入需要的TSL(与C语言类似的测试脚本语言。录制脚本有两种模式: Context S ensitive和Analog,选择依据主要在于是否对鼠标轨迹进行模拟,在需要回放时一般选用Analog。在录制过程中这两种模式可以通过F2键相互切换。 只要看看现代软件的规模和功能点数就可以明白,功能测试早已跨越了单靠手工敲敲键盘、点点鼠标就可以完成的阶段。而性能测试则是控制系统性能的有效手段,在软件的能力验证、能力规划、性能调优、缺陷修复等方面都发挥着重要作用。 3.对测试脚本除错(debug 在WinRunner中有专门一个Debug TOOlbar用于测试脚本除错。可以使用s tep、pause、breakpoint等来控制和跟踪测试脚本和查看各种变量值。 4.在新版应用程序执行测试脚本 当应用程序有新版本发布时,我们会对应用程序的各种功能包括新增功能进行测试,这时当然不可能再来重新录制和编写所有的测试脚本。我们可以使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工作。可以使用一个call命令来加载各测试脚本。还可在call命令中加各种TSL脚本来增加批量能力。 5.分析测试结果 分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。 6.回报缺陷(defect 在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。 常用的功能测试方法 功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下: 1、页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。 2、相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。 3、检查按钮的功能是否正确:如update, cancel, delete, SAve等功能是否正确。 4、字符串长度检查:输入超出需求所说明的字符串长度的内容,看系统是否检查字符串长度,会不会出错。 5、字符类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型,看系统是否检查字符类型,会否报错。 6、标点符号检查:输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。 7、中文字符处理:在可以输入中文的系统输入中文,看会否出现乱码或出错。 8、检查带出信息的完整性:在查看信息和update信息时,查看所填写的信息是不是全部带出。,带出信息和添加的是否一致 9、信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理。 10、检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理。 11、检查添加和修改是否一致:检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型。 12、检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错。同时,也要注意,会不会报和自己重名的错。 13、重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。 14、检查多次使用back键的情况:在有back的地方,back,回到原来页面,再back,重复多次,看会否出错。 15、search检查:在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确。如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确。 16、输入信息位置:注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。 17、上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。 18、必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加* 19、快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。 20、回车键检查:在输入结束后直接按回车键,看系统处理如何,会否报错。 再谈黑盒测试和白盒测试 黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。 采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。 黑盒测试试图发现以下类型的错误: 1功能错误或遗漏; 2界面错误; 3数据结构或外部数据库访问错误; 4性能错误; 5初始化和终止错误。 一、黑盒测试的测试用例设计方法 ·等价类划分方法 ·边界值分析方法 ·错误推测方法 ·因果图方法 ·判定表驱动分析方法 ·正交实验设计方法 ·功能图分析方法 等价类划分: 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集,然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 1 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能. 无效等价类:与有效等价类的定义恰巧相反. 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性. 2划分等价类的方法:下面给出六条确定等价类的原则. ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类. ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类. ④在规定了输入数据的一组值(假定n个,并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类. ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则和若干个无效等价类(从不同角度违反规则. ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类. 3设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类: 输入条件有效等价类无效等价类 ... ... ... ... ... ... 然后从划分出的等价类中按以下三个原则设计测试用例: ①为每一个等价类规定一个唯一的编号. ②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止. ③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止. 边界值分析法 边界值分析方法是对等价类划分方法的补充. (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,故有种规则. ②列出所有的条件桩和动作桩. ③填入条件项. ④填入动作项.等到初始判定表. ⑤简化.合并相似规则(相同动作. B. Beizer 指出了适合使用判定表设计测试用例的条件: ①规格说明以判定表形式给出,或很容易转换成判定表. ②条件的排列顺序不会也不影响执行哪些操作. ③规则的排列顺序不会也不影响执行哪些操作. ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则. ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要. 黑盒测试的优点 1. 基本上不用人管着,如果程序停止运行了一般就是被测试程序crash 了 2. 设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定cras h原因 黑盒测试的缺点 1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG 的东西很值得借鉴 2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作 3. 就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的testcase造成的问题。这些在堆的问题中表现的更为突出。 黑盒测试(功能测试工具的选择 那么,如何高效地完成功能测试?选择一款合适的功能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。尽管现阶段存在少数不采用任何功能测试工具,从事功能测试外包项目的软件服务企业。短期来看,这类企业盈利状况尚可,但长久来看,它们极有可能被自动化程度较高的软件服务企业取代。 目前,用于功能测试的工具软件有很多,针对不同架构软件的工具也不断推陈出新。这里重点介绍的是其中一个较为典型自动化测试工具,即Mercury 公司的WinRunner。 WinRunner是一种用于检验应用程序能否如期运行的企业级软件功能测试工具。通过自动捕获、检测和模拟用户交互操作,WinRunner能识别出绝大多数软件功能缺陷,从而确保那些跨越了多个功能点和数据库的应用程序在发布时尽量不出现功能性故障。 WinRunner的特点在于: 与传统的手工测试相比,它能快速、批量地完成功能点测试; 能针对相同测试脚本,执行相同的动作,从而消除人工测试所带来的理解上的误差; 此外,它还能重复执行相同动作,测试工作中最枯燥的部分可交由机器完成; 它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,通过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用; 它针对于大多数编程语言和Windows技术,提供了较好的集成、支持环境,这对基于Windows平台的应用程序实施功能测试而言带来了极大的便利。 WinRunner的工作流程大致可以分为以下六个步骤: 1.识别应用程序的GUI 在WinRunner中,我们可以使用GUI Spy来识别各种GUI对象,识别后,WinRu nner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Global GUI Map File和GUI Map File per Test。其最大区别是后者对每个测试脚本产生一个GUI文件,它能自动建立、存储、加载,推荐初学者选用这种模式。但是,这种模式不易于描述对象的改变,其效率比较低,因此对于一个有经验的测试人员来说前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。 2.建立测试脚本 在建立测试脚本时,一般先进行录制,然后在录制形成的脚本中手工加入需要的TSL(与C语言类似的测试脚本语言。录制脚本有两种模式: Context Sensit ive和Analog,选择依据主要在于是否对鼠标轨迹进行模拟,在需要回放时一般选用Analog。在录制过程中这两种模式可以通过F2键相互切换。 只要看看现代软件的规模和功能点数就可以明白,功能测试早已跨越了单靠手工敲敲键盘、点点鼠标就可以完成的阶段。而性能测试则是控制系统性能的有效手段,在软件的能力验证、能力规划、性能调优、缺陷修复等方面都发挥着重要作用。 3.对测试脚本除错(debug 在WinRunner中有专门一个Debug Toolbar用于测试脚本除错。可以使用step、pause、breakpoint等来控制和跟踪测试脚本和查看各种变量值。 4.在新版应用程序执行测试脚本 当应用程序有新版本发布时,我们会对应用程序的各种功能包括新增功能进行测试,这时当然不可能再来重新录制和编写所有的测试脚本。我们可以使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工作。可以使用一个cal l命令来加载各测试脚本。还可在call命令中加各种TSL脚本来增加批量能力。 5.分析测试结果 分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。 6.回报缺陷(defect 在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。 白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求, 结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 白盒测试的概述 由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。 白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。 白盒的测试用例需要做到: ·保证一个模块中的所有独立路径至少被使用一次 ·对所有逻辑值均需测试 true 和 false ·在上下边界及可操作范围内运行所有循环 ·检查内部数据结构以确保其有效性 白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。 白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。 白盒测试的实施步骤: 1.测试计划阶段:根据需求说明书,制定测试进度。 2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。 3.测试执行阶段:输入测试用例,得到测试结果。 4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。 白盒测试的方法:总体上分为静态方法和动态方法两大类。 静态分析是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后 , 对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。 白盒测试的优缺点 1. 优点 ·迫使测试人员去仔细思考软件的实现 ·可以检测代码中的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服