koorio.com
海量文库 文档专家
赞助商链接
当前位置:首页 >> 工学 >>

软件测试理论基础


软件测试理论基础

更多软件测试技术文章请访问: http://www.btestingsky.com/

概述
软件测试定义 软件测试目标 软件测试对象 软件测试原则 软件测试方法 软件生命周期 软件测试流程 软件测试评测方法 建议
更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试定义
定义一:使用人工和自动化的手段来运行或测试某个系统 定义一 的过程,其目的在于检验它是否满足规定的需求或是弄 清预期结果与实际结果之间的差别。 定义二:软件测试是贯穿整个软件开发生命周期、对软件 定义二 产品(包括阶段性产品)进行验证和确认的活动过程。 ? 验证 验证:是为确定某一开发阶段的产品是否满足在该阶段 开始时提出的要求而对系统或部件进行评估的过程。 ? 确认 确认:是在开发过程中或结束时,对系统或部件进行评 估,以确定其是否满足需求规格的过程。 定义三:软件测试是根据软件开发各阶段的规格说明和程 定义三 序的内部结构而精心设计一批测试用例,并利用这些测 试用例运行软件,以发现软件错误的过程。
更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试目标
第一:确保软件的质量 第二:提供信息 第三:保证整个软件开发过程是高质量的

更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试对象
软件测试的对象不仅仅是程序,还包括整 个软件生命周期中产生的所有过程文档。 如: ? 在软件定义阶段产生的可行性报告、项目 实施计划、软件需求说明书或系统功能说 明书, ? 在软件开发阶段产生的概要设计说明书、 详细设计说明书,以及源程序等。
更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试原则
一、尽早和不断地进行测试 二、遵循Pareto原则 三、软件测试是不完全的 四、并非所有的软件错误都能修复 五、由小到大的测试范围 六、避免由开发人员测试自己的程序 七、追溯至用户需求 八、程序修改后要回归测试 九、妥善保存一切测试过程文档
更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试方法

更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试方法
单元测试 概念
对软件中的最小可测试 单元进行检查和验证

集成测试
在单元测试基础上的,将 所有模块按照概要设计要 求组装成子系统或系统后 的测试,重点测试不同模 块的接口部分 在单元测试之后

系统测试
将整个软件系统看做 一个整体进行测试, 包括对功能、性能以 及软件所运行的软硬 件环境进行测试 集成测试之后

验收测试
旨在向未来的用户展 示该软件系统已能满 足其需求要求

测试时机 测试人员 测试依据 测试通过 标准

编码之后,代码已经通 过编译之后 白盒测试工程师或开发 人员 1、源程序本身,包括代 码和注释 2、详细设计文档 1、单元测试用例的执行 率为100%,通过率为95% 2、语句的覆盖率达100% 3、分支的覆盖率达85%

系统测试后期,软件 正式交付用户使用之 前 用户和黑盒测试工程 师 需求规格说明书

白盒测试工程师或开发人 员 1、单元测试的模块 2、概要设计文档 1、各个单元模块结合到 一起能够协同配合,正常 运行 2、测试用例的执行率为 100%,通过率为95%

黑盒测试工程师

需求规格说明书

1、系统功能、性能 等满足需求规格说明 书中的要求 2、测试用例的执行 率为100%,通过率为 95%

1、系统功能、性能 等满足需求规格说明 书中的要求 2、测试用例的执行 率为100%,通过率为 95%

主要方法

控制流测试、数据流测 试、排错测试、分域测 试等

自顶向下测试、自底向上 功能测试、性能测试、 Alpha测试、Beta测 更多软件测试技术文章请访问: 测试 随机测试等 试

http://www.btestingsky.com/

软件测试方法
静态测试:不实际运行被测软件,而只是静态地检查程序代码、界面或 静态测试 文档中可能存在的错误的过程。 动态测试:实际运行被测软件,输入相应的测试数据,检查实际输出结 动态测试 果和预期结果是否相符的过程。
测试阶段
可行性评审 需求评审 设计评审 单元测试 集成测试 系统测试 验收测试

静态测试
√ √ √

动态测试

√ √ √ √

更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试方法
黑盒测试
概念 又称为功能测试或数据驱动测试。它是在已知产 品所应具有的功能,通过测试来检测每个功能是 否都能正常使用。在测试时,把程序看作一个黑 盒子,在完全不考虑程序内部结构和内部特性的 情况下,在程序接口进行测试。它只检查程序功 能是否按照需求规格说明书的规定正常使用,程 序是否能适当地接收输入数据而产生正确的输出 信息,并且保持外部信息(如数据库或文件)的 完整性。 黑盒测试工程师或用户 需求规格说明书 等价类划分、边界值分析、因果图、错误推测等 软件确认测试

