软件测试技术知识点整理
测试技术基础知识点总结大全

测试技术基础知识点总结大全1. 软件测试基础知识1.1 测试概述•什么是软件测试?•测试的目的和重要性•测试的原则和准则1.2 测试过程•测试计划和策略•测试用例设计与执行•缺陷管理与跟踪1.3 测试分类•黑盒测试和白盒测试•静态测试和动态测试•功能测试和非功能测试1.4 测试技术•边界值分析和等价类划分•决策表测试•递归测试•循环测试2. 软件开发生命周期2.1 瀑布模型•阶段划分及特点•优点和缺点2.2 增量模型•阶段划分及特点•优点和缺点2.3 迭代模型•阶段划分及特点•优点和缺点2.4 敏捷开发•Scrum•XP•敏捷开发原则3. 软件测试类型3.1 单元测试•概念和目标•优点和缺点•测试工具:JUnit3.2 集成测试•概念和目标•优点和缺点•测试工具:Jenkins3.3 系统测试•概念和目标•优点和缺点•测试工具:Selenium3.4 验收测试•概念和目标•优点和缺点•测试工具:Robot Framework 4. 软件测试设计方法4.1 等价类划分法•原理和应用场景•划分方法和注意事项4.2 边界值分析法•原理和应用场景•划分方法和注意事项4.3 图论法•基本概念和应用场景•图的表示方法和遍历算法4.4 正交实验设计•原理和应用场景•正交表的构建方法和使用方式5. 软件测试管理5.1 测试计划•编制目的和内容•关键要素和注意事项5.2 缺陷管理•缺陷的定义和分类•缺陷管理流程•缺陷跟踪工具5.3 测试评估和报告•测试评估指标•测试报告内容和格式•测试报告的编写和分发以上是测试技术的基础知识点总结大全,包括软件测试基础知识、软件开发生命周期、软件测试类型、软件测试设计方法和软件测试管理等内容。
希望对您的学习和工作有所帮助!。
软件测试基础知识大全(新手入门必备)

✓ 测试用例的设计 – 测试用例的设计是整个软件测试工作的核心 – 测试用例反映对被测对象的质量要求,决定对测试对象的质量评 估
✓ 测试工作的管理 – 尤其是对包含多个子系统的大型软件系统,其测试工作涉及大量 人力和物力,有效的测试工作管理是保证有效测试工作的必要前 提
✓ 测试环境的建立
10.什么是静态测试
静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估. 静态测试包括代码检查、程序结构分析、代码质量度量等。它可以由人工进 行,也可以借助软件工具自动进行
11.手工测试和自动测试
a.手工测试缺点在于测试工作量大,重复多,回归测试难以实现
b.自动测试利用软件测试工具自动实现全部或部分测试工作:管理、设计、 执行和报告;节省大量的测试开销,并能够完成一些手工测试无法实现的测 试
5应追溯到用户需求越早测试越好测试过程与开发过程应是相结合的测试的规模由小而大从单元测试到系统测试为了尽可能地发现错误应该由独立的第三方来测试不能为了便于测试擅自修改程序既应该测试软件该做什么也应该测试软件不该做什么6软件测试的的重点测试用例的设计测试用例的设计是整个软件测试工作的核心测试用例反映对被测对象的质量要求决定对测试对象的质量评估测试工作的管理尤其是对包含多个子系统的大型软件系统其测试工作涉及大量人力和物力有效的测试工作管理是保证有效测试工作的必要前提测试环境的建立测试环境应该与实际测试环境一致7黑盒测试什么是黑盒测试又称功能测试或数据驱动测试
3、软件设计 此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据
库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打 下良好的基础。
4、程序编码 此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码
软件测试各章知识点总结

