软件工程复习资料(三)

来源:互联网 发布:论坛源码下载 编辑:程序博客网 时间:2024/06/08 08:29

特别鸣谢:陈同学对于本章知识的总结与记录,对您所做的工作表示衷心的感谢,非常感谢您一直以来的支持与帮助,O(∩_∩)O谢谢

一、测试策略
验证:是否在正确地构造产品,确保软件正确地实现某一特定功能。
确认:是否在构造正确的产品,确保开发的软件可以满足客户的需求。

二、软件测试分类
(1) 根据测试的方式:静态测试和动态测试
(2) 根据测试技术:白盒测试和黑盒测试
(3) 根据测试的阶段:单元测试、集成测试、系统测试、确认测试
(4) 根据测试的目的:功能性测试和非功能性测试。非功能性测试可以分为可靠性测试、性能测试、安全测试等

1.1静态测试
概念:不执行被测软件,只是分析或检查需求规格说明书、设计说明书、源程序等。

1.2动态测试
概念:通过运行软件的组件或系统来测试软件。
这里写图片描述

2.1白盒测试
2.1.1概念:通过分析组件/系统的内部结构和代码,并设计相应测试用例进行的测试。

2.1.2优缺点
优点:
(1) 使程序员注意对于代码的自我审查
(2) 可以测试代码中的每条分支路径,对代码的测试比较彻底,可以证明测试工作的完整性
(3) 揭示隐藏在代码中的缺陷,保证程序中没有不该存在的代码
(4) 根据内部结构进行最优化测试
缺点:
(1) 执行路径可能非常多,造成无法进行完全测试
(2) 测试员必须具备编程知识
(3) 通常而言,由于涉及到代码分析,白盒测试的效率不高,导致测试成本过高

2.1.3白盒测试方法:
(1) 基于控制流:
控制流图包含3种成分:
这里写图片描述

这里写图片描述

独立路径:从程序入口到出口的多次执行中,每次至少有一个语句是新的,未被重复的。独立路径等于环复杂度。
环复杂度:V(G) = E(边数) – N(节点数) + 2,上图中V(G) = 10 – 8 + 2 = 4。共4条独立路径。

2.2黑盒测试
2.2.1概念:基于需求说明书的软件测试,在这种测试下,不需要了解软件的内部结构,以及软件代码的具体实现。

2.2.1优缺点
优点:
可以指导测试人员选择高效和有效发现软件缺陷的测试子集。
缺点:
不能确认对软件测试的程度。

2.2.3黑盒测试方法:
(1) 等价类划分:
设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。划分等价类的方法有以下几种:
①规定了取值范围:可以确立一个有效等价类和两个无效等价类。
这里写图片描述
②规定了输入值的集合:可以确立一个有效等价类和一个无效等价类。
这里写图片描述
③对不同情况的输入值(假设有n种情况)分别处理时,可确立n个有效等价类和一个无效等价类。
这里写图片描述
(2)边界值分析
概念:边界测试是指对等价类区间边界附近的数据进行测试。

3.1单元测试
概念:是对一个模块的测试,是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。
驱动模块——在对底层或子层模块进行单元测试时,所编制的调用被测模块的程序,用于模拟被测模块的上级模块。
桩模块——对顶层或上层模块进行单元测试时,所编制的替代下层模块的程序,用于模拟被测模块工作过程中所调用的模块。

这里写图片描述

3.2集成测试
概念:集成的过程就是形成子系统及系统的过程。对子系统进行测试称为集成测试。
集成策略包括:
1. 非增量式集成:非增量式集成测试采用一步到位的方法进行测试,即在完成单元测试后,一次性将所有模块连接起来进行整体测试;
2. 增量式集成:包括(1)自顶向下集成;(2)自底向上集成;(3)回归测试

3.3系统测试
概念:系统测试即各个模块形成了一个统一的系统,对形成的整个系统进行测试。
系统测试主要包括:
1. 功能测试(黑盒测试)
2. 用户界面测试
3. 性能测试
4. 可靠性、稳定性测试
5. 恢复测试
6. 安全性测试
7. 强度测试
8. 易用性测试

3.4确认测试
确认测试面向客户,从客户使用和业务场景的角度出发,目的是得到用户的理解和认同。
分为α测试和β测试:
(1)α测试——是由用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。是在受控制的环境下进行的测试。
(2)β测试——是指典型用户在日常工作中实际使用软件系统,并要求用户报告异常情况、提出批评意见,然后软件开发公司再对软件进行改错和完善。

4.面向对象的测试
4.1基于故障的测试
概念:关注于产品要做什么,从分析模型开始,测试人员查找系统有可能产生错误的方面,设计测试用例检查设计或代码。

4.2基于场景的测试
概念:关注于用户做什么,通过用例捕获用户必须完成的任务,在测试时使用这些用例。