白盒测试
又称结构测试或逻辑驱动测试。它是 知道产品内部工作过程,可通过测试 来检测产品内部工作是否按照规格说 明书的规定正常进行,按照程序内部 的结构测试程序,检验程序中的每条 通路是否都能按预定要求正确工作, 而不顾它的功能。

测试人员 测试依据 主要方法 应用

白盒测试工程师或开发人员 1、源程序本身,包括代码和注释 2、详细设计文档 逻辑覆盖、循环覆盖和基本路径测试 软件验证测试

软件测试方法
功能测试:主要检查实际软件的功能是否符合用户的需求。 功能测试 功能测试又可细分为: 逻辑功能测试:假设一个软件的业务流程是,如果输入1就走A流 逻辑功能测试 程,输入2,走B流程,输入3,退出。那对于测试人员来说,输 入1到3就是不同的逻辑,你也可以输入0,4,来检验程序是否 有做保护处理。 界面测试:验证软件用户界面的设计是否合乎用户期望或要求。 界面测试 它常常包括菜单,对话框及对话框上所有按钮,文字,出错提 示,帮助信息等方面的测试。 易用性测试:从软件使用的合理性和方便性等角度对软件系统进 易用性测试 行检查,来发现软件中不方便用户使用的地方。 安装测试:是验证软件能否正常进行安装和卸载的测试。 安装测试 兼容性测试:是测试软件在一个特定的硬件/软件/操作系统/网络 兼容性测试 等环境下的性能如何。包括向上兼容、向下兼容,软件兼容和 硬件兼容。

软件测试方法
性能测试:主要是验证系统的性能指标是否满足需求要求。 性能测试 性能测试又可细分为: 一般性测试:指的是让被测系统在正常的软硬件条件下运 一般性测试 行,不向其施加任何压力。 稳定性测试:也叫可靠性测试,是指连续运行被测系统, 稳定性测试 检查系统运行时的稳定程度。 负载测试:指让被测系统在其能忍受的压力的极限范围内 负载测试 连续运行,检查系统运行时的稳定性。 压力测试:通常是指持续不断地给被测系统增加压力,直 压力测试 到将被测系统压垮为止,用来测试系统所能承受的最大 压力。

软件测试方法
回归测试:是在软件维护阶段,重复执行上一个 回归测试 版本测试时的测试用例,对修改后的新版本进 行的测试。其目的是检验对软件所做的修改是 否正确。 冒烟测试:是指在对一个新版本进行系统的大规 冒烟测试 模测试之前,先验证一下软件的基本功能是否 实现,是否具备可测性。 随机测试:是指测试中所有的输入数据都是随机 随机测试 生成的,其目的是模拟用户的真实操作,并发 现一些边缘性的错误。

软件生命周期
软件生命周期:即一个软件从功能确定、设计、开发成 软件生命周期 功、投入使用,并在使用中不断的修改、增补和完善, 直至被新的需要替代而停止使用的全过程。 软件生命周期包括软件开发的生命周期和软件测试的生 命周期。 软件生命周期模型是软件项目的流程模版,为制定项目 软件生命周期模型 流程提供参考依据。

软件生命周期
瀑布模型优点: 瀑布模型优点 1、强调开发的阶段性,各阶段具有顺序性和依赖性 2、推迟编码实现的观点,主张早期调研和需求分析 3、质量保证的观点,要求每个阶段的产品都应在评审之后 才能流入下一阶段,作为下一阶段的输入 4、“线性”逻辑容易掌握及应用 5、可在复杂的非线性模型中应用 瀑布模型缺点: 瀑布模型缺点 1、文档驱动,用户无法及时了解产品的情况 2、当需求变更时将会导致阶段反复,而且都要重复需求、 设计、编码、测试等过程。 3、流程单一,不可逆 4、早期的错误可能要等到开发后期的测试阶段才能发现, 无法全面的保证质量,控制风险 5、严格线性运行,无法在人员、工作量分配上实现最优搭 配,严重影响工作效率和进度 瀑布模型适用范围:需求稳定的产品 瀑布模型适用范围

更多软件测试技术文章请访问: http://www.btestingsky.com/

软件生命周期
V模型优点: 模型优点 1、明确地标明了测试过程中存在的不同级 别 2、清楚地表示出测试阶段和开发过程各阶 段的对应关系 3、强调了测试过程与开发过程的并行性 V模型缺点: 模型缺点 1、没有说明项目的前期测试需要做哪些工 作,如编写测试计划、测试用例等 2、把系统开发过程划分为具有固定边界的 不同阶段,很难跨过这些边界来采集测 试所需要的信息