软件测试各章知识点总结第一章:软件测试概述软件测试是指为了发现软件中的错误和问题,评估软件质量,确保软件功能正常的过程。
软件测试的目的是验证软件是否符合用户的需求和期望,以及确保软件的质量达到一定的标准。
软件测试在整个软件开发过程中起着非常重要的作用,它能够帮助开发团队及时发现和修复问题,提高软件的稳定性和可靠性。
软件测试的基本原则包括全面性、系统性、可靠性和性能。
全面性指测试应该覆盖所有可能的情况,包括正常情况和异常情况;系统性指测试应该以系统为单位进行,而不是单个模块或功能;可靠性指测试结果应该是可靠的、准确的;性能指测试应该关注软件的性能表现。
软件测试的方法可以分为静态测试和动态测试。
静态测试是指在软件开发的早期阶段进行的,包括代码审查、设计审查和使用静态分析工具进行分析。
动态测试是指在软件开发的后期阶段进行的,包括单元测试、集成测试、系统测试和验收测试。
软件测试的类型包括功能测试、性能测试、安全测试、兼容性测试、可靠性测试等。
功能测试是验证软件功能是否符合用户需求的测试;性能测试是验证软件在各种条件下的性能表现的测试;安全测试是验证软件的安全性和可靠性的测试;兼容性测试是验证软件在不同平台和环境下的兼容性的测试;可靠性测试是验证软件的稳定性和可靠性的测试。
第二章:软件测试流程软件测试的流程包括测试计划、测试设计、测试执行、测试评估和测试报告。
测试计划是在测试开始之前进行的,包括确定测试目标、测试方法、测试资源和测试进度。
测试设计是在测试执行之前进行的,包括确定测试用例、测试数据和测试环境。
测试执行是在测试设计之后进行的,包括执行测试用例、记录测试结果和发现问题。
测试评估是在测试执行之后进行的,包括评估测试结果、计算测试覆盖率和分析测试效果。
测试报告是在测试评估之后进行的,包括总结测试结果、提出改进建议和撰写测试报告。
软件测试的自动化是指利用自动化测试工具进行软件测试的过程。
自动化测试包括测试脚本的编写、测试数据的准备和测试环境的配置。
软件测试知识点总结

一、选择题
1.软件测试的主要目的是:
A.证明软件没有错误
B.找出软件中的所有错误(正确答案)
C.证明软件功能完备
D.确保软件满足用户需求
2.下列哪项不属于软件测试的基本原则?
A.避免测试自己编写的程序
B.设计测试用例时,应充分考虑合理和不合理的输入条件(正确答案应为需要考虑的
方面,但此选项表述为反面,实际应选不符合原则的)
C.彻底检查每个程序
D.设计测试用例时,只需考虑合理的输入条件(正确答案,因为需要同时考虑合理和
不合理条件)
3.在软件测试中,下列哪项属于黑盒测试技术?
A.语句覆盖
B.边界值分析(正确答案)
C.路径测试
D.条件测试
4.单元测试主要针对的是:
A.整个系统的功能和性能
B.模块间的接口和通信
C.单个模块的功能和性能(正确答案)
D.用户界面的易用性
5.下列哪项不是集成测试的内容?
A.自顶向下集成
B.自底向上集成
C.回归测试(正确答案,回归测试是系统测试的一部分,但也常贯穿于整个测试过程)
D.大爆炸集成
6.系统测试的主要目的是:
A.验证软件是否满足用户需求(正确答案)
B.找出模块内的错误
C.验证模块间的接口是否正确
D.验证软件的性能是否达标
7.下列哪项属于非功能测试?
A.单元测试
B.集成测试
C.性能测试(正确答案)
D.验收测试
8.在软件测试过程中,发现缺陷后应该首先进行哪项操作?
A.立即修复缺陷
B.记录缺陷并报告给相关人员(正确答案)
C.忽略该缺陷并继续测试
D.通知用户该缺陷的存在。
软件测试相关知识点总结

