重点明确以下几个测试方法的概念和开展测试的思路。
单元测试
单元测试自己也做过,老早就关注了这种测试方法,目前做的SDK的测试和单元测试也有很大的相似性,单元测试的理论也是一大篇,每一点看起来都是那么的重要,这里主要记录单元测试的方法,记住到底怎么做单元测试,不要和别的测试搞混啦。
测试方法:以白盒测试方法为主,辅以黑盒测试方法。
单元测试需要达到以下一些具体目标:
1. 信息能否正确地流入和流出单元;
2. 在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,也包括全局变量在单元中的处理和影响。
3. 在为限制数据加工而设置的边界处,是否正确工作。
4. 单元的运行能否做到满足特定的逻辑覆盖。
5. 单元中发生了错误,其中的出错处理措施是否有效。
单元测试任务:
1. 模块接口测试。
2. 模块局部数据结构测试。
3. 模块边界条件测试。
4. 模块中所有独立执行通路测试。
5. 模块的各条错误处理通路测试。
白盒测试在单元测试中的应用技术有逻辑驱动发和基本路径测试法。这两种方法不考虑软件的功能实现。基于对模块内部结构的清晰了解,要求做到验证内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
1. 语句覆盖:选择足够的测试用例,使程序中每一条可执行语句至少被执行一次。
2. 判定覆盖:选择足够的测试用例,使得程序中每一个分支判断的每一种可能结构都至少被执行一次,判定覆盖也叫分支覆盖。
3. 条件覆盖:选择足够的测试用例,使得程序中每一个分支判断的每一个条件的可能结果都至少被执行一次。
4. 判定/条件覆盖:选择足够的测试用例,使得同时满足判定覆盖和条件覆盖。
5. 条件组合覆盖:选择足够的测试用例,使得程序中每一个分支判断中每一个条件的每一种可能组合结果都至少被执行一次。
6. 路径覆盖:选择足够的测试用例,使得程序中所有的可能路径都至少被执行一次。
7. 循环测试:在上下边界及可操作范围内运行所有的循环。
黑盒测试方法主要运用于单元的功能和性能方面的测试。
黑盒测试常用的技术和方法包括:
1. 等价类划分法
2. 边界值分析法
3. 错误推测法
4. 因果图法
5. 功能图法
在功能性测试方面通常会利用三种数据来进行测试,即正常数据,边缘数据和错误数据。
单元测试的常用工具
有些开发的集成环境就提供了一些测试的工具,另外,还有专业的测试工具,按测试的范围和功能,可分为以下一些种类:
1. 静态分析工具;
2. 代码规范审核工具;
3. 内存和资源检查工具;
4. 测试数据生成工具;
5. 测试框架工具;
6. 测试结果比较工具;
7. 测试度量工具;
8. 测试文档生成和管理工具;
集成测试(Integration test)
集成测试是将已分别通过测试的单元按设计要求组合起来再进行的测试,以检测这些单元之间的接口是否存在问题。
测试方法:集成测试阶段是以黑盒测试为主。
集成方法:
1. 自顶向下和自底向上集成方法
2. 大棒和三明治集成方法
3. 持续集成
功能测试
主要是根据产品规格说明书,来检验被测试的系统是否满足各方面的使用要求。
有时黑盒测试也被称为功能测试。
功能测试的方法:
1. 等价类划分法,将测试数据等价划分,同类归纳
2. 边界值分析法,验证边界值
3. 错误推测法,根据经验推测哪里可能出现错误
4. 因果图法,分析各种组合
5. 组合分析法,考虑参数之间的影响,基于每对参数组合的测试技术
系统测试
通常意义上的系统测试包括:
1. 压力测试
2. 容量测试
3. 性能测试
4. 安全测试
5. 容错测试
回归测试
回归测试的目的:是在程序有修改的情况下保证原有功能正常的一种测试策略和方法,因为这时的测试不需要进行全面测试,从头到尾测试一遍,而是根据修改的情况进行有效测试。
回归测试的方法,应该兼顾效率和有效性两个方面,
1. 再测试全部用例
2. 基于风险选择测试
3. 基于操作剖面选择测试
4. 再测试修改的部分
压力测试
是一种需要反常数据、频率或资源的方式下,执行可重复的负载测试,以检查程序对异常情况的抵抗能力,找出性能瓶颈。压力测试总是迫使系统在异常的资源配置下运行,例如以下几种情况:
1. 当中断的正常频率为每秒1~2个时,运行每秒产生10个中断的测试用例。
2. 定量地增长数据输入率,检查对数据处理的反应能力
3. 运行需要最大存储空间(或其他资源)的测试用例
4. 运行可能导致虚存操作系统崩溃或大量数据对磁盘进行存取操作的测试用例等
容量测试
容量测试的目的是同坐测试预先分析出反映软件系统应用特征的某项指标极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。
性能测试
通过测试确定系统运行是的性能表现,如得到运行速度、响应时间、占有系统资源等方面的系统数据。
安全性测试
安全性是“使伤害或损害的风险限制在可接受的水平内”。
安全性测试是检查系统对非法侵入的防范能力。
可靠性测试
可靠性是产品在规定的条件下和规定的时间内完成规定功能的能力,它的概率度量称为可靠度。
在可靠性测试中,可以考虑进行“强化输入”,即输入比正常输入更恶劣(合理程度的恶劣)的数据,如果软件在强化输入下可靠,就能说明比正规输入下可靠得多。
容错性测试
容错性测试值检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。
验收测试
包括;
易用性测试
兼容性测试
安装测试
文档测试
兼容性测试
软件的兼容性测试是指验证软件之间是否能正确地交互和共享信息。交互可以是同时运行于同一台计算机上,或在相隔甚远的不同计算机上的两个程序之间进行。
安装测试
注意以下几点:
1. 是否需要专业人员安装
2. 软件安装说明书有无对安装环境做限制和要求。
3. 安装过程时都简单,容易掌握。
4. 安装过程 时都有明显的、合理的提示信息。
5. 安装过程中时都会出现不可预见的或不可修复的错误
6. 安装程序时都占用系统资源和原系统冲突,是否会影响原系统的安全性。
7. 软件安装的完整性和灵活性
8. 软件使用的许可号码或注册号码的验证
9. 升级安装后原有应用程序是否可正常运行
10. 卸载测试也是安装测试的一部分。
将几个常用的测试类型的详细叙述总结摘抄下来,以方便常常温习:-D
完毕