软件生命周期
渐进模型优点: 渐进模型优点 1、设计上的灵活性,可以在项目的各个阶段进行变更 2、关键的功能更早出现,随着项目推进,客户始终掌 握项目的最新信息,可以提高开发人员与客户之 间的有效信息交互 3、用户在整个软件开发过程中都直接参与,因此最 终的产品能够很好地满足用户的需求 4、以小的分段来构建大型系统,使成本计算和风险控 制变得简单容易 渐进模型缺点: 渐进模型缺点 由于过多的开发周期会增加成本,耗费时间 渐进模型适用范围: 渐进模型适用范围 开发初期用户需求不甚明确 相关技术和理论需要不断研究、反复实验 开发过程需要经常与用户交互的产品

软件测试流程
? ? ? ? ? ? ? ? 需求评审 测试计划 测试设计 测试前期准备 测试执行 缺陷管理 测试报告 测试评测

软件测试流程软件测试流程-需求评审
需求评审的注意事项: 需求评审的注意事项: 一、 注意对需求规格说明的正确性 正确性进行评审 正确性 1、是否冲突或者重复 2、是否清晰、简洁、无二义性 3、是否有内容和语法错误 4、是否合理地确定了性能指标 5、是否合理地确定了安全性指标 二、 注意对需求规格说明的完整性 完整性进行评审 完整性 1、是否包含了所有已知的客户需求或系统需求 2、所有需求的详细程度是否合适,是否能为设计提供足够的基础 3、是否定义了每个需求的实现优先级 4、是否把不确定的需求标记为待确定的问题, 而不是直接遗弃 5、是否对所有预期的错误条件所产生的系统行为都进行了描述 三、 注意对需求的可实施性 可实施性进行评审 可实施性 1、是否每个需求都有惟一标识 2、是否每个需求都易修改,可跟踪 3、是否每个需求都是实际的、量化的、逻辑清晰的 4、在现有的资源下, 是否能实现所有的需求 5、每个需求在特定的输入条件下是否给出已知的输出结果 测试人员参加“需求评审”活动需要达到的目标 测试人员参加“需求评审”活动需要达到的目标: 1、充分理解用户需求 2、确保需求的可测试性 更多软件测试技术文章请访问:

http://www.btestingsky.com/

软件测试流程软件测试流程-测试计划
为什么要编写测试计划 1)领导能够根据测试计划做宏观调控,进行相应资源配置等 2)测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等 3)便于其他人员了解测试人员的工作内容,进行有关配合工作 什么时间开始编写测试计划 尽早开始。原则上应该在需求定义完成之后开始编写测试计划,对于开发过程不是十 分清晰和稳定的项目,测试计划也可以在总体设计完成后开始编写 由谁编写测试计划 具有丰富经验的测试负责人 测试计划编写策略 1. 明确测试的目标,增强测试计划的实用性 2. 坚持“5W1H”规则,明确内容与过程 1)why—为什么要进行这些测试 2) what—测试哪些方面,不同阶段的工作内容 3) who—安排哪些测试人员进行测试 4) when—测试不同阶段的起止时间 5) where—给出测试文档和软件的存放位置,测试环境等 6) how—指出测试的方法和工具 3. 采用评审和更新机制,保证测试计划满足实际需求 更多软件测试技术文章请访问: 4. 分别创建测试计划与测试详细规格、测试用例

http://www.btestingsky.com/

软件测试流程软件测试流程-测试设计
过程:

软件测试流程软件测试流程-测试设计
测试用例是为某个特殊目标而编制的一组测试输入、执行条件、测试步骤以及预期结果。
为什么要写测试用例 1)便于团队交流 2)便于重复测试 3)便于跟踪统计 4)便于用户自测 什么时候写测试用例: 什么时候写测试用例:通常在测试设计阶段,即需求规格说明书和测试计划完成之后 由谁来写测试用例: 由谁来写测试用例:测试设计人员 测试用例编写依据: 测试用例编写依据:需求规格说明书和软件原型 测试用例包含的内容: 测试用例包含的内容:用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果 (含判断标准)、出口准则、注释 最佳方案: 最佳方案:为每个被测需求至少编制两个测试用例:正面测试用例和负面测试用例

