系统测试笔记

一.测试概述

软件测试是软件质量保证的主要手段之一。

1.原则:

1)尽早、不断的进行测试
2)程序员避免测试自己设计的程序
3)即要选择有效、合理的数据,也要选择无效、不合理的数据
4)修改后应该进行回归测试
5)尚未发现的错误数量与该程序已发现的错误数量成正比

2.用例设计

动态测试(利用到计算机的测试)
    黑盒测试/白盒测试/灰盒测试
    黑盒测试(不了解内部细节) 等价类划分/边界值分析/错误推测/因果图
    白盒测试(了解内部细节) 基本路径测试/循环覆盖测试/逻辑覆盖测试
        逻辑覆盖测试 语句覆盖/判定覆盖/条件覆盖/路径覆盖等
静态测试(不利用计算机的测试)
    桌前测试/代码走查/代码审查

3.测试阶段

冒烟测试-->单元测试/集成测试/确认测试-系统测试
冒烟测试-->有无明显故障
集成测试(一次性组装/增量式组装(一个一个模块增加进来测试))
     增量集成测试时 可能需要调用外部软硬件接口,可以编写驱动模块和桩模块进行模拟测试。
     增量式组装包括:自顶向下/自底向上/混合式
确认测试
内部确认测试/Alpha测试/Beta测试/验收测试
    Alpha测试/Beta测试 是针对产品的测试  Alpha测试是在开发环境的测试 Beta测试是在用户环境的测试
系统测试
恢复测试/安全性测试/压力测试/性能测试/可靠性测试/可用性测试/可维护性测试/安装测试
性能测试:负载测试/强度测试(在异常环境下能否正常处理)/容量测试

4.面向对象的测试

算法层(单元测试):等价类划分测试/组合功能测试(基于判定表的测试)/递归函数测试/多态消息测试
类层(模块测试):包括不变式边界测试、模态类测试/非模态类测试
模板层/类树层(集成测试):包括多态服务测试和展平测试
系统层(系统测试):

5.测试管理

测试团队管理
测试计划管理
错误(缺陷)跟踪管理 错误植入法/并行测试法/错误报告率DRE(D用户发现的bug数 e测试发现的bug数)
测试件管理

6.软件调试

蛮力法:暴力穷举,低效/耗时。
回溯法:从出错处,追踪到根源。
原因排除法:主要思想是演绎法和归纳,用二分法实现
调试是测试之后的活动。

二、测试方法

1.静态测试

主要手段是桌前检查、代码审查(检查单、检查表)、代码走查等。
静态分析方法:控制流分析、数据流分析、接口分析、表达式分析。

2.动态测试

主要分白盒测试和黑河测试
1)白盒测试
也称为结构测试,主要用于软件单元测试阶段。
测试方法:控制流测试、数据流测试、程序变异测试、、、
程序变异测试是针对某类特定程序错误的测试,专门测试某类错误是否存在。
2)黑盒测试
也称为功能测试,主要用于集成测试、确认测试和系统测试阶段。
包括:功能分解、等价类划分、边界值分析、判定表、因果图、状态图、随机测试、错误推测、正交实验法
等价类就是一组输入值,根据一个等价类内的数据是否合法、分为有效等价类和无效等价类。

三、测试类型

单元测试、集成测试、配置项测试、系统测试、验收测试、回归测试。

1.单元测试

1)单元测试的技术依据是软件详细设计说明书。
2)测试策略
自顶向下的单元测试、自底向上的单元测试、孤立测试和综合测试策略
自顶向下可以避免编写驱动模块
自底向上可以避免编写桩模块
孤立测试需要为每个模块编写驱动模块和桩模块。
一般混合使用各种策略,进行综合测试。
3)测试分析
a.静态分析 代码审查等
b.动态分析 对模块接口的测试优于其他测试内容。

2.集成测试

集成测试的技术依据是软件概要设计文档
1)集成测试策略
包括:基于分解的集成策略、基于功能的集成策略、基于调用图的集成策略。
a.基于分解的集成策略
可分为非渐增式和渐增式 非渐增式集成测试也称大突击测试或一次性集成测试。
渐增式集成测试也可分为自顶向下集成测试、自低向上集成测试、混合式集成测试。
b.基于功能的集成策略 
c.基于调用图的集成策略 
模块调用图是一种有向图、边表示程序调用。
2)集成测试分析
包括对被测试软件本身的分析,对测试可行性和测试策略的分析等。

3 .系统测试

1)主要测试内容:功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试。
a.核心是功能测试与性能测试。
b.性能测试主要包括:压力测试、负载测试、并发测试、可靠性测试。
c.性能测试通用模型PTMG 是性能测试过程的一个模型,主要步骤:测试前期的准备、引入测试工具、
制定测试计划、测试设计与开发、测试执行与管理、以及测试结果分析。
d.性能测试分析
包括性能下降曲线的分析和性能计数器的分析。
确定性能平坦区、性能轻微下降区、性能急剧下降区。

