软件工程——质量管理
一 测试概念
测试目的
用户角度:暴露软件中存在的问题
软件开发角度:表明软件中不存在错误,验证软件正确实现了用户需求
测试对象
测试过程贯穿整个软件定义与开发时期
对象包括:需求规格说明、概要设计说明、详细设计说明及源程序
二 测试策略
测试过程分为四步:单元测试->集成测试->确认测试->系统测试
传统测试
1 单元测试
单元测试内容
对源代码每个单元模块的功能进行测试,多采用白盒测试
(1)、模块接口测试:调用本模块的输入参数是否正确
(2)、局部数据结构测试:对不一致或不正确的数据类型测试
(3)、路径测试:对基本执行路径与循环进行测试
(4)、错误处理测试:对出错后定位进行测试
(5)、边界测试:对数据流、控制流正好在确定值附近的数测试
单元测试步骤
如果一个模块要完成多个任务,则把每个任务看成多个小程序组成,对每个小程序进行单元测试
对模块进行测试时要考虑其与外界的联系,用一些辅助模块来辅助待测模块
-
驱动模块
-
桩模块------存根模块
2 集成测试(组装测试)
把每个模块组装起来,主要对与设计相关的软件体系结构测试
一次性组装方式
首先对每个模块进行测试,最后组装起来再进行一次测试
增值式组装方式
首先对一个个模块进行测试,然后边组装边测试,以发现连接过程中产生的问题
(1)自顶向下的增值方式:先检验主要控制和判断点,先检验完整的软件功能
(2)自底向上的增值方式:从最底层模块开始组装和测试。不再需要桩模块
(3)混合增值式测试(衍变的自顶向下的增值测试):首先对I/O操作和新算法进行测试--->再自低向上组装成功能相当完整的子系统--->最后由主模块开始自顶向下测试
3 回归测试与冒烟测试
冒烟测试
由开发人员与测试人员共同进行,在测试过程中测试人员找到BUG让开发人员修改,它是一种版本验证测试,主要确认新的版本是否存在致命BUG,如果版本正确就进行下一轮测试
回归测试
在软件维护阶段对软件进行修改后的测试,指修改就代码后确保没有引进新的错误
面向对象测试
总体策略与传统测试相同,从“小型测试”到“大型测试”
小型测试重点是类的测试
集成测试重点是发现类间通信错误以及新加入类产生的副作用
确认测试
又称为有效性测试。测试任务软件是否达到预期的功能与性能。
α测试
-
由一个用户在开发环境下测试,或者是公司内部人员模拟实际操作环境测试
-
可以在软件开发完成后开始,也可以在模块测试完成后开始,也可以在软件相对稳定后开始
β测试
- 多个用户在实际使用过程中进行测试
- 测试时开发人员不在场
- 开发者无法进行现场应用与调试
- 只有当α测试达到一定可靠程度才可以开始β测试
系统测试
将通过测试的软件作为一部分与计算机硬件、外设等其他部分组合起来测试,目的在于发现软件与系统的定义不符合或与之矛盾的地方。
系统测试的种类:
功能测试、可靠性测试、压力测试、性能测试、回复测试、安全性测试
三 测试方法
黑盒测试
黑盒测试又叫功能测试或数据驱动测试,在不考虑程序内部逻辑结构和内部特征的情况下只通过需求规格说明书来进行功能测试
等价类划分
把程序所有的输入域划分成若干部分,然后从每一部分中取少数有代表性的数据作为测试用例
1、划分等价类(列出等价类表)
分为有效等价类与无效等价类,如1<x<100为有效,则x<1||x>100为无效
2、确立测试用例
等价类表:
输入条件 | 有效等价类 | 无效等价类 |
---|---|---|
。。。。 | 。。。。 | 。。。。 |
边界值分析
错误大多数都发生在输入输出范围的边界上,因此针对边界进行测试
白盒测试
白盒测试又叫结构测试或逻辑驱动测试,允许编程人员根据系统内部逻辑结构等相关信息对程序逻辑路径进行测试
1、基本路径测试:设计出的测试用例要保证在测试中,每一条语句都至少要执行一次
2、控制结构
3、循环结构