软件系统测试规范
软件测试中的测试规范与流程

软件测试中的测试规范与流程在软件开发过程中,软件测试是不可或缺的步骤。
合格的软件测试需要遵循测试规范和流程,以保证测试结果的真实可靠性。
本文将介绍软件测试中常用的测试规范和流程,希望对软件行业工作者有所帮助。
一、测试规范1、IEEE829标准IEEE829标准是软件测试最基础的规范,它规定了测试文档应该包括哪些内容。
这些内容包括:测试计划、测试设计、测试用例、测试执行、测试结果等等。
按照这个标准进行软件测试能够更加有条理和系统化,同时也能为软件开发中的各方提供更详细、更具说服力的测试报告。
2、ISO9126标准ISO9126标准是关于软件产品质量的国际标准,它定义了软件的6个方面,包括功能性、可靠性、可用性、效率、可维护性和可移植性。
在软件测试中,按照ISO9126标准进行测试能够更有针对性地挖掘出软件产品中的问题点,以提升产品品质。
3、ISTQB标准ISTQB标准是国际软件测试人员资格认证机构定义的标准,它规定了软件测试人员的知识体系和技能要求,包括测试基础知识、测试设计、测试执行、缺陷管理等方面。
软件测试人员按照ISTQB标准进行测试,能够更加规范、严谨,提高测试效率和测试质量。
二、测试流程1、测试计划阶段在测试计划阶段,测试人员需要根据软件开发计划,制定出测试计划。
测试计划应该包括测试范围、测试目标、测试资源、测试时间安排、测试策略等内容,并根据具体的项目实践进行调整。
2、测试设计阶段在测试设计阶段,测试人员需要根据测试计划制定测试设计。
测试设计应该包括测试目标、测试用例、测试场景等内容,并根据具体的软件需求进行设计调整。
在测试设计阶段,测试人员应该与需求方、开发人员等进行充分的沟通,以保证测试设计的全面性和可靠性。
3、测试准备阶段在测试准备阶段,测试人员需要准备好测试环境、测试数据等测试资源,并根据测试设计编写出测试用例。
在测试准备阶段中,需对测试用例进行代码审核以及代码评审,以提高测试用例的覆盖率和可靠性。
计算机软件测试规范

计算机软件测试规范计算机软件测试规范是指对软件测试过程中应遵循的一系列规则和要求的描述。
它的目的是确保软件测试的效率和质量,提高软件产品的稳定性和可靠性。
下面是一份计算机软件测试规范的示例,包括测试计划、测试用例设计、测试执行、缺陷管理等方面的规定。
一、测试计划1. 编制详细的测试计划,明确测试的目标、范围、资源和进度。
2. 测试计划应根据实际项目情况进行调整和更新。
二、测试准备1. 确定测试环境,并对测试环境和系统进行合理的配置和准备。
2. 确保测试所需的测试数据准备就绪。
3. 检查测试工具和相关软件是否安装完整并正常运行。
三、测试用例设计1. 根据需求规格说明书设计测试用例,确保覆盖功能点和场景。
2. 测试用例应具有可执行性、可复现性和可验证性。
3. 设计测试用例时应注重划分等价类和边界条件的测试用例。
四、测试执行1. 根据测试计划进行测试用例的执行,并记录测试结果。
2. 在测试执行过程中要及时进行测试记录和缺陷报告,并将缺陷报告提交给相关人员进行处理。
3. 当测试遇到问题时,应及时与相关人员沟通解决。
五、缺陷管理1. 对测试中发现的缺陷,应及时记录并进行分类和优先级划分。
2. 缺陷应进行合理的跟踪和管理,直到完成修复并确认已解决。
3. 完成对缺陷的跟踪和管理后,进行缺陷的统计和分析,并提供给相关人员进行参考。
六、测试评审1. 定期进行测试评审,对测试过程和测试结果进行评估和总结,提出测试改进措施的建议。
2. 对测试评审的结果进行记录和归档。
七、测试文档管理1. 对测试过程中产生的所有文档,包括测试计划、测试用例、测试结果、缺陷报告等进行管理和归档。
2. 对测试文档进行版本控制,并进行适当的备份。
八、沟通与协调1. 在测试过程中要与开发人员和其他相关人员进行充分的沟通,及时解决问题和协调工作。
2. 对重要的问题和进展要进行记录和报告。
上述是一份计算机软件测试规范的示例,可以根据具体项目的需求和实际情况进行调整和完善。
软件系统测试规范

