软件测试-系统测试、动态测试工具
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 方法:基于经验 – 结果:
• 优化测试用例库、软件故障模型、测试策略和测试计划,测试经验总结
8.8.5 系统测试手段
• 软件攻击是要寻找系统中最容易出现错误的地方进行测试,保证多快 好省的找出错误
• 软件攻击的核心是基于故障模型的测试用例设计
8.8.5 系统测试手段
1. 软件故障模型
– 故障模型是将测试员的经验和直觉尽量归纳和固化,使得可以重复使用 – 故障模型在框架上应该是通用的 – 故障模型设计时,要重点考虑软件的行为特征
– 方法
• 阅读软件使用手册、试运行软件、阅读早期版本报告
– 结果
• 建立错误模型 • 确认初步的测试策略和测试计划 • 确定测试结束标准或测试退出机制
8.8.4 系统测试设计
2. 测试设计的一般流程——设计测试用例
– 目的:设计尽可能多、快、好、省发现错误的测试用例 – 任务:理解软件模型、理解现有的测试用例库、设计具体的测试用例 – 方法:采用基于故障模型的软件攻击法 – 结果:测试用例
– 结果
• 记录运行结果、新的设计用例设计思路,提交并处理的缺陷报告
8.8.4 系统测试设计
4. 测试设计的一般流程——评估测试用例和测试设计
– 目的:检验测试用例和测试计划中测试策略的有效性,必要时对测试用 例进行完善和修改
– 任务:
• 根据测试结果完善、修改、合并测试用例 • 对测试用例库进行维护 • 根据结果修正和完善测试策略和测试计划
优势
可以以API调用失败 的方式模拟故障
可以只影响 被植入的程序
8.8.5 系统测试手段
• 运行期故障植入实现机制——截获API
基于调 用源截
获
目的地 截获
方式
路径内 截获
8.8.5 系统测试手段
• 运行期故障植入实现策略:
基于模式的故 障植入
基于系统调用 的故障植入
总结
• 系统测试设计 • 系统测试手段
8.9 动态测试工具介绍
8.9.1 开源单元测试工具
3. CPPUnit单元测试工具
– CPPUnit按照层次管理测试 • 最底层的就是测试用例Test Case,当有了几个Test Case以后, 可以把他们组织成测试Fixture • 在测试Fixture中,可以建立被测试的类的实例,并编写Test Case 对类实例进行测试 • 当有了多个Test Fixture后就可以使用Test Suite来对测试进行管 理 • 可通过设计TestSuite中多个TestCase的测试内容和调用顺序来测 试一组相关代码的正确性
总结
• 开源单元测试工具 • 功能测试工具 UFT • 性能测试工具 LoadRunner
课后作业
• 系统测试设计的一般流程? • 能够使用Cppunit、Gcov进行单元测试。 • 能够使用UFT、LoadRunner进行简单的系统测试。
8.8.5 系统测试手段
3. 软件故障植入
– 程序代码分为功能代码和异常处理代码 – 故障植入的目标是强制执行异常处理代码,从而发现其中的错误
8.8.5 系统测试手段
• 软件故障植入方式:
运行期植入
编译期植入
方式
8.8.5 系统测试手段
• 运行期植入故障的优势
不需要源代码
可以达到模拟环境 故障的目标
用例
8.9.3 性能测试工具 HP LoadRunner
LoadRunner工具
– LoadRunner是一种用于各种体系结构的自动负载测试工具; – 通过模拟上千万和用户实施并发负载及实时性能检测的方式来确认和查
找问题,对企业的整个架构进行测试,帮助企业最大限度的缩减测试时 间,优化性能和加速应用系统的发布周期。
8.9.1 开源单元测试工具
4. 覆盖测试工具Gcov
– 可以作为C/C++代码覆盖率的测试工具; – Gcov基本功能:
• 可以查看测试时代码执行的覆盖率; • 支持函数覆盖、语句覆盖和分支Βιβλιοθήκη Baidu盖等覆盖测试内容 • 可查看程序在某分支处的执行频率
8.9.2 功能测试工具 HP UFT
UFT工具
– UFT是Unified Functional Testing的简称,是一种自动化测试工具 – UFT主要帮助测试人员完成软件的功能测试 – UFT提供符合所有主要应用环境的功能测试和回归测试的自动化 – UFT采用关键字驱动的理念来简化测试用例的创建和维护 – 用户可以直接录制屏幕上的操作流程,自动生成功能测试或回归测试
8.8.5 系统测试手段
2. 典型攻击方法——考虑因素
何时施加 攻击
何种软件故 障会使攻击
成功
如何确定攻 击暴露失效
如何进行 攻击
8.8.5 系统测试手段
2. 典型攻击方法——25种典型攻击
– 用户接口输入攻击(6种) – 用户接口输出攻击(4种) – 用户接口数据攻击(3种) – 用户接口计算攻击(4种) – 文件系统介质攻击(3种) – 文件系统文件攻击(3种) – 操作系统和软件接口攻击(2种)
8.8 系统测试
8.8.4 系统测试设计
• 测试设计的一般流程
理解软件和测试目标 设计测试用例
运行测试用例并处理测试结果 评估测试用例和测试设计
8.8.4 系统测试设计
1. 测试设计的一般流程——理解软件和测试目标
– 目的:建立软件故障模型,了解测试目标,来确定测试策略和测试计划 – 任务:
• 了解软件的功能和业务背景、用户环境 • 了解软件的开发背景和系统结构 • 了解系统的测试目标和资源限制,确定测试策略和计划
8.8.4 系统测试设计
3. 测试设计的一般流程——运行测试用例并处理测试结果
– 目的:使用测试用例发现错误并关闭错误 – 任务:运行测试用例并记录结果、评估并记录、处理缺陷直至关闭缺陷 – 方法:
• 选择测试用例库中的测试用例运行 • 选择新设计的测试用例执行 • 录制/回放或比录中间步骤和结果,记录执行过程
• 优化测试用例库、软件故障模型、测试策略和测试计划,测试经验总结
8.8.5 系统测试手段
• 软件攻击是要寻找系统中最容易出现错误的地方进行测试,保证多快 好省的找出错误
• 软件攻击的核心是基于故障模型的测试用例设计
8.8.5 系统测试手段
1. 软件故障模型
– 故障模型是将测试员的经验和直觉尽量归纳和固化,使得可以重复使用 – 故障模型在框架上应该是通用的 – 故障模型设计时,要重点考虑软件的行为特征
– 方法
• 阅读软件使用手册、试运行软件、阅读早期版本报告
– 结果
• 建立错误模型 • 确认初步的测试策略和测试计划 • 确定测试结束标准或测试退出机制
8.8.4 系统测试设计
2. 测试设计的一般流程——设计测试用例
– 目的:设计尽可能多、快、好、省发现错误的测试用例 – 任务:理解软件模型、理解现有的测试用例库、设计具体的测试用例 – 方法:采用基于故障模型的软件攻击法 – 结果:测试用例
– 结果
• 记录运行结果、新的设计用例设计思路,提交并处理的缺陷报告
8.8.4 系统测试设计
4. 测试设计的一般流程——评估测试用例和测试设计
– 目的:检验测试用例和测试计划中测试策略的有效性,必要时对测试用 例进行完善和修改
– 任务:
• 根据测试结果完善、修改、合并测试用例 • 对测试用例库进行维护 • 根据结果修正和完善测试策略和测试计划
优势
可以以API调用失败 的方式模拟故障
可以只影响 被植入的程序
8.8.5 系统测试手段
• 运行期故障植入实现机制——截获API
基于调 用源截
获
目的地 截获
方式
路径内 截获
8.8.5 系统测试手段
• 运行期故障植入实现策略:
基于模式的故 障植入
基于系统调用 的故障植入
总结
• 系统测试设计 • 系统测试手段
8.9 动态测试工具介绍
8.9.1 开源单元测试工具
3. CPPUnit单元测试工具
– CPPUnit按照层次管理测试 • 最底层的就是测试用例Test Case,当有了几个Test Case以后, 可以把他们组织成测试Fixture • 在测试Fixture中,可以建立被测试的类的实例,并编写Test Case 对类实例进行测试 • 当有了多个Test Fixture后就可以使用Test Suite来对测试进行管 理 • 可通过设计TestSuite中多个TestCase的测试内容和调用顺序来测 试一组相关代码的正确性
总结
• 开源单元测试工具 • 功能测试工具 UFT • 性能测试工具 LoadRunner
课后作业
• 系统测试设计的一般流程? • 能够使用Cppunit、Gcov进行单元测试。 • 能够使用UFT、LoadRunner进行简单的系统测试。
8.8.5 系统测试手段
3. 软件故障植入
– 程序代码分为功能代码和异常处理代码 – 故障植入的目标是强制执行异常处理代码,从而发现其中的错误
8.8.5 系统测试手段
• 软件故障植入方式:
运行期植入
编译期植入
方式
8.8.5 系统测试手段
• 运行期植入故障的优势
不需要源代码
可以达到模拟环境 故障的目标
用例
8.9.3 性能测试工具 HP LoadRunner
LoadRunner工具
– LoadRunner是一种用于各种体系结构的自动负载测试工具; – 通过模拟上千万和用户实施并发负载及实时性能检测的方式来确认和查
找问题,对企业的整个架构进行测试,帮助企业最大限度的缩减测试时 间,优化性能和加速应用系统的发布周期。
8.9.1 开源单元测试工具
4. 覆盖测试工具Gcov
– 可以作为C/C++代码覆盖率的测试工具; – Gcov基本功能:
• 可以查看测试时代码执行的覆盖率; • 支持函数覆盖、语句覆盖和分支Βιβλιοθήκη Baidu盖等覆盖测试内容 • 可查看程序在某分支处的执行频率
8.9.2 功能测试工具 HP UFT
UFT工具
– UFT是Unified Functional Testing的简称,是一种自动化测试工具 – UFT主要帮助测试人员完成软件的功能测试 – UFT提供符合所有主要应用环境的功能测试和回归测试的自动化 – UFT采用关键字驱动的理念来简化测试用例的创建和维护 – 用户可以直接录制屏幕上的操作流程,自动生成功能测试或回归测试
8.8.5 系统测试手段
2. 典型攻击方法——考虑因素
何时施加 攻击
何种软件故 障会使攻击
成功
如何确定攻 击暴露失效
如何进行 攻击
8.8.5 系统测试手段
2. 典型攻击方法——25种典型攻击
– 用户接口输入攻击(6种) – 用户接口输出攻击(4种) – 用户接口数据攻击(3种) – 用户接口计算攻击(4种) – 文件系统介质攻击(3种) – 文件系统文件攻击(3种) – 操作系统和软件接口攻击(2种)
8.8 系统测试
8.8.4 系统测试设计
• 测试设计的一般流程
理解软件和测试目标 设计测试用例
运行测试用例并处理测试结果 评估测试用例和测试设计
8.8.4 系统测试设计
1. 测试设计的一般流程——理解软件和测试目标
– 目的:建立软件故障模型,了解测试目标,来确定测试策略和测试计划 – 任务:
• 了解软件的功能和业务背景、用户环境 • 了解软件的开发背景和系统结构 • 了解系统的测试目标和资源限制,确定测试策略和计划
8.8.4 系统测试设计
3. 测试设计的一般流程——运行测试用例并处理测试结果
– 目的:使用测试用例发现错误并关闭错误 – 任务:运行测试用例并记录结果、评估并记录、处理缺陷直至关闭缺陷 – 方法:
• 选择测试用例库中的测试用例运行 • 选择新设计的测试用例执行 • 录制/回放或比录中间步骤和结果,记录执行过程