软件测试的基本理论和方法1

发布时间:2024-11-17

软件测试培训 测试的基本理论及方法

测试的基本理论及方法

对软件测试的误解 如何理解软件测试 软件测试的定义 软件测试的对象 测试的目的 软件测试的分类 测试类型的解释 黑盒测试的几种典型方法 测试的分类与比较

测试流程 测试规范 软件测试的文档和模版 软件系统的主要测试内 容及技术 WEB应用的测试 测试工作中需要注意的 问题 企业的测试策略 关于测试的几个问题

对软件测试的误解

如果发布出去的软件有质量问题,那是软件测试人员的错. 软件测试技术要求不高,至少比编程容易多了. 软件测试随便找一个能力差的人就能做. 有时间就多测试一些,来不及就少测试一些. 软件测试是测试人员的事,与开发人员无关. 设计-实现-测试,软件测试是开发后期的一个阶段

如何理解软件测试

软件测试是一种有效的提高软件质量的手段,但即使在投入 上有所保证,测试也不能百分百发现所有质量隐患.况且软 件质量并不仅仅是测试出来的. 很多人认为软件测试就是运行一下软件,看看结果对不对. 但实际上,如何在有限的投入下,提高软件测试的效率和产 出是一件很见功底的事.好的测试人员不仅要掌握各种测试 技术,还要具备丰富的编程经验和对BUG的敏感.测试的复 杂之处,除了测试技术问题之外,还有测试管理问题. 测试不是可有可无,随心所欲的.规范化的软件开发需要对 软件测试早做计划,分配必要的时间,人力和财力等资源,并 将其作为项目管理的一个部分加以控制和协调. 开发和测试是软件项目相辅相成的两个过程,人员间的交流 ,协作和配合是提高整体效率的重要因素.

软件产品开发完毕,再进行测试的观念是有悖于生命周期理 论的.软件产品质量问题越晚发现,修复的代价越大.

修正BUG的代价

需求

设计

编程

内部测试 外部测试

发布

一些常识和经验之谈

测试能提高软件的质量,但是提高质量不能依赖测试。 测试只能证明缺陷存在,不能证明缺陷不存在。“彻底地测试” 难以成为现实,要考虑时间、费用等限制,不允许无休止地测试。 我们应当祈祷:软件的缺陷在产品被淘汰之前一直没有机会发作。 测试的主要困难是不知道如何进行有效地测试,也不知道什么时 候可以放心地结束测试。 每个开发人员应当测试自己的程序(份内之事),但是不能作为 该程序已经通过测试的依据(所以项目需要独立测试人员)。 80-20原则:80%的缺陷聚集在20%的模块中,经常出错的模块改 错后还会经常出错

测试应当循序渐进,

不要企图一次性干完,注意“欲速则不达”。

软件测试的定义

软件测试是为了发现错误而执行程序的过程 软件测试是根据软件开发各阶段的规格说明和程序的内部 结构而精心设计一批测试用例(即输入数据及其预期的输 出结果),并利用这些测试用例去运行程序,以发现程序错误 的过程 软件测试就是在软件投进运行前,对软件需求分析、设计 规格说明和编码的终极复审,是软件质量保证的关键步骤。

软件测试的对象

软件测试不等于程序测试.软件测试贯穿于软件定义和开发 的整个期间.需求分析,概要设计,详细设计,以及程序编码等 各个阶段所得到的文档,包括需求规格说明,概要设计规格 说明,详细设计规格说明以及源程序,都是软件测试的对象.

软件生存各个阶段间的确认和验证用户要求 用户: 我要什么? 理解正确性 表达正确性 5 相符吗? 运行结果 计算机: 程序运行得到 的结果

1 4

运行正确性 输入正确性

需求说明书 分析员: 我可以提供什么? 2 理解正确性 设计正确性 表达正确性 3 理解正确性 编码正确性 源程序 程序员: 我要让计算机 怎么做?

设计说明书 设计员: 我要软件做什么?

软件配置:包括软件需求规格说明、软件设计规格说明、 源代码等; 测试配置:包括测试计划、测试用例、测试驱动程序等。 实际上,在整个软件工程过程中,测试配置只是软件配置的 一个子集。 测试工具:为提高软件测试效率,可使用测试工具支持测 试工具。例如:测试数据自动生成程序、测试结果分析程序 等。