软件系统测试规范1. 引言本规范规定软件测试阶段的任务、范围和相关要求,以及软件测试阶段的完成标志,适用于软件测试阶段的所有任务和所有相关人员。
2. 参考文献无。
3. 测试的任务测试在于通过与系统的需求定义做比较,验证程序是否满足软件需求说明书中规定的全部功能和性能要求。
通过测试,尽可能地暴露程序中可能存在的各种类型的错误并纠正错误,最终提交高质量的、符合用户需要的软件。
4. 接收测试的标准(1) 软件开发计划已通过评审;(2) 有完整并且已审核通过的软件需求文档;(3) 软件提交测试后,如果软件界面有明显超过10处错误或者软件基本功能有明显超过10处严重或重要错误,测试组有权退回待测软件,停止测试,待开发组提高程序质量后再重新提交测试申请继续测试。
5. 测试的范围测试阶段需完成的有:功能测试,用户界面测试,性能测试,安装卸载测试,安全性测试,配置测试,数据和数据库完整性测试,业务周期测试。
系统测试阶段推荐完成的测试有:文档测试,故障转移和恢复测试,可靠性测试。
不同的项目和产品可以对以上测试范围做适当剪裁,但必须在测试计划中说明剪裁的原因。
6. 总体要求6.1. 测试计划“软件测试计划”采用“软件测试计划”模板编写。
6.2. 测试设计6.2.1. 工具采用Microsoft word, Microsoft excel工具进行测试用例的设计、开发与管理。
6.2.2. 测试用例基本组成要素与填写规则要素是否必填说明测试用例编号必填测试用例编号根据需要编号来设定测试用例名称必填尽量概括测试用例内容,语义完整测试用例描述测试用例名称不能完整概括测试用例内容时,在此栏中进行描述;测试前置条件必填填写测试用例执行前所必须执行的准备事项,是测试用例正常执行的前提;测试后置条件必填填写测试用例执行后要使被测系统恢复到用例执行前状态的一系列操作;是保证其他测试用例正常运行的前提;测试步骤必填外部相关文档测试用例中如引用其他外部文档时,需注明详见“软件测试用例”样表。
软件测试标准规范

软件测试标准规范软件测试是软件开发过程中至关重要的一环,通过对软件进行全面、系统的测试,可以有效地发现和修复软件中的缺陷,保证软件的质量和稳定性。
为了规范软件测试工作,提高测试效率和质量,制定软件测试标准规范是非常必要的。
一、测试范围。
软件测试范围应包括但不限于功能测试、性能测试、安全测试、兼容性测试等,确保覆盖到软件的各个方面,以保证软件的全面性和完整性。
二、测试计划。
在软件测试开始之前,应制定详细的测试计划,包括测试的时间安排、资源分配、测试环境的搭建等内容,确保测试工作有条不紊地进行。
三、测试用例设计。
测试用例是软件测试的重要工作内容,应根据需求和设计文档编写全面、有效的测试用例,覆盖到软件的各个功能点和场景,以确保测试的全面性和有效性。
四、测试执行。
在测试执行阶段,应按照测试计划和测试用例进行测试,对软件的各个功能进行全面、系统的验证,发现并记录软件中存在的缺陷。
五、缺陷管理。
对于在测试过程中发现的缺陷,应及时记录、跟踪和管理,确保每个缺陷都得到妥善处理和解决,以提高软件的质量和稳定性。
六、测试报告。
在测试完成后,应编写详细的测试报告,包括测试的结果、发现的缺陷、解决情况等内容,为软件的改进和优化提供参考依据。
七、测试验收。
在软件测试完成后,应进行测试验收工作,确保软件测试工作的有效性和完整性,为软件的上线提供保障。
八、测试工具。
在软件测试过程中,可以借助各种测试工具提高测试效率和质量,但在选择和使用测试工具时,应慎重考虑,确保测试工具的稳定性和有效性。
总之,软件测试标准规范对于提高软件质量和稳定性具有重要意义,只有严格遵守软件测试标准规范,才能有效地保证软件的质量和用户体验。
希望各位测试人员能够严格遵守软件测试标准规范,为软件的质量和稳定性贡献自己的一份力量。
软件测试流程规范最全