软件测试相关知识点总结软件测试是通过一系列活动来评估软件产品的质量、发现缺陷并提供改进建议的过程。
以下是软件测试的相关知识点总结:1. 测试策略:测试策略是测试团队为实现测试目标而选择的一种方法或方法论。
它包括测试目标、测试范围、测试级别、测试资源分配、测试计划等内容。
2. 测试计划:测试计划是指确定测试活动的目标、范围、资源、时间、进度和风险等方面的计划。
3. 测试用例:测试用例是用来验证软件是否满足特定需求或规格的测试情况,包括输入数据、预期输出和测试步骤。
4. 缺陷管理:缺陷管理是指发现、记录、追踪和解决软件缺陷的过程。
它包括缺陷的分类、重现、修复、验证和关闭等环节。
5. 黑盒测试和白盒测试:黑盒测试是基于软件外部功能和需求的测试,不考虑软件内部的实现细节;白盒测试是基于软件内部结构和代码的测试,包括代码覆盖率测试和路径覆盖率测试等。
6. 功能测试:功能测试是验证软件是否按照需求规格书中定义的功能工作的测试,包括输入验证、输出验证、界面验证和场景验证等。
7. 性能测试:性能测试是验证软件在特定负载下的性能指标,包括响应时间、吞吐量、并发性和可伸缩性等。
8. 自动化测试:自动化测试是使用测试工具和脚本来执行测试用例的测试方式,可以提高测试效率和准确性。
9. 验收测试:验收测试是由用户或客户来验证软件是否满足预期需求的测试,也称为用户验收测试(UAT)。
10. 压力测试:压力测试是验证软件在极限负载下的稳定性和可靠性的测试,包括负载测试、稳定性测试和耐久性测试等。
以上是软件测试的一些常见知识点,希望能够对你有所帮助。
为了更好地理解软件测试,建议深入学习软件测试的理论和实践,并不断积累测试经验。
软件测试基础知识点

软件测试基本概念1、软件=程序+文档,软件测试=程序测试+文档测试。
“程序”是指能够实现某种功能的指令的集合,“文档”是指软件在开发、使用和维护过程中产生的图文集合。
2、软件的分类:4种①按功能分:系统软件、应用软件②按技术架构分:单机版软件、C/S结构软件(C是指客户端,S指服务器端)、B/S结构软件(B是指浏览器)③按照用户划分:产品软件、项目软件④按开发规模划分:小型、中型、大型3、BUG的定义:软件的BUG指的是软件中(包括程序和文档)不符合用户需求的问题。
常见的软件BUG分三种类型:完全没有实现的功能;基本实现了用户需求的功能;实现了用户不需要的功能。
4、测试环境=软件+网络+硬件。
搭建环境:真实、干净、无毒、独立5、软件环境的分类:软件开发环境软件生产运行环境6、测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和与其结果!测试用例=输入+输出+测试环境。
测试用例有两个模板,word和excel,前者适合性能测试,后者适合功能测试。
软件测试分类1、黑盒测试:指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果白盒测试:指的是把盒子盖打开,去研究里面的源代码和程序结构。
2、静态测试:是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。
动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序。
注:同一个测试,既有可能属于黑盒测试,也有可能属于动态测试;既有可能属于静态测试,也有可能属于白盒测试。
他们之间也有可能交叉。
3、单元测试:编译运行程序——静态测试——动态测试集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。
软件测试小知识点总结

