数据库设计开发案例教程x.PPT
文本预览下载声明
* * 软件测试技术案例教程第三章 软件测试计划与策略 主要内容 1. 软件测试计划 2. 软件测试策略 3. 软件测试过程 4. 软件测试与软件开发过程 5. 软件自动化测试介绍 6. 项目案例 3.1 软件测试计划 测试计划是对每个产品,或是对各个开发阶段的产品开展测试的策略。 一个完整的测试计划应该包含以下几个方面: 对测试范围的界定; 风险的确定; 资源的规划; 时间表的制定; 3.1 软件测试计划 制定测试计划的原则 制定测试计划应尽早开始 保持测试计划的灵活性 保持测试计划简洁和易读 尽量争取多渠道评审测试计划 计算测试计划的投入 3.1 软件测试计划 制定测试计划,步骤: (1)产品基本情况调研 (2)测试需求说明 (3)测试的策略和记录 (4)测试资源配置 (5)计划表 (6)问题跟踪报告 (7)测试计划评审 3.2软件测试策略 静态测试与动态测试 3.2软件测试策略 白盒测试与黑盒测试 3.2软件测试策略 软件测试分类与测试方法 手工测试 自动测试 静态测试 动态测试 黑盒测试 白盒测试 功能测试 界面测试 单元测试 集成测试 系统测试 验收测试 冒烟测试 常规测试 内部测试 外包测试 安装/卸载测试 兼容性测试 本地化测试 国际化测试 安全性测试 易用性测试 Beta测试 Alpha测试 跨平台测试 文档测试 RTM测试 3.3 软件测试过程 3.3 软件测试过程 3.3 软件测试过程 1. 单元测试 目的:检测程序模块中有无故障存在 对象:软件设计的最小单位,与程序设计和编程实现关系密切 2. 集成测试 目的:发现与接口有关的模块之间的问题 方法:非增式集成测试法和增式集成测试法 3.3 软件测试过程 2. 集成测试 非增式集成测试法 对每一个模块进行单元测试 在此基础上按程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试 增式集成测试法 不断地把待测模块连接到已测模块集(或其子集)上,对待测模块进行测试,直到最后一个模块测试完毕 3.3软件测试过程 3. 确认测试 目的:对软件产品进行评估以确定其是否满足软件需求的过程 4. 系统测试 目的:针对系统中各个组成部分进行的综合性检验,证明系统的性能 测试人员要求: 系统开发人员不能进行系统测试。 系统开发组织不能负责系统测试。 3.4软件测试与软件开发过程 软件测试在软件开发中的作用 项目规划阶段:负责整个测试阶段的监控。 需求分析阶段:确定测试需求分析,制定系统测试计划。测试需求分析是指产品生存周期中测试所需的资源、配置、各阶段评审通过的标准等。 概要设计和详细设计阶段:制定集成测试计划和单元测试计划。 编码阶段:开发相应的测试代码或测试脚本。 测试阶段:实施测试,并提交相应的测试报告。 3.4软件测试与软件开发过程 搭建软件测试环境还应注意以下几点: 尽量模拟用户的真实使用环境; 测试环境中尽量不要安装其它与被测软件无关的软件,但最好安装杀毒软件,以确保系统没有病毒; 测试环境应与开发环境独立。 3.4软件测试与软件开发过程 软件测试与开发的阶段关系 软件需求文档 软件验收测试 软件设计规格 软件系统测试 软件框架设计 软件集成测试 软件详细设计 软件单元测试 软件编码 PM/市场/用户 PM、架构师 架构师 高级程序员 程序员 程序/测试人员 测试人员 测试人员 用户/测试人员 程序员 3.5 软件自动化测试介绍 自动化测试的意义 通常,软件测试的工作量很大(据统计,测试会占用到40%的开发时间;一些可靠性要求非常高的软件,测试时间甚至占到开发时间的60%)。而测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这样的任务。 软件自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点。 要理解为什么要进行自动化测试,可以从两个方面考虑: 一是手工测试的局限性; 二是软件自动化测试所带来的好处。 3.5 软件自动化测试介绍 手工测试的局限性 通过手工测试无法做到覆盖所有代码路径。 简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大。 许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到。 进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过手工测试来进行。 进行系统可靠性测试时,需要模拟系统运行10年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的。 如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。 3.5 软件自动
显示全部