软件测试流程规范最全软件测试流程是指在软件开发过程中,通过对软件的功能、性能、质量等方面进行验证和检测,确保软件的稳定性和可靠性的一系列步骤和规范。
一个完善的软件测试流程可以帮助开发团队更好地发现和修复软件中的问题,提高软件的质量和用户体验。
下面是一个较为全面的软件测试流程规范,详细说明了每个阶段的任务和要求。
1.需求分析阶段在需求分析阶段,测试团队应该与业务分析人员一起参与需求讨论和分析工作,明确需求背景、功能要求和性能需求等。
测试团队应该对需求文档进行评审,确保需求的完整性和可测试性。
2.测试计划编制阶段在测试计划编制阶段,测试团队应该根据需求分析结果和软件开发进度制定测试计划。
测试计划应该包括测试目标、测试范围、测试策略、测试环境等内容。
测试计划还应该确定测试工具的选择和测试资源的分配。
3.测试用例设计阶段在测试用例设计阶段,测试团队根据需求文档和测试计划编制测试用例。
测试用例应该覆盖所有的功能点和场景,并包含预期结果。
测试用例设计应遵循等价类分析、边界值分析、场景分析等原则。
4.测试环境搭建阶段在测试环境搭建阶段,测试团队应该根据测试计划的要求搭建相应的测试环境。
测试环境应该与实际运行环境相同或相似,包括硬件设备、操作系统、数据库等。
测试环境应该保持稳定和可重复性。
在静态测试阶段,测试团队对设计文档、代码和其他文档进行静态测试。
静态测试可以帮助发现和修复设计和实现中的问题,提高软件的质量和可维护性。
静态测试方法包括代码审查、文档审查等。
6.单元测试阶段在单元测试阶段,开发人员对各个单位模块进行测试,以验证其功能的正确性和稳定性。
单元测试应该覆盖模块的各种路径和情况,使用合适的测试工具和框架进行测试。
单元测试应该在编码完成后立即进行。
7.集成测试阶段在集成测试阶段,各个模块进行集成和测试。
集成测试应该覆盖各个模块之间的接口和交互,以验证模块的正确集成。
集成测试应该从小规模的集成开始,逐渐扩大规模,确保各个模块的稳定性和一致性。
计算机软件测试规范

计算机软件测试规范计算机软件测试规范是指在进行软件测试过程中所需要遵守的一系列规范和标准,它能够确保测试工作的质量和效率,提高软件的稳定性和可靠性。
下面将详细介绍计算机软件测试规范。
一、测试准备规范1. 定义测试目标和范围,明确测试的重点和测试的边界。
2. 根据需求文档和设计文档编写测试用例,确保测试用例的完整性和准确性。
3. 确定测试环境和测试工具,包括硬件环境、操作系统和网络环境。
4. 准备测试数据,包括正常数据、边界数据和异常数据。
二、测试执行规范1. 执行测试用例,按照测试计划进行测试,确保每个测试用例都得到执行。
2. 记录测试结果,包括测试用例的执行结果和测试中发现的问题。
3. 对测试中发现的问题进行分类和优先级排序,确保问题的准确性和重要性。
4. 及时反馈测试结果,包括测试报告和问题报告,确保测试结果的及时性和准确性。
三、问题管理规范1. 对于测试中发现的问题,及时进行记录和跟踪,确保问题的准确性和完整性。
2. 对问题进行分类和优先级排序,根据问题的严重程度和影响范围进行优先处理。
3. 每个问题都应该有唯一的标识符,方便追踪和统计问题的处理情况。
4. 对问题的处理情况进行记录和统计,包括问题的解决时间和解决方案。
四、测试评审规范1. 在测试之前和测试之后进行测试评审,确保测试的全面性和有效性。
2. 对测试计划和测试用例进行评审,确保测试的完整性和准确性。
3. 对测试结果和问题报告进行评审,确保问题的准确性和处理情况的合理性。
4. 对测试过程和测试方法进行评审,确保测试的规范性和标准化。
五、测试验收规范1. 根据测试计划和测试报告进行测试验收,确保测试的有效性和可靠性。
2. 验收测试结果和问题处理情况,确保问题的解决情况和产品的质量。
3. 对测试报告进行评审和归档,为后续的版本迭代和项目复盘提供参考。
4. 在测试验收过程中进行总结和反馈,为下一次测试工作提供经验和教训。
总结起来,计算机软件测试规范包括测试准备规范、测试执行规范、问题管理规范、测试评审规范和测试验收规范等方面的内容。
计算机软件测试规范