测试的目的

关于测试的目的,一般的观点认为,测试主要是为了查找 软件中存在的错误。实际上,软件测试的目的不仅于此, 具体如下: 验证需求与设计的正确性; 发现软件存在的错误; 为软件开发商、用户确立关于软件质量的信心。

软件测试的分类

软件测试是一项复杂的系统工程,从不同的角度考虑可以 有不同的划分方法,对测试进行分类是为了更好的明确测 试的过程,了解测试究竟要完成哪些工作,尽量做到测试 的全面性。

静态测试 按是否运行 程序划分 动态测试

单元测试 集成测试 软件测试 按阶段划分 系统测试 验收测试 回归测试 功能测试

逻辑测试

界面测试易用性测试 安装测试 兼容性测试

黑盒测试 按是否查 看代码划 分 灰盒测试 性能测试 白盒测试 其他

一般性测试稳定性测试 负载测试 压力测试

冒烟测试 随机测试

测试类型的解释名称 说明 静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语 法、结构、过程、接口等来检查程序的正

确性。对需求规格说明书、 软件设计说明书、源程序做结构分析、流程图分析、符号执行来找 错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例 如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、 未使用过的变量、空指针的引用和可疑的计算等。静态测试 结果可用于进一步的差错,并为测试用例选取提供指导。 动态方法是指通过运行被测程序,检查运行结果与预期结果的差异, 并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测 试实例、执行程序、分析程序的输出结果。 主要测试软件模块的源代码。一般由开发人员而非独立测试人员来 执行,因为测试者需要懂得该单元的设计与程序实现,测试者可能 需要编写额外的测试驱动程序。 将一些“构件”集成一起时,测试它们能否正常运行。这里“构件” 可以是程序模块、客户机-服务器程序等等。

静态测试

动态测试

单元测试 集成测试

名称 系统测试

说明 测试软件系统是否符合所有需求,包括功能性需求与非功能性需求。 一般由独立测试人员执行,通常采用黑盒测试方式。

验收测试回归测试

由客户或最终用户执行,测试软件系统是否符合需求规格说明书。回归测试是指对某些已经被测试过的内容进行重新测试。每当软件 增加了新的功能,或者软件中的缺陷被修正,这些变更都有可能影 响软件原有的功能和结构。为了防止软件的变更产生无法预料的副 作用,不仅要对新内容进行测试,还要对某些老 内容进行回归测试。

一种先期的用户测试,此时系统刚刚开发完成。Alpha测试是由一个 Alpha 测试 用户或多个用户在开发环境下进行的测试,也可以是公司内部的用 户在模拟实际操纵环境下进行的受控测试,Alpha测试不能由该系统 的程序员或测试员完成。 Beta测试 一种后期的用户测试,此时系统已经通过内部测试,大部分错误已 经改正,即将正式发行。β测试是软件的多个用户在一个或多个用户 的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测 试不能由程序员或测试员完成。

是结构测试,也是逻辑驱动测试。 基于软件内部设计和程序实现的测试方式。 白盒测试 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中 逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条 件组合覆盖和路径覆盖。 是功能测试,也是数据驱动测试。 黑盒测试 基于软件需求所进行的测试。不关心软件内部结构、程序实现的算法。

是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输 出对于输

入的正确性,同时也关注内部表现,但这种关注不象白盒那 灰盒测试 样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部 的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情 况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要 采取这样的一种灰盒的方法。压力测试 压力测试是对系统不断施加压力的测试,通过确定一个系统的瓶颈或 者不能接收的性能点来获得系统能提供的最大服务级别的测试。是在 计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件 压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。 目的是:需要了解AUT(被测应用程序)一般能够承受的压力,同时能 够承受的用户访问量(容量),最多支持有多少用户同时访问某个功能。 负载测试(Load testing),通过测试系统在资源超负荷情况下的表现, 负载测试 以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测 试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件 下的性能行为,以及持续正常运行的能力。

软件测试的基本理论和方法1.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219