测试级别
V模型与每个阶段的对呀关系 各个级别之间的测试重点单元测试
- 什么是单元测试?
- 对单个的软件单元或者一组相关的软件单元所进行的测试,代码级的测试
- 单元测试的对象?
- 单元是软件里最小的、可以单独执行编码的单元,通常由一个人完成编码
- 单元测试原则
1)应该尽早低地进行软件单元测试
2)应该保证软件单元测试的可重复性
3)尽可能地采用测试自动化的手段来支持单元测试活动 - 单元测试的典型技术
1)白盒测试(语句,分支覆盖等)
2)黑盒测试(等价类划分,边界值分析)
集成测试
- 模块与模块(组件)之间的接口测试,测试系统内部不同部分的互相作用
- 集成测试的目的
- 发现结款的缺陷和集成后组件协同工作时的缺陷
- 集成测试的典型技术
- 白盒测试技术(内部接口)
- 黑盒测试技术(等价类划分)
- 集成测试的原则
1)集成测试是产品项目中的重要工作,需要对其分配足够的资源和时间
2)集成测试需要经过严密的计划,并严格按照计划执行
3)应采取增量式的分布集成方式,逐步进行软件部分的集成和测试
4)应重视测试自动化技术的引入与应用,不断提高集成测试效率
5)应该注意测试用例的积累和管理,方便进行回归并进行测试用例补充 - 集成测试的策略
1)自顶向下集成
从主控模块,沿着软件的控制层向下移动,逐渐把各个模块结合起来
2)自底向上集成
从"原子"模块(即在软件结构最底层的模块)开始集成以进行测试
3)大棒与三明治集成方法
大棒集成方法
采用大棒集成方法,先对每一个模块进行测试,然后将所有模块全部集成起来一次性进行集成测试
三明治集成方法
三明治集成方法自两头向中间集成
持续集成
通常系统集成都会采用持续集成的策略,软件开发中各个模块不是同时完成,根据进度将完成的模块尽可能早的集成,有助于尽快发现缺陷,避免大量缺陷集中涌现
系统测试
- 对系统进行全面的测试,最接近用户需求,需求级的测试
- 测试重点
1)系统需求
2)整个系统的功能
3)非功能需求 - 系统测试的原则
1)尽早地开始系统测试工作
2)充分注意测试中的缺陷密集现象,即对缺陷比较密集的部分进行重点测试
3)严格执行测试计划,排除测试的随意性
4)对测试过程和测试结果应进行评价,确保测试过程的有效性
5)妥善保存测试计划、测试用例、故障统计和最终分析报告,为维护提供方便
6)对于被测试系统要进行正常和异常两方面的测试
7)在系统测试计划中,要按照资源和项目的要求清晰地定义一个完整的退出准则,这是一种权衡投入产出比的原则
验收测试
- ① 有客户或者是利益相关者进行的测试,验收
-
② 测试分为α测试和β测试
验收测试过程流程 - ③ 验收测试项
- 有系统管理员对系统的验收测试,包括:
- 测试备份和恢复备份(backup/restore)
- 灾难恢复测试
- 用户管理测试
- 维护任务测试
- 安全漏洞阶段性检查
- 有系统管理员对系统的验收测试,包括:
- ④ 验收测试分为α测试和β测试
- 1)α测试:在开发场地进行的验收测试
- 2)β测试:在客户场地进行的验收测试
- ⑤ 验收测试的准入条件
- 1)系统测试通过
- 2)所有的测试用例被执行
- 3)所有的缺陷被关闭,条件准入:所有严重级别AB级的关闭
- 4)具备验收合同(或项目测试计划)
- 5)具备软件的各类文档(用户手册,安装手册)
- 6)所有的被测软件是受控制的
- 7)软件代码是可编译和构建
- ⑥ 验收测试的准出条件
- 1)已按要求完成了合同(或项目计划)所规定的软件测试任务
- 2)客观、详细地记录了软件测试过程和软件测试中发现的所有问题
- 3)测试文档齐全、符合规范
- 4)测试的全过程自始至终在控制下进行
- 5)测试中的问题或异常有合理解释或正确有效的处理
- 6)测试报告通过了评审
- 7)全部测试数据、被测软件、测试支持软件和评审结果已纳入配置管理
验收测试过程的主要内容
1)软件需求分析
2)编制《验收测试计划》和《项目验收准则》
3)测试设计和测试用例设计
4)测试环境搭建
5)测试实施
6)测试报告
非正式验收或α 测试的优缺点
优点:
1)要测试的功能和特性都是已知的
2)可以对测试过程进行评测和监测
3)可接受性标准是已知的
4)与正式验收测试相比,可以发现更多由于主观原因造成的缺陷
缺点:
1)要求计划和管理资源
2)无法控制所使用的测试用例
3)最终用户可能沿用系统工作的方式,并可能无法发现测试
4)最终用户可能专注于比较新系统与遗留系统,而不是专注于查找缺陷
5)用于验收测试的资源不受项目的控制,并且可能收到压缩
β 测试的优缺点
优点
1)测试由最终用户实施
2)大量的潜在测试资源
3)提高客户对参与人员的满意程度
4)与正式或非正式验收测试相比,可以发现更多由于主观原因造成的缺陷
缺点:
1)未对所有功能和/或特性进行测试。
2)测试流程难以评测。
3)最终用户可能沿用系统工作的方式,并可能没有发现或没有报告缺陷。
4)最终用户可能专注于比较新系统与遗留系统,而不是专注于查找缺陷。
5)用于验收测试的资源不受项目的控制,并且可能受到压缩。
6)可接受性标准是未知的。
7)需要更多辅助性资源来管理β 测试员。
-
维护测试
1、系统变更或是新功能的增加进行的回归测试
一些其它可能的测试标准
1)负载
2)性能、效率
3)压力
4)可用性,用户友好性
5)可靠性,稳定性
6)可移植性,互操作性
7)健壮性,可恢复性
8)安全性
9)容量
10)文档
11)配置
12)兼容性
13)易变性,可维护性
14)国际性/本地化
其他测试
-
负载测试
- 一种通过增加负载来测量组件或系统的测试方法。例如:通过增加并发用户数和(或)事务数量来测量组件或系统能够承受的负载
-
性能测试
- 判断软件产品性能的测试过程
1)为了确定一个软件产品的性能所进行的测试
2)针对特定的应用领域检查系统的性能(处理速度以及响应时间)
- 判断软件产品性能的测试过程
-
压力测试
- 在规定的或超过规定的需求条件下测试组件/系统,以对其进行评估
1)为了评价一个系统或一个组件达到或超过需求规定的界限时的反应的测试[IEEE 61O]
2)检查系统在超负荷的情况下的性能反应(例如通过在高数据量或特定的错误条件下工作)
- 在规定的或超过规定的需求条件下测试组件/系统,以对其进行评估
确认测试和回归测试
-
确认测试:
重新执行上次失败的测试用例,以验证纠错的正确性 -
回归测试:
测试先前测试过并修改过的程序,确保更改没有对其他未改变的部分带来新的缺陷
测试类型
-
软件测试的类型
- 功能测试(黑盒测试)
- 非功能测试(性能测试)
- 结构测试(白盒测试)
-
功能测试
- 功能测试又称为黑盒测试或数据驱动测试,是从用户观点触发,主要以软件规格说明书为依据,对程序功能和程序接口进行的测试
- 功能测试需要发现的功能
1)是否有不正确的功能,是否有遗漏的功能
2)在接口上,是否能够正确地接收输入数据并产生正确的输出结果
3)是否有数据结构错误或外部信息访问错误
4)性能上是否满足要求
5)是否有程序初始化和终止方面的错误
-
非功能测试
- 非功能测试包括但不限于:性能测试、负载测试、压力测试、可用性测试、可维护性测试、可靠性测试和可移植性测试;非功能测试可以在任何测试级别上执行
-
结构测试/架构测试(也被称为结构测试、逻辑驱动测试、白盒测试)
- 作用:
1)检查程序中的每条通路是否都按照预定要求正确工作
2)需要完全了解程序结构和处理过程 - 覆盖:
如果覆盖没用达到百分之百则需要设计更多的测试用例来提高覆盖 - 检查:
1)程序的语句至少执行一次
2)对所有的逻辑条件都至少执行一次
3)在循环的边界和循环运行的边界内执行循环体等
- 作用:
白盒测试跟黑盒测试的对比
- 规划方面:
- 黑盒测试:功能的测试
- 白盒测试:结构的测试
- 优点方面:
- 黑盒测试:能够确保从用户的角度进行测试
- 白盒测试:能对程序内部的一些特定部分进行覆盖测试
- 缺点方面:
- 黑盒测试:无法测试程序内部特定部分;当规格说明书有误,则不能发现问题
- 白盒测试:无法检查程序的外部特征;无法对未实现规格说明的程序内部欠缺部分进行测试
- 测试方法:
- 黑盒测试:等价类划分,边界测试法,因果图,决策表测试,错误推断法
- 白盒测试:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,路径覆盖,循环覆盖,模块接口测试
与变更相关的测试主要有:确认测试(再测试)和回归测试
静态测试方法
-
静态测试方法包括
- 1)
审查
代码审查、代码走查、静态分析(控制流分析、数据流分析,复杂度分析)
代码审查的定义:
一种同级评审,通过检查文档以检查缺陷,例如不符合开发标准,不符合更上层的文档等- 2)
走查
走查主要目的:
学习、增加理解、发现缺陷
走查的定义:
由文档作者逐步陈述文档内容 ,以收集信息并对内容达成共识
走查的优点:
① 参加评审的人员只需较少的准备工作
② 可临时召集
走查的缺点:
① 参加者需要对相关资料非常熟悉
② 会议比一般的评审费时
③ 错误或其他问题可能会被忽略
- 2)
- 1)
-
动态测试一般采用白盒测试和黑盒测试方法
-
黑盒测试方法:功能分解、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交实验法
-
白盒测试方法:控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、条件组合覆盖测试、路径覆盖测试)、数据流测试、程序变异、程序插桩、域测试和符号求值等
网友评论