软件测试小知识点总结一、测试分类1. 静态测试和动态测试静态测试是指在不执行程序的情况下对软件进行测试,如代码审查、设计审查等,目的是发现潜在的问题。
而动态测试是指在执行程序的情况下对软件进行测试,检查其行为和性能等方面。
2. 黑盒测试和白盒测试黑盒测试是针对软件功能进行测试,测试人员不需要了解程序的内部结构和实现细节,只需根据功能需求进行测试。
而白盒测试则是需要了解程序内部结构和实现细节,进行代码覆盖、逻辑覆盖等测试。
3. 单元测试、集成测试和系统测试单元测试是对软件的最小单元进行测试,如函数、模块等;集成测试是对多个单元的集成进行测试,确保它们能够协同工作;系统测试是对整个系统进行测试,验证其是否符合需求。
4. 验收测试和回归测试验收测试是用户对软件的最终验证,确保软件符合用户需求;回归测试是在软件修改后重新进行的测试,以确保修改不会对原有功能造成影响。
二、测试方法1. 黑盒测试方法黑盒测试方法主要包括等价类划分、边界值分析、因果图法、决策表法等。
等价类划分是指将输入条件划分为等价类,并从每个等价类中选择测试用例;边界值分析是指测试输入的边界值,以确保软件能够正确处理边界情况;因果图法是通过对软件功能进行建模,生成测试用例;决策表法是根据软件功能的各种可能情况,生成测试用例。
2. 白盒测试方法白盒测试方法主要包括语句覆盖、判定覆盖、条件覆盖、路径覆盖等。
语句覆盖是指测试用例覆盖到每一条语句;判定覆盖是指测试用例覆盖到每一个分支判定;条件覆盖是指测试用例覆盖到每个条件的真假取值;路径覆盖是指测试用例覆盖到每一条可能的执行路径。
3. 压力测试方法压力测试是对软件进行负载测试,以测试其在高负载情况下的性能、稳定性和可靠性。
主要包括并发测试、负载测试、性能测试等。
4. 安全测试方法安全测试是对软件的安全性进行测试,以发现潜在的安全漏洞和风险。
主要包括渗透测试、授权测试、认证测试等。
三、测试工具1. 自动化测试工具自动化测试工具可以帮助测试人员进行自动化测试,提高测试效率和覆盖率。
软件测试知识点整理