软件测试流程软件测试流程-测试设计
(一)白盒技术 1、逻辑覆盖 逻辑覆盖:是通过对程序逻辑结构的遍历实现程序的覆盖 逻辑覆盖 (1)语句覆盖:设计足够多的测试用例,使被测程序中每条语句至少执行一次 (2)判定覆盖:设计足够多的测试用例,使得程序中的每一个判定至少获得一次‘真’值和 ‘假’值 (3)条件覆盖:设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足 一次 (4)条件判定组合覆盖:设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假) 至少出现一次,并且每个判定本身的判定结果也至少出现一次 (5)条件组合覆盖:设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现 一次 满足条件组合覆盖一定满足判定覆盖、条件覆盖、条件判定组合覆盖 (6)路径覆盖:设计足够多的测试用例,覆盖被测程序中所有可能的路径 2、循环覆盖 循环覆盖:设计足够多的测试用例,覆盖被测程序中所有的循环体 循环覆盖 3、基本路径测试 基本路径测试:是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本 基本路径测试 可执行路径集合,从而设计测试用例的方法,设计出的测试用例要保证在测试中程序的每个 可执行语句至少执行一次

软件测试流程软件测试流程-测试设计
(二)黑盒技术 1、等价类划分 等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集), 等价类划分 然后从每一个子集中选取少数具有代表性的数据作为测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错 等价类 误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测 试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数 据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。 等价类划分可有两种不同的情况:有效等价类 无效等价类 有效等价类和无效等价类 有效等价类 无效等价类。 2、边界值分析 边界值分析:对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值 边界值分析 分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 3、错误推测 错误推测:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性 错误推测 的设计测试用例的方法 4、因果图 因果图:是一种帮助人们系统的选择一组高效率测试用例的方法 因果图 5、综合策略 综合策略:每种方法都能设计出一组有用例子,用这组例子容易发现某种类型的 综合策略 错误,但可能不易发现另一类型的错误。因此在实际测试中,联合使用各种测试方 法,形成综合策略,通常先用黑盒法设计基本的测试用例,再用白盒法补充一些必 要的测试用例

软件测试流程软件测试流程-测试前期准备
1) 2) 3) 4) 5) 明确测试任务的范围 明确测试时间 搭建测试环境 学习被测试软件 确认完全理解测试任务

更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试流程软件测试流程-测试执行
? ? ? ? 全方位的观察测试用例执行结果 进行测试过程记录 及时确认发现的问题 及时更新测试用例

更多软件测试技术文章请访问: http://www.btestingsky.com/

软件测试流程软件测试流程-缺陷管理
缺陷: 1)软件未实现需求规格说明书要求的功能 2)软件出现了与需求规格说明书中不一致的情况 3)软件功能超出了需求规格说明书的范围 4)软件没有达到用户期望的目标(未明确提及但 应该实现的目标) 5)软件难以理解、不易使用、运行缓慢(从测试 人员的角度或最终用户的角度来看)

软件测试流程软件测试流程-缺陷管理
? ? ? ? ? ? ? ? ? ? ? ? ? ? 一个完整的软件缺陷报告通常由以下几部分组成 缺陷编号 缺陷的标题 测试的软件和硬件环境 测试的软件版本 缺陷的类型 缺陷的严重程度 缺陷的优先级别 缺陷出现频率 缺陷状态 重现缺陷的操作步骤 缺陷的实际结果描述 期望的正确结果描述 注释及附件

软件测试流程软件测试流程-缺陷管理
编写缺陷报告的技巧: ? 每个软件问题报告只书写一个缺陷或错误 ? 对错误的描述要做到中立、简洁、准确、完 整,揭示错误实质 ? 明确指明错误类型和严重程度 ? 每一个步骤尽量只记录一个操作 ? 复现的操作步骤要完整,准确,简短 ? 附加必要的错误特征图像 ? 附加必要的测试用例 ? 尽量使用短语和短句,避免复杂句型句式

软件测试流程软件测试流程-缺陷管理
软件缺陷管理过程: (1)提交缺陷 (2)分析和定位缺陷 (3)提请修改缺陷 (4)修改缺陷 (5)验证修改后的缺陷 (6)关闭缺陷

软件测试流程软件测试流程-缺陷管理

软件测试流程软件测试流程-测试报告
测试报告是把测试的过程和结果写成文档, 测试报告 并对发现的问题和缺陷进行分析,为纠正 软件存在的质量问题提供依据,同时为软 件验收和交付打下基础。

软件测试流程软件测试流程-测试报告
一份完整的测试报告应该包含以下内容: 1、编写目的 2、项目背景 3、系统简介 4、测试时间、地点及人员 5、测试环境与配置 6、测试方法和工具 7、测试工作量统计 8、缺陷统计 8.1发现缺陷统计 8.2解决缺陷统计 8.3遗留缺陷统计 9、测试结论与建议 10、附录