4.其他测试类型

1)配置项测试
检验软件配置项与SRS(软件需求规格说明书)的一致性。
2)确认测试
a.内部确认测试 由开发方内部按照SRS进行的测试。
b.Alpha测试和beta测试
Alpha测试由用户在开发环境下进行测试。beta测试由用户在生产环境下进行测试。
c.验收测试
3)回归测试
软件变更之后的测试。

四、面向对象的测试

1.面向对象测试方法

1)OO系统的测试策略与结构化系统的不同:a.测试焦点从模块移向了类 b.测试的视角扩大到了分析ooa和设计ood模型。
2)OO系统的测试分为:单元测试、集成测试、系统测试。单元测试、集成测试可以纳入OOP的测试活动,系统测试非OOP所独有。
部分文献将OO系统的测试分为:算法层、类层、模板层、系统层。算法层、类层大致于单元测试、模板层大致于集成测试。
3)OO方法将开发分为OOA、OOD、OOP三个过程,对应着OOA测试、OOD测试、OOP测试。
OOA测试:测试分析模型是否满足软件需求、测试分析模型是否符合OO方法的要求。
OOD测试:OOD对OOA进行了进一步的细化,如果分析设计模型完全是纸面的、测试主要以文档审查的方式进行,如果分析设计模型的部分或整体可以模拟运行,
测试还可以建立在模拟运行的基础上。
OOP测试:分为单元测试和集成测试。

2.单元测试

1)包括:方法层次的测试、类层次的测试、类树层次的测试。
2)方法层次的测试:等价类划分测试、组合功能测试(基于判定表的测试)、递归函数测试、多态消息测试等。
3)类层次的测试:
a.不变式边界测试:类属性的某些临界状态可能不会出现,成为类不变式
b.模态类测试:类在特定状态下的测试
c.非模态类测试:类在任何状态下的测试
4)类树层次的测试:
对类的父类和祖先类的影响进行测试。
包括:多态服务测试和展平测试(对继承和子类追加的方法进行测试)

3.集成测试

1)传统集成测试
a.大突击集成 先测试所有的类,然后把所有类集成到一起测试。
可以提高测试效率,难以充分测试,调试难度高。在整个软件的可靠性有了基本保障时,才可以使用大突击集成测试。
b.自底向上集成与自顶向下集成 
自底向上时,由于下层类已测试过,可以不用编写测试桩代码。
自顶向下集成时,由于上层类已测试过,所以不用编写测试驱动代码。
c.夹层式集成 从上下层向中间层测试。
2)协作集成
将可以互相协作完成特定功能的类集成在一起进行测试。
可以减少测试驱动代码和测试桩代码的开发。不适用较大的集成体。
3)基于使用的集成
首先测试那些比较独立的类。优缺点类似自底向上的集成。
4)类之间连接的测试
包括多重性测试,受控异常测试,往返场景测试和模态机测试。

五、软件测试组织

1.组织方

1)单云测试 一般由供方或开发方组织 也可委托第三方
2)集成测试 一般由供方组织 测试人云与开发人员应该互相独立 也可委托第三方
3)软件配置项测试 软件配置项测试要保证独立性 一般由供方组织 如果要委托第三方,一般第三方测试机构应获得国家认可。
4)系统测试 按照合同规定执行 由需方或开发方组织 如果要委托第三方,一般第三方测试机构应获得国家认可。
5)验收测试 由需方组织 如果要委托第三方,一般第三方测试机构应获得国家认可。
6)回归测试 一般由响应测试阶段的组织方组织。

2.测试过程

包括:测试策划、测试设计、测试执行、测试总结。
1)测试策划 确定测试的内容/质量特征/充分性要求/基本测试方法/所需资源和技术
进行风险分析和评估,制定测试计划。
2)测试设计 设计测试用例/获取测试数据/搭建测试环境
进行测试就绪评审
3)测试执行
4)测试总结 完成测试报告、并通过测试评审

3.测试管理

包括:过程管理、配置管理、评审工作。
1)过程管理 
包括测试活动管理和测试资源管理。
测试准入条件:具有测试合同或项目计划、具有测试所需各种文档、所提交的测试软件已经受控、软件源代码已经正确通过编译。
测试准出条件:已按要求完成了合同或项目计划所规定的测试任务等等。
2)配置管理
测试过程中产生的各种工作产品,应纳入配置管理,
如:全部测试工具、被测软件、评审结果等
3)评审
包括测试就绪评审和测试评审。
测试就绪评审 测试设计阶段完成后,对测试计划和说明进行评审
测试评审 测试总结阶段 对测试记录和测试报告进行评审。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值