1:软件可靠性的定义(P2)答:系统在特定环境下,在给定的时间内无故障运行的概率。
2:软件缺陷的主要原因(P5)答:源于软件需求规格说明书。
3:软件测试的定义(P9)答:(1)软件测试是为了发现错误而执行程序的过程。
(2)软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心设计的一批测试用例。
并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。
4:什么是测试用例(P9)答:测试用例是为特定目的而设计的一组测试输入、执行条件和预期的结果;它是执行测试的最小实体。
5:软件测试的目标(P11)答:(1)测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性,仅限于处理有限的情况。
(2)检查系统是否满足需求,这也是测试的期望目标。
(3)一个好的测试用例在于发现未曾发现的错误,成功的测试是发现了错误的测试。
6:软件测试的原则(P11)(1)尽早、及时(2)测试用例包括测试数据和预期结果。
(3)程序提交测试后,应由专门测试人员测试,避免由设计者自行检查。
(4)测试用例应包括合理输入条件和不合理的输入条件。
(5)严格执行测试,排除测试的随意性。
(6)充分注意测试当中的群体现象。
(7)应对每一个测试结果做全面的检查。
(8)保存测试相关文档。
7:什么是α测试,什么是β测试(P16)α测试是在开发环境下进行的测试即内测β测试是用户实际使用环境下进行的测试即公测8:软件开发和软件测试各阶段的联系(P26)9:软件测试过程(P33)制定测试计划——设计测试用例——执行测试用例——写测试报告10:软件测试执行的三个阶段(P35)初测期细测期回归测试期11:集成测试过程的两个重要里程碑——功能冻结和代码冻结的概念功能(特征)冻结:经过测试,符合设计要求,确认系统功能和其他特性均不再做任何改变。
代码冻结:理论上,在无错误时代码冻结,但实际上,代码冻结只标志系统的当前版本的质量达到预期的要求,冻结程序的源代码,不再对其做任何修改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、软件测试的定义软件测试是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。
1.软件测试与调试的区别(1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。
(2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
(3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。
(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。
(5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。
(6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。
(7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。
2.对软件测试的理解软件测试就是说要去根据客户的要求完善它.即要把这个软件还没有符合的或者是和客户要求不一样的,或者是客户要求还没有完全达到要求的部分找出来。
(1)首先要锻炼自己软件测试能力,包括需求的分析能力,提取能力,逻辑化思想能力,即就是给你一个系统的时候,能够把整个业务流程很清晰的理出。
(2)学习测试理论知识并与你锻炼的能力相结合。
(3)想和做。
想就是说你看到任何的系统都要有习惯性的思考;做就是把实际去做练习,然后提取经验。
总结测试用例,测试计划固然重要,但能力和思想一旦到位了,才能成为一名合格的软件测试工程师。
二、软件测试的分类1.按照测试技术划分(1)白盒测试:通过对程序内部结构的分析、检测来寻找问题。
检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
--结构测试(2)黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是否按照需求规格说明书的规定正常实现。
--性能测试(3)灰盒测试:介于白盒测试与黑盒测试之间的测试。
2.按照是否让备测软件运行划分(1)静态测试(2)动态测试3.按照开发阶段划分(1)单元测试:模块测试,检查每个程序单元嫩否正确实现详细设计说明中的模块功能等。
(2)集成测试:组装测试,将所有的程序模块进行有序、递增的测试,检验程序单元或部件的接口关系(3)系统测试:检查完整的程序系统能否和系统(包括硬件、外设和网络、系统软件、支持平台等)正确配置、连接,并满足用户需求。
(4)确认测试:证实软件是否满足特定于其用途的需求,是否满足软件需求说明书的规定。
(5)验收测试:按项目任务或合同,供需双方签订的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。
4.按照测试实施组织划分(1)开发方测试(2)用户测试(3)第三方测试三、软件测试的原则1.测试用例中一个必需部分是对预期输出或结果的定义;2.程序员应当避免测试自己编写的程序;3.编写软件的组织不应当测试自己编写的程序;4.应该彻底检查每个测试的执行结果;5.测试用例的编写不仅应当根据有效和预期的输入情况,也应当根据无效和未预料到的输入情况;6.检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了不应该做的”;7.应避免测试用例用后既弃,除非软件本身就是一个一次性的软件;8.计划测试工作时不应默许假定不会发现错误;9.程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比;10.软件测试是一项极富创造性、极具智力挑战性的工作。
四、测试用例的设计1.测试用例的定义(1)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。
(2)测试用例是执行的最小实体。
2.特征:(1)最有可能抓住错误的;(2)不是重复的、多余的;(3)一组相似测试用例中最有效的;(4)既不是太简单,也不是太复杂。
3.设计测试用例的基本准则测试用例的代表性、测试结果的可判定性、测试结果的可再现性。
五、黑盒测试1.等价类划分法①等价类划分法的设计方法:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。
等价类是指某个输入域的子集合。
在该子集合中各个输入数据对于揭露程序中错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试。
有效等价类:对于程序的规格说明来说是合理的、有意义的输入数据构成的集合无效等价类:对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合等价类对于测试有两个重要的意义:完备性无冗余性②等价类划分法的原则(a)按照区间划分:一个有效等价类和两个无效等价类。
(b)按照数值划分: n 个有效等价类和一个无效等价类(c)按照数值集合划分一个有效等价类和一个无效等价类(d)按照限制条件或规则划分:可确定一个有效等价类和若干个无效等价类(e)细分等价类③等价类划分法的步骤(a)确定等价类(b)建立等价类表,列出所有划分出的等价类(c )从划分出的等价类中按以下的3个原则设计测试用例: ·为每一个等价类规定一个唯一的编号·设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;·设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
④确定等价类的方法(a )先考虑输入数据的类型(合法型和非法型);(b )再考虑数据范围(合法型中的合法区间和非法区间); (c )最后考虑输出结果,逆向设定输入。
2.边界值分析法①边界值分析法就是对输入或输出的边界值进行测试②特点:具有很强的发现程序错误的能力;测试用例来自等价类的边界;③基本原理:故障往往发生在输入定义域和输出值域的边界上,而不是在其内部。
④方法:(a )首先应确定边界情况.(b )选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据 ⑤标准边界值: min 、min+、nom 、max-、max健壮边界值: min 、min+、nom 、max-、max min- max+⑥例:<xnom,ymin> <xnom,ymin+> <xnom,ymax> <xnom,ymax-> <xmin,ynom> <xmin+,ynom> <xmax,ynom> <xmax-,ynom> <xnom,ynom>⑦对于一个含有n 个变量的程序,只让其中一个变量取极值,让其余的变量取正常值,被保留的变量依次取min 、min+、nom 、max-、max 值,对每个变量都重复进行。
n 个变量的程序,边界值分析测试程序会产生4n+1个测试用例。
3.决策表法①概述:决策表法是黑盒测试方法中最为严格、最具有逻辑性的测试方法。
②什么时候使用程序输入输出比较多,输入之间、输出之间相互制约的条件比较多时,可以清楚地表达它们之间的各种复杂关系。
③决策表通常由四部分组成:条件桩: 列出问题的所有条件动作桩:给出问题规定的可能采取的操作动作项:与条件项紧密相关,指出在条件项的各组取值情况下应采取的动作 规则:项中的每一列是一条规则,每一条规则是一组测试用例。
④决策表的化简(a )合并:如果一个条件项(表中某列中的条件值)和另外一个条件项所产生的动作是相同的,且两个条件项对应的每一行的值只有一个是不同的,则可以将其合并.合并的项除了不同值变成”不关心”d有两个变量x 、y 的程序的输入域条目外,其余不变(b )包含:如果两个条件项的动作是相同的,对任意条件1的值和条件2中对应的值,如果满足: – 如果条件1的值是T(F),则条件2中的值也是T(F). – 如果条件1的值是-(不关心),则条件2中的值是T,F,-,称条件1包含条件2,条件2可以撤去. – 重复A,B 就可以得到精简的决策表.合并 包含⑤构造决策表的步骤: (a )确定规则的个数;(b )列出所有的条件桩和动作桩; (c )填入输入项;(d )填入动作项,得到初始的决策表; (e )对初始的决策表化简。
⑥决策表测试法的适用范围 (a )if-then-else 逻辑突出; (b )输入变量之间存在逻辑关系; (c )涉及输入变量子集的计算; (d )输入和输出之间存在因果关系。
4.因果图方法①概述:如果输入之间有关系,测试时必须考虑输入条件的各种组合,考虑适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。
因果图方法最终生成的就是判定表。
适合于检查程序输入条件的各种组合情况。
②因果图法的基本思想:首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变),然后通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例. ③基本符号通常在因果图中用Ci 表示原因,用Ei 表示结果,各结点表示状态,可取值“0”或“1”。
“0”表示某状态不出现,“1”表示某状态出现。
N - Y √恒等: c1为1,则e1也为1,否则e1为0. 非: 若c1是1,则e1为0,否则e1是1. 或: 若c1或c2或c3是1,则e1是1,若三者都不为1,则e1为0.与: 若c1和c2都是1,则e1为1,否则若有其中一个不为1,则e1为0. ④约束:实际问题中,输入状态之间可能存在某些依赖关系. E 约束(异): a,b 最多有一个可能为1,不能同时为1. I 约束(或): a,b,c 中至少有一个必须为1,不能同时为0. O 约束(惟一): a 和b 必须有一个且仅有一个为1R 约束(要求):a 是1时,b 必须是1,即a 为1时,b 不能为0 M 约束:对输出条件的约束,若结果a 为1,则结果b 必须为0.⑤因果图生成测试用例的基本步骤 (a )找出原因和结果。
(b )画出因果图。
(c )增加约束。
(d )把因果图转化为判定表,并化简。
(e )把判定表的每一列拿出来作为依据,设计测试用例。
⑥例题(a )原因: C1:第一个字符是A ; C2:第一个字符是B ;C3:第二个字符是一个数字字找。
结果: E1:给出信息L ; E2:修改文件; E3:给出信息M 。
(b )因果图。
C1C2C3 10E1E2E3∨ ~∧~(c )决策表。
12345678Cc(d)设计测试用例测试用例1:输入数据:A3 预期输出:修改文件测试用例2:输入数据:AM 预期输出:给出信息M测试用例3:输入数据:B3 预期输出:修改文件测试用例4:输入数据:B* 预期输出:给出信息M测试用例5:输入数据:C2 预期输出:给出信息L测试用例6:输入数据:CM 预期输出:给出信息LM⑦因果图法的优点:(a)考虑了多个输入之间的相互组合、相互制约关系;(b)能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描述中存在着什么问题。