《软件测试技术》知识点整理.pdf

上传人:tbuqq 文档编号:5136766 上传时间:2020-02-06 格式:PDF 页数:14 大小:3.33MB
返回 下载 相关 举报
《软件测试技术》知识点整理.pdf_第1页
第1页 / 共14页
《软件测试技术》知识点整理.pdf_第2页
第2页 / 共14页
《软件测试技术》知识点整理.pdf_第3页
第3页 / 共14页
《软件测试技术》知识点整理.pdf_第4页
第4页 / 共14页
《软件测试技术》知识点整理.pdf_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《软件测试技术》知识点整理.pdf》由会员分享,可在线阅读,更多相关《《软件测试技术》知识点整理.pdf(14页珍藏版)》请在三一文库上搜索。

1、一、软件测试的定义 软件测试是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不 执行其不该有的操作。 1软件测试与调试的区别? (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序 是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。 (3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。 (4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。 (5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的“飞跃

2、 “。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细 设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调 试器。 2对软件测试的理解? 软件测试就是说要去根据客户的要求完善它.即要把这个软件还没有符合的或者是和客户要 求不一样的,或者是客户要求还没有完全达到要求的部分找出来。 (1)首先要锻炼自己软件测试能力,包括需求的分析能力,提取能力,逻辑化思想能力, 即就是给你一个系统的时候,能够把整个业务流程很清晰的理出。 (2)学习测试理论知识并与你锻炼的能力相结合。 (3)想和做。想就是说你看到任何的系统都要有

3、习惯性的思考;做就是把实际去做练习, 然后提取经验。 总结测试用例,测试计划固然重要,但能力和思想一旦到位了,才能成为一名合格的软件测 试工程师。 二、软件测试的分类 1按照测试技术划分 (1)白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻 辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。-结构测试 (2)黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是 否按照需求规格说明书的规定正常实现。-性能测试 (3)灰盒测试:介于白盒测试与黑盒测试之间的测试。 2按照是否让备测软件运行划分 (1)静态测试 (2)动态测试 3按照开发阶

4、段划分 (1)单元测试: 模块测试,检查每个程序单元嫩否正确实现详细设计说明中的模块功能等。 (2)集成测试:组装测试,将所有的程序模块进行有序、递增的测试,检验程序单元或部 件的接口关系 (3)系统测试:检查完整的程序系统能否和系统(包括硬件、外设和网络、系统软件、支 持平台等)正确配置、连接,并满足用户需求。 (4)确认测试: 证实软件是否满足特定于其用途的需求,是否满足软件需求说明书的规定。 (5)验收测试:按项目任务或合同,供需双方签订的验收依据文档进行的对整个系统的测 试与评审,决定是否接受或拒收系统。 4按照测试实施组织划分 (1)开发方测试 (2)用户测试 (3)第三方测试 三、

5、软件测试的原则 1测试用例中一个必需部分是对预期输出或结果的定义; 2程序员应当避免测试自己编写的程序; 3编写软件的组织不应当测试自己编写的程序; 4应该彻底检查每个测试的执行结果; 5测试用例的编写不仅应当根据有效和预期的输入情况,也应当根据无效和未预料到的输 入情况; 6检查程序是否 “未做其应该做的 ”仅是测试的一半,测试的另一半是检查程序是否“做 了不应该做的 ” ; 7应避免测试用例用后既弃,除非软件本身就是一个一次性的软件; 8计划测试工作时不应默许假定不会发现错误; 9程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比; 10软件测试是一项极富创造性、极具智力挑战性

6、的工作。 四、测试用例的设计 1测试用例的定义 (1)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。 (2)测试用例是执行的最小实体。 2特征: (1)最有可能抓住错误的; (2)不是重复的、多余的; (3)一组相似测试用例中最有效的; (4)既不是太简单,也不是太复杂。 3设计测试用例的基本准则 测试用例的代表性、测试结果的可判定性、测试结果的可再现性。 五、黑盒测试 1等价类划分法 等价类划分法的设计方法:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集), 然后从每一个子集中选取少量具有代表性的数据作为测试用例。 等价类是指某个输入域的子集合。在该子集合中各

7、个输入数据对于揭露程序中错误都是等效的。并 合理地假定:测试某等价类的代表值就等于对这一类其他值的测试。 有效等价类:对于程序的规格说明来说是合理的、有意义的输入数据构成的集合 无效等价类:对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合 等价类对于测试有两个重要的意义:完备性无冗余性 等价类划分法的原则 ( a)按照区间划分:一个有效等价类和两个无效等价类。 ( b)按照数值划分:n 个有效等价类和一个无效等价类 ( c)按照数值集合划分一个有效等价类和一个无效等价类 ( d)按照限制条件或规则划分:可确定一个有效等价类和若干个无效等价类 ( e)细分等价类 等价类划分法的步骤

8、( a)确定等价类 ( b)建立等价类表,列出所有划分出的等价类 ( c)从划分出的等价类中按以下的3 个原则设计测试用例: 为每一个等价类规定一个唯一的编号 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有 的有效等价类都被覆盖为止; 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无 效等价类都被覆盖为止。 确定等价类的方法 ( a)先考虑输入数据的类型(合法型和非法型); ( b)再考虑数据范围(合法型中的合法区间和非法区间); ( c)最后考虑输出结果,逆向设定输入。 2边界值分析法 边界值分析法就是对输入或输出的边

9、界值进行测试 特点:具有很强的发现程序错误的能力;测试用例来自等价类的边界; 基本原理:故障往往发生在输入定义域和输出值域的边界上,而不是在其内部。 方法:( a)首先应确定边界情况. Y (b)选取正好等于, 刚刚大于或刚刚小于边界的值作为测试数据 c 标准边界值:min、 min+、 nom、 max- 、 max 健壮边界值:min 、 min+ 、nom、 max-、 max min- max+ d 例: a b X 有两个变量x、 y 的程序的输入域 对于一个含有n 个变量的程序,只让其中一个变量取极值,让其余的变量取正常值,被保留的变 量依次取min 、 min+ 、 nom 、m

10、ax- 、 max 值,对每个变量都重复进行。n 个变量的程序,边界值分析 测试程序会产生4n+1 个测试用例。 3决策表法 概述:决策表法是黑盒测试方法中最为严格、最具有逻辑性的测试方法。 什么时候使用? 程序输入输出比较多,输入之间、输出之间相互制约的条件比较多时,可以清楚地表达它们之间的 各种复杂关系。 决 策 表 通 常 由 四 部 分 组 成 :规则 条件桩条件项 动作桩动作项 条件桩:列出问题的所有条件 条件项:针对条件桩给出的条件列出所有可能的取值 动作桩:给出问题规定的可能采取的操作 动作项:与条件项紧密相关,指出在条件项的各组取值情况下应采取的动作 规则:项中的每一列是一条规

11、则,每一条规则是一组测试用例。 决策表的化简 ( a)合并:如果一个条件项( 表中某列中的条件值) 和另外一个条件项所产生的动作是相同的, 且两 个条件项对应的每一行的值只有一个是不同的, 则可以将其合并. 合并的项除了不同值变成”不关心 ” 条目外 , 其余不变 ( b)包含:如果两个条件项的动作是相同的,对任意条件1 的值和条件2 中对应的值,如果满足: 如果条件1 的值是T(F), 则条件2 中的值也是T(F). 如果条件1 的值是 -( 不关心 ), 则条件2 中的值是T,F,-, 称条件1 包含条件2, 条件2 可以撤去. 重复A,B 就可以得到精简的决策表. Y Y Y Y Y Y

12、 N N N N N N N Y N 合并包含 构造决策表的步骤: ( a)确定规则的个数; ( b)列出所有的条件桩和动作桩; ( c)填入输入项; ( d)填入动作项, 得到初始的决策表; ( e)对初始的决策表化简。 决策表测试法的适用范围 ( a) if-then-else 逻辑突出; ( b)输入变量之间存在逻辑关系; ( c)涉及输入变量子集的计算; ( d)输入和输出之间存在因果关系。 4因果图方法 概述:如果输入之间有关系,测试时必须考虑输入条件的各种组合,考虑适合于描述对于多种条 件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。 因果图方法最终生成的就是判

13、定表。适合于检查程序输入条件的各种组合情况。 因果图法的基本思想:首先从程序规格说明书的描述中, 找出因 ( 输入条件) 和果( 输出结果或者程 序状态的改变), 然后通过因果图转换为判定表, 最后为判定表中的每一列设计一个测试用例. 基本符号原因结果 通常在因果图中用Ci 表示原因,用Ei 表示结果,各结点表示状态,可取值“0”或“ 1” 。 “ 0”表示 某状态不出现,“1”表示某状态出现。 c1 C2 恒等:c1 为 1, 则 e1 也为 1, 否则 e1 为 0. 非:若 c1 是 1, 则 e1 为 0, 否则 e1 是 1. 或:若 c1 或 c2 或 c3 是 1, 则 e1 是

14、 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 必须有一个且仅有一个为1 R 约束 ( 要求 ) :a 是 1 时,b 必须是1, 即 a 为 1 时,b 不能为0 M 约束:对输出条件的约束, 若结果a 为 1, 则结果b 必须为0. 因果图生

15、成测试用例的基本步骤 ( a)找出原因和结果。( b)画出因果图。(c)增加约束。 ( d)把因果图转化为判定表,并化简。 ( e)把判定表的每一列拿出来作为依据,设计测试用例。 例题 ( a)原因:C1 :第一个字符是A; C2:第一个字符是B; C3:第二个字符是一个数字字找。 结果:E1 :给出信息 L; E2 :修改文件;E3:给出信息 M。 ( b)因果图。 C1 E1 10 C2 E2 C3 E3 ( c)决策表。 1 2 3 4 5 6 7 8 C1 C2 C3 10 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0 0

16、0 0 E1 E2 E3 不可能 测试用例 A3 A5 AM A 2.web 应用程序要处理一定容量的并发用户。 注:强度测试是对强度的界定很重要。 (4)易用性测试 每个用户界面是否都根据用户的智力、教育程度和环境要求进行了调整? 程序的输出是否有意义、不模糊且无计算机杂乱信息? 错误诊断信息是否直接,非计算机专业用户是否能够理解(这要求对错误进行精确的预测 和详细的分类)? 整体的用户界面是否在语法、惯例、语义、格式、风格和缩写等方面展现出了相当程度的 完整性、一致性和同一性? 系统是否包含过多或不太可能用到的选项? 对于所有输入,系统是否返回了即时确认信息? 程序是否易于使用?如区分大小

17、写的要求用户是否清楚,不同层次菜单之间的浏览是否容 易等。 (5)安全性测试 设计测试用例来突破程序安全检查。例如, 可以设计测试用例来规避操作系统的内存保护 机制、破坏数据库管理系统的数据安全机制等。 常用的测试用例设计方法是研究类似系统中已知的安全问题,然后生成测试用例,暴露被 测系统中的类似问题 基于Web 的应用程序常常比绝大多数程序所需的安全测试级别更高,对于电子商务网站 尤其如此。 (6)性能测试 很多软件都有特定的性能或效率目标,这些特性描述为在特定负载和配置环境下程序的响 应时间和吞吐率。应设计测试用例来说明程序不能满足其性能目标。 (7)存储测试 软件偶尔会有存储目标,例如描

18、述程序使用的内存和辅存的容量以及临时文件或移出文件 的大小。应设计测试用例来证明这些存储目标没有得到满足。 (8)配置测试 很多软件都支持多种硬件配置,可以运行在多种操作系统下,使用多种web 浏览器。通 常可能的配置数量非常之大,以至于无法全面测试,但应该尽可能测试各种配置。 (9)兼容性/配置/ 转换测试 很多软件不是全新的,而是为了替换某些已有的系统。这样的软件往往涉及与已有系统的兼 容以及从已有系统的转换过程,如升级数据库管理系统。 (10)安装测试 有些软件的安装过程非常复杂,测试安装过程是系统测试的一个重要部分。 (11)可靠性测试 所有测试都是为了提高软件的可靠性,但如果软件的目

19、标中包含了对可靠性的特别描述,就 必须设计专门的可靠性测试用例。 (12)适用性测试 对于软件的适用性和可维护性目标也必须测试。 (13)可恢复性测试 诸如OS、 DBMS 等软件通常都有可恢复性目标,说明系统如何从硬件失败和数据错误中 恢复过来。系统测试的一个目标是证明这些恢复机制不能正确发挥作用。 可以故意将程序错误植入个系统中,判断系统是否可以从中恢复。 这些系统的设计目标之一是平均恢复时间(MTTR )最小,测试目标之一就是证明系统不 能满足MTTR 的要求。 (13)文档测试 系统测试也需要检查用户文档的正确性和清晰性。 (14)过程测试 很多软件系统不是完全自动化的,其中包括了很多人员操作过程。在系统测试中,必须对 所有已规定的人工过程,如系统操作员、最终用户、数据库管理员的操作过程进行测试。 十一、验收测试 是将程序与其最初的需求及最终用户当前的需要进行比较的过程 通常是由程序的客户或最终用户来进行,一般不认为是软件开发机构的职责 最好的方法是设计测试用例,尽力证明程序没有满足合同要求;假如这些测试用例都通过 了,就可以接受该程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1