软件生命周期中的测试
详细设计 ---> 单元测试
↘
编码
↗
|← ---基本开发阶段-- -→ | | ←--基本测试阶段--→ | 实际上,V模型的测试级别可能会比上面提到的4种多,也可能少,或者有不同的测试级别,这取决于不同的项目和软 件产品。
一、常用软件开发模型讲解
2、生命周期模型中的测试
在任何生命周期模型中,一个好的测试都应该具有下面几 个特点: 每个开发活动都有相对应的测试活动; (开发需要测试 来检证) 每个测试级别都有其特有的测试目标; 对于每个测试级别,需要在相应的开发活动过程中进行 相应的测试分析和设计;(测试与开发并不是两个相对 独立的存在,每个开发阶段都需要相对应的完整的测试 阶段去经行检证。) 在开发生命周期中,测试员在文档初稿阶段就应该参与 文档的评审。 (不是先开发,当进行完代码编写阶段后 才开始测试活动。)
二、测试阶段概述
4、集的单元组合成一个组件,并且测试它 们之间的接口 目标: 集成测试是对组件之间的接口进行测试,以及测试一个系统内不同部 分的相互作用,比如操作系统、文件系统、硬件或系统之间的接口。集成 测试所检测的是此前测试过的各组成部分是否能完好地结合到一起。 举例: 关注两个模块之间的交互,而不是每个模块的功能。 比如升级游戏中边打牌边查看玩家信息,得分数是否有变化。
测的是代码的开发是否符合详细设计的要求。
举例: A、聊天软件的开发过程,聊天模块。 B、功能性的测试在利用调试工具的基础上由测试人员完成;特定函 数由开发人员完成(白盒部分)。
二、测试阶段概述
3、单元测试(组件测试)概述 :
特点: 单元测试可以和系统的其他部分分开,单独进行测试。 (与开发同步 进行,提高效率) 测试方法: A、功能测试 B、特定的非功能特征测试 资源行为测试(内存泄漏) 健壮性测试 结构测试(分支覆盖) 测试用例设计依赖: 根据工作产品如,组件规格说明、软件设计或数据模型等,来设计测 试用例。
二、测试阶段概述
1、本章常用术语 Alpha测试(alpha testing):由潜在用户或者独立的测试团队在开发环境下或者模拟实际操作环境下进行的测试, 通常在开发组织之外进行。通常是对现货软件(COTS)进行内部验收测试的一种方式。 Beta测试(beta testing)、现场测试(field testing):用户在开发组织外,没有开发人员参与的情况下进行的测试, 检验软件是否满足客户及业务需求。这种测试是软件产品获得市场反馈进行验收测试的一种形式。 组件测试(component testing)(也称为单元测试、模块测试或程序测试):判定组件功能性的测试;组件:一 个可被独立测试的最小软件单元。 驱动器(driver):代替某个软件组件来模拟控制和/或调用其他组件或系统的软件或测试工具。 功能需求(functional requirement):指定组件/系统必须实现某项功能的需求。 集成(integration):把组件/系统合并为更大部件的过程。 集成测试(integration testing):一种旨在暴露接口以及集成组件/系统间交互时存在的缺陷的测试。 非功能需求(non-functional requirement):与功能性无关,但与可靠性(reliability)、高效性(efficiency)、可用性 (usability)、可维护性(maintainability)和可移植性(portability)等属性相关的需求。 健壮性测试(robustness testing):判定软件产品健壮性的测试;健壮性:在出现无效输入或压力环境条件下, 组件/系统能够正常工作的程度。 桩(stub):一个软件组件框架的实现或特殊目的实现,用于开发和测试另一个调用或依赖于该组件的组件。它代 替了被调用的组件。 系统测试(system testing):测试集成系统以验证它是否满足指定需求的过程。 测试级别(test level):统一组织和管理的一组测试活动。测试级别与项目的职责相关联。例如,测试级别有组 件测试、集成测试、系统测试和验收测试。 测试驱动开发(test-driven development):在开发软件之后,运行测试用例之前,首先开发并自动化这些测试用 例的一种软件开发方法。 测试环境(test environment):执行测试需要的环境,包括硬件、仪器、模拟器、软件工具和其他支持要素。 用户验收测试(user acceptance testing)、验收测试(acceptance testing):一般由用户/客户进行的确认是否可 以接受一个系统的验证性测试。是根据用户需求,业务流程进行的正式测试以确保系统符合所有验收准则。
浅谈软件生命周期中的测试
提
纲
前言 一、常用软件开发模型讲解 二、测试阶段概述 三、测试类型概述 四、维护测试概述 五、小结
前言
测试是孤立存在的吗?
测试是孤立存在的吗?
1、测试与开发是两个相对独立的存在。
2、测试工程师和开发工程师的工作性质是两个 不同方面,说得极端一点,一个是创建,一个 是挑毛病 。
一、常用软件开发模型讲解
1、V模型
虽然存在多种多样的V-模型,但典型的V-模型一般有四种测试级别,别与四种开发级别相对应。
预验收测试 可行性分析 -----------------> 验收测试
↘ ↘ ↘
预系统测试
↗ ↗ ↗
需求分析 -------------> 系统测试 预集成测试
概要设计 --------> 集成测试 预单元测试
二、测试阶段概述
2、对于每个测试级别,都需要明确下面的内容:
A. 测试的对象(即测试什么) B. 测试的总体目标 C. 测试用例设计需要参考的工作产品(即测试的依据) D. 需发现的典型缺陷和失效(通过经验获得)
二、测试阶段概述
3、单元测试(组件测试)概述 :
对象:
模块、程序、对象和类等
目标: 确定相关的功能性缺陷,以验证测试目标的正确性 ,单元测试所检