软件测试评测
测试的主要评测方法 主要评测方法包括覆盖 质量 覆盖和质量 主要评测方法 覆盖 质量。 ? 覆盖 覆盖是对测试完全程度的评测。 ? 质量 质量是对测试对象(系统或测试的应用程 序)的可靠性、稳定性以及性能的评测。

软件测试评测软件测试评测-覆盖评测
? 最常用的覆盖评测 基于需求的测试覆盖 基于代码的测试覆盖 覆盖评测是基于需求的测试覆盖 基于代码的测试覆盖。 覆盖评测 基于需求的测试覆盖和基于代码的测试覆盖 ? 基于需求的测试覆盖 基于需求的测试覆盖在测试生命周期中要评测多次,并在测试生命周期的 里程碑处提供测试覆盖的标识(如已计划的、已实施的、已执行的和成功 的测试覆盖)。 ? 计算公式 计算公式:测试覆盖=T/RfT ? 其中:T是用测试用例表示的测试数(可以是已计划、已实施的、已执行、 已成功的测试数) ? RfT (Requirement for Test)是测试需求(Requirement for Test)的 总数 ? 基于代码的测试覆盖 ? 基于代码的测试覆盖是评测测试过程中已经执行的代码的多少和待执行的 剩余代码的多少。 ? 计算公式 计算公式:测试覆盖=I/TIic ? 其中I是代码语句、代码分支、代码路径、数据状态判定点或数据元素名 表示的已执行项目数 ? TIic(Total number of Items in the code)是代码中的项目总数

软件测试评测软件测试评测-质量评测
? 质量是软件与需求相符程度的指标 ,在测试过程中已发 现缺陷的评估提供了最佳的软件质量指标。因此可以通 过分析和统计缺陷情况来对测试结果给出一个评定,它 的直接表现形式就是各种缺陷统计图表。 ? 缺陷分析图 ? 缺陷分析图用来统计各种缺陷的分布情况。 ? 缺陷趋势图 ? 缺陷趋势图是用来描述缺陷的变化趋势的。

建议
? 走读缺陷跟踪库中的问题报告单 ? 走读历史测试用例

软件测试学习网站
? www.51testing.com 无忧测试 ? http://www.testage.net/ 测试时代 ? http://www.cntesting.com/bbs/ 中国软 件测试基地-测试论坛

谢 谢!


赞助商链接
推荐相关:

软件测试作业--白盒测试

软件测试作业--白盒测试_电脑基础知识_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档软件测试作业--白盒测试_电脑基础知识_IT/计算机_专业资料。1....


课后作业1 软件测试定义

课后作业1 软件测试定义 - 1、 启动 Windows 的记事本,输入“联通”后保存至 a.txt 然后关闭记事本。再次打开记事本看看出现了什么变化, 这是软件缺陷吗?为什么...


软件测试经典总结理论

软件测试经典总结理论 - 软件测试基础教程 测试的基本概念 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的 稳定化阶段。 1、 测试的分类...


软件测试用例设计

软件测试用例设计 测试需求和范围通过测试用例体现出来, 并以更为有效的方式来执行测试, 以便于更快 地发现程序的缺陷。测试用例是测试脚本开发、测试执行的基础。...


软件测试理论考试全题

软件测试理论考试全题_IT/计算机_专业资料。软件测试第1 页/共 8 页 带格式...计算机基础课程第三章 W... 图像尺寸变换技巧——巧...1/2 相关文档推荐 ...


软件测试试题

软件测试试题 - 《软件测试》试卷 正确的√ 错误的╳ 一、判断题(每题 1 分,共 12 分,正确的√,错误的╳) 判断题( 1. 软件需求是度量软件质量的基础 。...


1软件测试技术课程标准_图文

分离基础理论 知识、基本测试方法、自动化测试、测试工程实践等几个部分。 (2)教学设计 软件测试是伴随软件工程过程的活动,是一项复杂、系统和综合性较高的工 作...


软件测试技术基础

软件测试技术基础 - 第 1 章 软件测试概述 1. 简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的...


软件测试复习题及答案

软件测试复习题及答案 - 软件测试复习 武汉理工大学 whut... 软件测试复习题及答案_理学_高等教育_教育专区。软件测试复习 武汉理工大学 whut 复习题 1.Below is o...


软件测试理论总结

软件测试理论总结 - 软件测试理论复习 软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估 软件测试 软件质量:软件特性的总和,软件满足规定或潜在...

网站首页 | 网站地图
All rights reserved Powered by 酷我资料网 koorio.com
copyright ©right 2014-2019。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com