持续的测试和改进可以提高软件的可靠性和稳定性,减少软件故障和意外停机时间。
提高软件可靠性
对软件的功能、性能和安全性等方面进行评估和验证的过程,以确保软件满足用户需求和质量标准。
软件测试
测试用例
测试环境
为评估软件的不同方面而设计的输入和预期输出的示例,用于验证软件是否符合预期要求。
用于测试软件的计算机硬件和软件配置,以确保测试结果的准确性和可重复性。
测试计划审批流程
在开始测试之前,测试计划应经过相关团队的审批和确认,以确保其准确性和可行性。
报告结构
测试报告应包括简洁明了的标题、目录、概述、方法和结果等部分。
报告内容
报告应详细描述测试过程、结果、缺陷分析和建议等内容。
报告格式
报告的格式应清晰、易于阅读和理解,包括图表、表格和图片等。
01
缺陷概述:缺陷报告应首先简要概述发现的问题及其影响。
TestNG
LoadRunner
开源的负载和性能测试工具,适用于Web应用程序和各种服务的性能测试。
JMeter
Gatling
基于Scala的高性能负载测试工具,支持多种HTTP协议和场景。
支持多种协议和应用类型,提供虚拟用户和负载生成器,模拟高并发负载场景。
开源的网络扫描和安全审计工具,可用于发现网络服务和漏洞。
03
02
01
本测试规范适用于对计算机软件的功能、性能和安全性等方面的测试。
规范范围
本规范不适用于非计算机软件方面的测试,如硬件、网络等。此外,本规范也不涉及特定行业或领域的特定要求和标准。
规范限制
02
CHAPTER
测试目标和原则
确保软件功能符合需求和用户期望
《软件测试规范》

