软件测试复习资料
- 格式:pdf
- 大小:253.09 KB
- 文档页数:12
软件测试的定义:1.IEEE:使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。明确地提出了软件测试以检验是否满足需求为目标 2.Myers: 是为了发现错误而执行程序的过程。提出了“寻找错误”是测试目的 3.软件质量保证:是一种重要的软件质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。
测试V模型 (清楚地描述了这些测试阶段和开发过程期间的对应关系)
测试W模型 (形象地说明了软件测试与开发的这种同步性) 软件测试技术分类从是否需要执行被测软件的角度,可分为静态测试和动态测试不利用计算运行被测程序,而是通过其他手段达到测试目的的方法称作静态测试
静态测试主要方法: 动态测试主要方法:(从软件测试用例设计方法的角度)①代码检查 ①黑盒测试 ②代码走查 ②白盒测试 ③桌面检查 ④同行评分
按照软件测试的策略和过程分类①单元测试 ②集成测试③确认测试 ④系统测试 ⑤验收测试
软件测试的目的:从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。Myers软件测试目的(1) 测试是程序的执行过程,目的在于发现错误;(2) 一个好的测试用例在于能发现至今未发现的错误;(3) 一个成功的测试是发现了至今未发现的错误的测试。 换言之,测试的目的是系统地找出软件中潜在的各种错误和缺陷。能够证明软件的功能和性能与需求说明相符合。测试不能表明软件中不存在错误,它只能说明软件中存在错误
软件测试的原则:1. 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。2. 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。3. 程序员应避免检查自己的程序。4. 在设计测试用例时,应包括合理的输入条件和不合理的输入条件5. 充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。6. 严格执行测试计划,排除测试的随意性。7. 应当对每一个测试结果做全面检查。8. 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
白盒测试:此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。
白盒测试又分为逻辑覆盖测试和路径测试包括:逻辑覆盖测试法:通常用流程图来设计测试用例,它考察的重点是图中的判定框。因为这些判定若不是与选择结构有关,就是与循环结构有关。逻辑覆盖测试包括:语句覆盖、分支(判定)覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。路径测试法:设计足够的测试用例,覆盖程序中所有可能的路径。路径测试包括:点覆盖、边覆盖、路径覆盖
计算环路复杂性的方法:V(G)=简单判定节点数+ 1V(G) = E-N+2 (E 是边数,N是定点数)V(G)=封闭区域数+ 1
在对被测软件进行白盒测试时,主要对程序进行如下几点检查:(1)保证一个模块中的所有独立执行路径至少测试一次; (2)对所有逻辑判定取值“true”和“false”的两种情况都至少测试一次; (3)在循环边界和运行界限内执行循环体; (4)测试内部数据结构的有效性
白盒测试与调试的异同1、从承担的任务来看,白盒测试同其他类型测试一样,它的任务是发现所开发的项目中的缺陷;但是,调试不属于测试,其任务是纠正软件中的缺陷。 2、从最终的结果来看,白盒测试有预知的结果,不可预知的只是程序是否通过测试,并且成功测试的结果是发现错误的症状,从而引起调试的进行;而调试的结果是消除项目中的错误。 3、从执行的过程来看,测试是一个发现错误、改正错误、重新测试的过程;而调试是一个推理过程。 4、从准备工作来看,测试从已知的条件开始,使用预先定义的程序;调试一般是以不可知的内部条件开始,做统一性调试 。 5、从执行的计划性来看,测试是有计划的并要进行测试设计;而调试则不受时间约束。 6、从执行的人员来看,测试经常是由独立的测试组在不了解软件设计的条件下完成的,而调试必须由程序员来完成。
白盒测试的优缺点 1)优点可构成测试数据对特定程序部分测试,可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;有较多工具支持;有一定的充分性度量手段。 2)缺点工作量大, 成本高。通常只用于单元测试,有应用局限;无法检测代码中遗漏的路径和数据敏感性错误;不能验证规格说明的正确性;无法对规格说明中未实现的部分进行测试;不易生成测试数据(通常)。
循环测试分为4种不同类型:简单循环、连锁循环、嵌套循环和非结构循环。
黑盒测试:这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试
包括:等价类划分, 边界值分析, 错误推测法, 因果图 在对被测软件进行黑盒测试时,主要对程序进行如下几点检查:⑴功能不正确或不完整; ⑵接口错误; ⑶接口所使用的数据结构错误; ⑷行为或性能错误; ⑸初始化和终止错误。
黑盒测试和白盒测试的异同1. 执行测试人员不同 黑盒测试通常由用户以及非开发人员来进行;而白盒测试通常要有了解软件内部结构的开发人员来做。2. 测试覆盖目标不同 如果我们用一个盒子来代替整个软件系统,那么黑盒测试可以看成是一种系统测试。而对盒子内部的多个单元的测试就可以称作为白盒测试。 另外一种区别就是,二者的覆盖目标不同。黑盒测试的目标是覆盖所有的用户需求;而白盒测试的目标是覆盖所有的代码。3、测试动机不同 有效的安全测试有时也需要详细了解代码以及系统结构,此时把这些技术称作白盒测试。 另外一种风险测试的目标可能就只是测试软件是否能够为用户提供预期输出。可用性测试就是如此,所以被称作黑盒测试。 4、测试方法不同 一个最普通的区别就是行为测试设计是基于功能需求来定义测试,而结构测试则是基于代码本身来定义测试的。这就是两种设计测试的方法。因为行为测试是基于外部功能定义的,所以称作黑盒测试;结构测试则是基于代码内部结构来定义的,所以称作白盒测试。5、评估测试方法不同 一些技术是使用代码工具来跟踪软件内部的工作过程,因此称为白盒测试技术。与之相比,黑盒测试技术只是简单的观察程序的正常输出。
黑盒测试的优缺点1. 优点对于较大的代码单元来说,效率高;测试人员不需要了解实现的细节,包括具体的编程语言;测试员和程序员可以由不同的人员来担任;从用户的角度进行测试,容易被理解和接受;有助于暴露任何规格不一致或有歧义的问题;测试用例的设计可以在规格说明完成之后马上进行;容易入手生成测试数据;适用于各阶段测试。2. 缺点 实际上,只有一小部分可能的输入被测试到,某些代码得不到测试;如果没有清晰、简洁的规格说明,难以设计测试用例;如果测试人员不知道开发人员已经执行过该测试用例,会存在不必要的重复测试;会有很多程序路径没有被测试到;不能直接针对可能隐蔽了许多问题的特定程序段进行测试,;如果规格说明有误,则无法发现;不易进行充分性测试。
测试计划和测试文档在测试过程中的作用1、测试文档有助于测试任务的完成。2、使用测试文档可以更好的协调测试任务与测试过程。3、测试文档为测试项目的组织、规划与管理提供了一个架构。 软件测试的策略:单元测试、组装测试、确认测试和系统测试。 单元测试又称模块测试,是针对软件设计的最小单位 ─ 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试
单元测试的内容(1) 模块接口测试 (2) 局部数据结构测试 (3) 路径测试 (4) 错误处理测试 (5) 边界测试
由于一个模块或一个方法(Method)并不是一个独立的程序,在考虑测试它时要同时考虑它和外界的联系,因此要用到一些辅助模块,来模拟与所测模块相联系的其他模块。一般把这些辅助模块分为两种: 1、驱动模块(driver):相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实测结果。 2、桩模块(stub):用于代替所测模块调用的子模块。用以代替所测模块调用的子模块
自顶向下的单元测试策略: 将模块按系统程序结构,沿控制层次自顶向下进行组装一)步骤: 1. 从最顶层开始,把顶层调用的单元做成桩模块。 2. 对第二层测试,使用上面已测试的单元做驱动模块。 3. 依次类推,直到全部单元测试结束。 二)优点:可以在集成测试之前为系统提供早期的集成途径。 三)缺点:单元测试被桩模块控制,随着单元测试的不断进行,测试过程也会变得越来越复杂,测试难度以及开发和维护的成本都不断增加;要求的低层次的结构覆盖率也难以得到保证;由于需求变更或其他原因而必须更改任何一个单元时,就必须重新测试该单元下层调用的所有单元;低层单元测试依赖顶层测试,无法进行并行测试,使测试进度受到不同程度的影响,延长测试周期。 四)总结:从上述分析中,不难看出该测试策略的成本要高于孤立的单元测试成本,因此从测试成本方面来考虑,并不是最佳的单元测试策略。