1、概念数据库
黑盒测试也称为功能测试,他是经过测试来检测每一个功能是否能正常使用。在测试中,把程序看做一个不能打开的黑盒子,在彻底不考虑程序内部结构和内部特性的状况下,在程序接口进行测试,它只检测程序功能是否按照需求规格说明说的规定正常使用,程序是否能适当地接收输入数据而产生正常的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。编程
黑盒测试是以用户的角度,从输入数据与输出数据的的对应关系出发进行测试,很明显,若是外部设计自己存在问题,或者需求规格说明的规定有误,黑盒测试是发现不了的。windows
2、做用安全
黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。编程语言
功能不正确或者遗漏工具
界面错误性能
输入和输出错误单元测试
数据库访问错误测试
性能错误spa
初始化和终止错误
3、测试方法
从理论上讲,黑盒测试只采用穷举测试,把全部可能的输入都做为测试状况考虑,才能查出程序中全部的错误。实际上测试状况有无穷多个,不只要测试合法的输入,并且还要对那些不合法但可能的输入进行测试。这样看来,安全测试是不可能的,因此咱们要进行有针对性的测试,经过制定测试案例指导测试的实施,有组织,有计划,按步骤的进行。
黑盒测试行为必须可以加以量化,才能保证软件质量,而测试用例就是将测试具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、断定表驱动法、正交实验设计法、功能图法、场景法等。
1.等价类划分法
等价类划分法是把程序的输入分为若干类(子集),而后每一类中选取少数表明性数据做为测试用例。每一类的表明性数据在测试中的做用等价于这一类中的其余值。该方法事一种重要且经常使用的测试用例设计方法。
划分等价类
等价类是指某个输入域的集合。在该子集中,各个输入对于揭露程序中的错误是等价的,并合理的假定:测试某等价类的值,就表明测试这个等价类,因此把所有输入划分为若干个等价类,在没一个等价类中选取一个数据做为测试用例,就能够用少许表明性的测试数据取得较好的测试结果,等价类划分有两种不一样的状况:有效等价类和无效等价类 。
有效等价类:是指对于程序的规格说明来讲是合理的,有意义的输入数据构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的的功能和性能。
无效等价类:是指对程序来讲不合理、无心义的输入数据的集合。
2.边界值分析法
边界值分析是经过选择等价类边界的测试用例。边界值分析法不只考虑输入数据的边界,并且也必须考虑输出域的边界。它是对等价类划分法的补充。
3.错误推测法
错误推测法是基于经验和直觉推测程序中全部可能出现的各类错误,从而针对错误设计测试用例的方法。
错误推测法的基本思想:列举出程序中全部可能出现的错误或者容易发生错误的状况,根据他们选择测试用例。例如在单元测试时,曾列出的许多在模块中常见的错误,之前产品测试中曾经发生的错误等,这些就是经验的总结。还有输入数据和输出数据为0的状况,输入表格为空格或输入表格只有一行,这些都是容易发生错误的状况。可选择这些状况下的例子做为测试用例。
4.因果图法
等价类划分法和边界值法都是着重考虑输入条件,但未考虑输入条件之间的联系及相互组合等。考虑输入条件的之间的相互结合,可能会产生一些新的状况,但要检查输入条件的结合不是一件容易的事情,即便把全部输入条件划分红等价类,他们之间的结合状况也至关多,所以必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动做的形式考虑设计测试用例,这就须要利用因果图(逻辑模型)。
因果图法最终生成的就是断定表。它适合于检查程序输入条件的各类组合状况。
正交试验设计
就是使用已经造好了的正交
表格来安排试验并进行数据分析的一种方法,目的是用最少的
测试用例达到最高的测试覆盖率。
场景法
软件几乎都是用事件触发来控制流程的,事件触发的情景
基本流和备选流
便造成了场景,而同一事件不一样的触发顺序和处理结果就造成事件流。这种在软件设计方面的思想也能够引入到软件测试中,能够比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
4、测试流程
测试计划——测试设计——测试开发——测试执行——测试评估
测试计划
首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制定黑盒测试的最高标准,之后全部的测试工做都将围绕着测试需求进行,符合测试需求的的应用程序便是合格的,反之便是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
测试设计
将测试计划阶段制定的测试需求分解、细化为若干个可执行的测试过程,并为每一个测试过程选择适当的测试用例,测试用例选择的好坏将直接影响到测试结果的有效性。
测试开发
创建可重复使用的自动测试过程。
测试执行
执行测试开发阶段创建的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行通常由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学的态度,一步一个脚印的测试。
测试评估
结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工做进度及工做效率进行评估评价。
5、黑盒测试的优势
1.基本上不用人管着,若是程序中止运行了通常就是被测试程序crash了。
2.设计完测试用例以后,下来的工做就是爽了,固然更苦闷的是肯定crash缘由。
6、缺点
1.结果取决于测试用例的设计,测试用例的设计部分优点来源于经验,OUSPG的东西很值得借鉴
2.没有状态转换的概念,一些成功的例子基本上都是针对PDU来作的,还作不到针对被测试程序的状态转换来实现
3.就没有状态概念的测试来讲,寻找和肯定形成程序crash的测试用例是个麻烦事情,必须把周围可能的测试用例单独确认一遍。而就有状态的测试来讲,就更麻烦,尤为不是一个单独的testcase形成是问题。这些在堆的问题中变现更为突出。
7、工具选择
这里介绍一个较为经典的自动化测试工具,即Mercury公司的WinRunner。
WinRunner是一种用于检测程序可否正常运行的企业级功能测试工具。经过自动捕捉、检测和模拟用户交互操做,WinRunner能识别绝大多数软件功能缺陷,从而确保那些跨越了多个功能点和数据库的应用程序在发布时尽可能不出现功能性故障。
WinRunner的特色在于:与传统的手工测试相比,它能快速、批量地完成功能点测试;能针对相同测试脚本,执行相同的动做,从而消除人工测试所带来的理解上的偏差;此外,它还能重复执行相同动做,测试工做中最枯燥的部分可交由机器完成;它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,经过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用;它针对于大多数编程语言和windows技术,提供了较好的集成、支持环境、这对于windows平台的应用程序实施功能测试而言带来了极大的便利。
8、工做流程
识别GUI
在WinRunner中,咱们可使用GUI Spy来识别各类GUI对象,识别后,WinRunner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Global GUI Map File和GUI Map File per Test。起最大区别是后者对每一个测试脚本产生一个GUI文件,它能自动创建、存储、加载,推荐初学者选用这种模式。可是这种模式不易于描述对象的改变,其效率比较低,所以对于一个有经验的测试人员来讲前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。
创建测试脚本
在创建测试脚本时,通常先进行录制,而后在录制造成的脚本中手工加入须要的TSL(与c语言相似的测试脚本语言)。录制脚本有两种模式:Context Sensitive和Analog,选择依据主要在因而否对鼠标轨迹进行模拟,在须要回放时通常选用Analog。在录制过程当中这两种模式能够经过F2键相互切换。
脚本除错
在WinRunner中有专门一个Debug Toolbar用于测试脚本除错。可使用step、pause、breakpoint等来控制和追踪测试脚本和查看各类变量值。
测试脚本
当应用程序有新版本发布时,咱们会对应用程序的各类功能包括新增功能进行测试,这时固然不可能再来从新录制和编写全部的测试脚本。咱们可使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工做。可使用一个call命令来加载各测试脚本。还可在call命令中加各类TSL脚原本增长批量能力。
分析测试结果
经过分析能够发现应用程序的各类功能性缺陷。当运行完某个测试脚本后,会产生一个策划报告,从这个测试报告中咱们能发现程序的功能性缺陷,能看到实际结果和指望结果之间的差别,以及在测试工程中产生的各种对话框等。
回报缺陷
在分析完测试报告后,按照测试流程要回报应用程序的各类缺陷,而后将这些确信啊发给指定人,以便进行修复和修护。
9、经常使用方法
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。经常使用的测试方法以下:
一、页面连接检查:每个连接是否都有对应的页面,而且页面之间切换正确。
二、相关性检查:删除/增长一项会不会对其余项产生影响,若是产生影响,这些影响是否都正确。
三、检查按钮的功能性是否正确:如update,cancel,delete,save等功能是否正确。
四、字符串长度检查:输入超出需求所说明的字符串长度的内容,看系统是否检查字符串长度,会不会出错。
五、字符类型检查:在应该输入指定内容的地方输入其余类型的内容(如在应该输入整型的地方输入其余字符类型),看系统是否检查字符类型,会否报错。
六、标点符号检查:输入内容包括各类标点符号,特别是空格,各类引号,回车键等,看系统处理是否正确。
七、中文字符处理:在能够输入中文的系统输入中文,看会否出现乱码或出错。
八、检查带出信息的完整性:在查看信息和update信息时,查看所填写的信息是否是所有带出.,带出信息和添加的是否一致。
九、信息重复: 在一些须要命名,且名字应该惟一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的先后输入空格,系统是否做出正确处理。
十、检查删除功能:在一些能够一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;而后选择一个和多个信息,进行删除,看是否正确处理。
十一、检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型。
十二、检查修改重名:修改时把不能重名的项改成已存在的内容,看会否处理,报错.同时,也要注意,会不会报和本身重名的错。
1三、 重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否作了处理。
1四、检查屡次使用back键的状况: 在有back的地方,back,回到原来页面,再back,重复屡次,看会否出错。
1五、search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.若是能够输入多个search条件,能够同时添加合理和不合理的条件,看系统处理是否正确。
16.、输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。
1七、上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否可以作到。
1八、必填项检查:应该填写的项没有填写时系统是否都作了处理,对必填项是否有提示信息,如在必填项前加*。
1九、快捷键检查:是否支持经常使用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不容许输入信息的字段,如选人,选日期对快捷方式是否也作了限制。
20、回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错。