《软件测试规范》《软件测试规范》(草案)Computer Software Testing Criterion⼀、⽬的与适⽤范围1、⽬的软件测试是软件⼯程的重要组成部分,测试⼯作的质量直接影响软件产品的⽣命⼒。
测试⼯作的标准化是软件质量保证(Quality Assurance)重要⽽且必须的环节。
制定本标准的⽬的在于使测试流程更标准,测试过程更规范。
从⽽使整个软件⽣产纳⼊更系统化、更专业化的轨道。
2、适⽤范围本标准适⽤于软件测试流程的管理和测试的具体操作过程。
本标准的使⽤者可以是企业内部的测试⼈员和开发⼈员。
⼆、测试⽅法软件测试的⽅法和技术是多种多样的。
以下将介绍⽐较常⽤的⼀些测试⽅法:1、静态测试静态⽅法是指不运⾏被测程序本⾝,仅通过分析或检查源程序的⽂法、结构、过程、接⼝等来检查程序的正确性。
静态⽅法通过程序静态特性的分析,找出⽋缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分⽀嵌套、不允许的递归、未使⽤过的变量、空指针的引⽤和可疑的计算等。
静态测试结果可⽤于进⼀步的查错,并为测试⽤例选取提供指导。
2、动态测试动态⽅法是指通过运⾏被测程序,检查运⾏结果与预期结果的差异,并分析运⾏效率和健壮性等性能,这种⽅法由三部分组成:构造测试实例、执⾏程序、分析程序的输出结果。
3、⿊盒测试⿊盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使⽤,在测试时,把程序看作⼀个不能打开的⿊盆⼦,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接⼝进⾏测试,它只检查程序功能是否按照需求规格说明书的规定正常使⽤,程序是否能适当地接收输⼊数锯⽽产⽣正确的输出信息,并且保持外部信息(如数据库或⽂件)的完整性。
⿊盒测试⽅法主要有等价类划分、边值分析、因—果图、错误推测等,主要⽤于软件确认测试。
“⿊盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界⾯和软件功能进⾏测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海兴汉科技公司软件测试规范目录一.概述本规范是对项目软件测试的一份指导性文件,对软件测试过程中所涉及到的测试理论、测试类型、测试方法、测试标准、测试流程以及软件产品开发单位所承担的职责进行总体规范,以有效保证软件产品的质量。
1.什么是软件测试无论怎样强调软件测试的重要性和它对软件可靠性的影响都不过分。
在开发大型软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,在软件生命周期的每个阶段都不可避免地会产生差错。
我们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正差错;但是,经验表明审查并不能发现所有差错,此外在编码过程中还不可避免地会引入新的错误。
如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错迟早会在生产过程中暴露出来,那时不仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。
测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。
目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
软件测试在软件生命周期中横跨两个阶段。
通常在编写出每个模块之后就对它做必要的测试(称为单元测试),模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一个阶段。
在这个阶段结束之后,对软件系统还应该进行各种综合测试,这是软件生命周期中的另一个独立的阶段,通常由专门的测试人员承担这项工作。
大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40%以上,在极端情况,测试那种关系人的生命安全的软件所花费的成本,可能相当于软件工程其他开发步骤总成本的三倍到五倍。
因此,必须高度重视软件测试工作,绝不要以为写出程序之后软件开发工作就接近完成了,实际上,大约还有同样多的开发工作量需要完成。
仅就测试而言,它的目标是发现软件中的错误,但是,发现错误并不是我们的最终日的。
软件工程的根本目标是开发出高质量的完全符合用户需要的软件。
2.软件测试的目标下面这些规则也可以看作是测试的目标或定义:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。
从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。
这和某些人通常想象的“测试是为了表明程序是正确的”,“成功的测试是没有发现错误的测试”等等是完全相反的。
正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。
如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。
因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。
此外,应该认识到测试决不能证明程序是正确的。
即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。
测试只能查找出程序中的错误,不能证明程序中没有错误。
1.软件测试流程图2.项目开发组对完成的功能模块进行单元测试所有单元测试及相应的修改完成后,项目开发组组织进行集成测试测试阶段:项目开发组完成集成测试后,提交测试所要求的待测软件及各种文档、手册、前期测试报告(《需求分析》、《软件设计规范》。
测试组安排和协调测试设备、环境等准备工作。
测试组按测试计划、测试用例的要求对被测系统进行系统测试。
填写《错误报告》对修改后的情况进行回归测试。
测试结束后,测试人员对测试结果进行汇总;测试主管审核测试结果,得出测试结论;测试组进行测试分析和评估,编写《测试总结报告》提交《测试总结报告》。
对测试未通过的待测软件,测试人员汇总并向项目开发组提交测试错误报告。
项目开发组对测试错误报告进行确认,对有争议的问题可由上一级技术负责人确认和仲裁;项目开发组针对测试错误报告进行逐项修改,修改完成后再将待测软件及错误修改情况提交及测试组进行回归测试。
待测软件测试通过后,项目测评结束。
3.软件测试注意事项根据《软件开发规范》仔细检查软件的界面是否合乎要求。
(每一个子界面也应如此)其中,应注意提示信息和软件开发商信息是否正确。
小的图标是否合乎要求。
检查菜单当中的各项功能和功能按钮是否能正确使用。
根据《软件开发规范》和《用户需求》及《软件详细设计》设计测试用例(以边界值法、等价类划分法为主)。
对功能界面要求注意与功能相关的信息显示及显示位置是否正确。
数据输入界面应注意文字格式及数字和文字的区别。
是否能够正确保存信息。
数据查询(显示)界面应注意显示信息是否正确和完整。
是否能正确查询。
对打印功能要求注意打印出的报表是否正确。
(包括报表各项信息、数据信息和报表字体等)。
这一项测试主要是对软件的错误处理功能进行测试。
就是进行错误的操作或输入错误的数据,检查软件对这些情况是否能做出判断并予以提示。
特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。
一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
对测试错误结果一定要有一个确认的过程。
一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。
制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。
四.软件测试类型除非是测试一个小程序,否则一开始就把整个系统作为一个单独的实体来测试是不现实的。
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。
大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。
因此,大型软件系统的测试基本上由下述几个步骤组成:1.模块测试在设计得好的软件系统中,每个模块完成一个清晰定义的子功能,而且这个子功能和同级其他模块的功能之间没有相互依赖关系。
因此,有可能把每个模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确性的测试方案。
模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。
在这个测试步骤中所发现的往往是编码和详细设计的错误。
2.子系统测试子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。
模块相互间的协调和通信是这个测试过程中的主要问题,因此这个步骤着重测试模块的接口。
3.系统测试系统测试是把经过测试的于系统装配成一个完整的系统来测试。
在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。
在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。
4.验收测试验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要处理的信息)进行测试。
验收测试的目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。
五.黑盒测试方法黑盒测试(black—box testing)又称功能测试、数据驱动测试或基于规范的测试。
用这种方法进行测试时,被测程序被当作看不见内部的黑盒。
在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。
因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对。
完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。
由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试。
黑盒测试首先是程序通常的功能性测试。
要求:每个软件特性必须被一个测试用例或一个被认可的异常所覆盖。
用数据类型和数据值的最小集测试。
用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果;用假想的数据类型和数据值运行,测试排斥不规则输入的能力;对影响性能的关键模块,如基本算法、应测试单元性能(包括精度、时间、容量等)。
不仅要考核“程序应该做什么”还要考察“程序是否做了不该做的2”同时还要考察程序在其他一些情况下是否正常。
这些情况包括数据类型和数据值的异常等等。
下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分析法,(d)猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试。
每一个方法都力图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会得到一个较好的测试用例集。
1.等价类划分等价类划分是一种典型的黑盒测试方法。
等价类是指某个输入域的集合。
它表示对揭露程序中的错误来说,集合中的每个输入条件是等效的。
因此我们只要在一个集合中选取一个测试数据即可。
等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试用例。
这样就可使用少数测试用例检验程序在一大类情况下的反映。
在考虑等价类时,应该注意区别以下两种不同的情况:有效等价类:有效等价类指的是对程序的规范是有意义的、合理的输入数据所构成的集合。
在具体问题中,有效等价类可以是一个,也可以是多个。
无效等价类:无效等价类指对程序的规范是不合理的或无意义的输入数据所构成的集合。
对于具体的问题,无效等价类至少应有一个,也可能有多个。
确定等价类有以下几条原则:如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。
例如,程序的规范中提到的输入条包括“……项数可以从1到999……”,则可取有效等价类为“l考项数<999”,无效等价类为“项数<l,,及“项数>999”。
输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。
如某程序涉及标识符,其输入条件规定“标识符应以字母开头……”则“以字母开头者”作为有效等价类,“以非字母开头”作为无效等价类。
如果我们确知,已划分的等价类中各元素在程序中的处理方式是不同的,则应将此等价类进一步划根据已列出的等价类表,按以下步骤确定测试用例:为每个等价类规定一个唯一的编号;设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。
重复这一步,最后使得所有有效等价类均被测试用例所覆盖;设计一个新的测试用例,使其只覆盖一个无效等价类。