软件渐进性测试策略

一、软件测试的目的

  软件开发过程中软件测试具有非常重要的作用。软件测试的目的在于按照规定的步骤,采用正确的方法,对开发设计阶段提供的软件工件进行严格的检测,发现和改正软件错误,使软件质量在测试过程中不断提高,逐渐达到规定要求,能够交付用户使用。如果测试中察觉软件设计质量太差,暴露出的各种问题,不是依靠测试能够完全解决,项目主管可以中断测试,责成设计组加以改进。当问题十分严重,已经无法满足用户既定的需求时,项目甚至可能被迫取消。

  软件测试过程中,项目主管和质量保证部门可以采集到各种软件质量原始信息,其中最重要的是软件错误数据,包括软件错误的类型、错误的数量、错误产生的阶段、错误存在的部位。有了这些数据,就近期而言,可以对软件已经达到的质量水平做出定量评估、可以对软件可靠性增长过程及软件开发中的资源消耗做出预测。长期而言,从各个时期各种软件项目积累的质量数据,能够准确反映开发单位具有的开发和质量保证能力,能够反映开发单位能力提高过程。在重视质量相关的数据采集和拥有的历史数据方面,我国的软件开发单位和发达国家相比,存在明显的差距。

  国内外软件开发经验表明,软件测试需要消耗大量资源,软件测试所需的工时通常占据其总开发工时的40%到50% ,所以高质量履行和完成软件测试阶段的各种任务,十分重要。其中包括制定正确的测试策略,采用科学的测试方法和测试技术等,制订正确的测试策略自然应该成为关注的首选。

  二、渐进测试策略

  渐进测试策略是指将软件的测试进程,进一步细分为相互联系而又各不相同的子阶段,对交付测试的原始软件产品,从简单到复杂,从单元到系统逐步进行测试的、完整的测试体系框架。整个测试过程通常包括单元测试、综合测试、系统测试、认证和交收测试几个阶段。

  采用渐进式测试策略,能够有效地降低错误定位的难度,有利于发现和改正错误。渐进测试必须从单元测试开始,单元测试的主要目的是检查和改正单元内部的错误,只有在单元测试完成之后才能进入与其他单元结合的综合测试。综合测试主要目的是检查单元之间的接口,以及检查程序的总体结构。系统测试的主要目的是检测软件是否满足需求说明的要求,这个阶段发现的错误往往属于高层错误,例如由于对用户要求的误解和用户要求的不一致造成的错误。改正这种类型的错误,需要付出昂贵的代价,是最不希望出现的事件。可见测试固然对保证软件质量十分重要,但是毕竟属于事后把关性质,预防为主仍然是最佳的选择。应该更加关注软件设计,特别是需求分析工作的质量。

  根据软件的不同性质和某些软件的特殊要求,在上述4个阶段之外,还需要增加一些其他的测试阶段。表1是一个典型的办公自动化软件测试过程,它包括了单元测试、综合测试、软件系统测试、强度测试、认证和交收测试5个阶段。表2是一个典型的嵌入式系统的软件测试过程,它包括了软件单元测试、软件综合测试、软件系统测试、硬件和软件系统综合测试、认证和交收测试5个阶段。

  如果换一个角度来观察渐进测试策略,可以认为渐进测试策略是针对软件设计过程所作的由下而上的逆向验证,从而使渐进测试的内在合理性得到进一步展示。图1显示了嵌入式软件测试过程和前期各个设计阶段的对应关系。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-15 12:28:08

软件渐进性测试策略的相关文章

论企业战略管理的渐进性特征

以静态分析方法为主的战略理论研究,长期以来都对企业战略的五个基本特征-全局性.长期性.层次性.情景决定性.竞争性进行了肯定.显然,在战略规划.战略实施.战略评价的三个阶段中,上述理论总结的实际意义主要偏重于战略规划阶段.而就整个战略过程来说,战略实施与战略评价决定了是否能够达到规划阶段所制订的战略目标,甚至处于比战略规划更重要的地位.因此,现代企业的战略管理必须重视战略实施与评价阶段以及在这两个阶段中企业各种内外因素对战略的影响.基于此,本文从战略管理的全程性出发,提出了企业战略的第六个基本特征

FlashMX新特性详解(四)学习资源和软件集成性

详解 一.学习资源 1.快速入门模板 使用Macromedia Flash MX里附带的预制模版来制作专业水平的演示,相册.广告.学习材料. 2.解答面板 数据库软件地支持,技巧以及其它地资源都可以在macromedia.com站点的Flash MX板块里在线查询到. 3.软件内含的教程.指南和实例. 对于新用户来说通过交互的教程和指南可以快速得到提高.多种多样的实例可以让设计者和开发者感受到软件在功能方面的精彩之处. 二.软件集成 1.与dreameaver的集成 在Flash和Dreamwe

请问什么是软件的完善性安装

问题描述 请问什么是软件的完善性安装 本人在网上看到一篇文章里写着软件完善性安装,像请问什么是软件的完善性安装. 解决方案 就是安装完整的依赖库啊啥的吧

[译]为什么在使用了类之后会使得组合变得愈发困难(软件编写)(第九部分)

本文讲的是[译]为什么在使用了类之后会使得组合变得愈发困难(软件编写)(第九部分), 原文地址:Why Composition is Harder with Classes 原文作者:Eric Elliott 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:yoyoyohamapi 校对者:sunui IridescentMia 注意:这是 "软件编写" 系列文章的第十部分,该系列主要阐述如何在 JavaScript ES6+ 中从零开始学习

[译] 函数式程序员的 JavaScript 简介 (软件编写)(第三部分)

本文讲的是[译] 函数式程序员的 JavaScript 简介 (软件编写)(第三部分), 烟雾艺术魔方 - MattysFlicks - (CC BY 2.0) 注意:这是"软件编写"系列文章的第三部分,该系列主要阐述如何在 JavaScript ES6+ 中从零开始学习函数式编程和组合化软件(compositional software)技术(译注:关于软件可组合性的概念,参见维基百科 Composability).后续还有更多精彩内容,敬请期待!< 上一篇 | <<

[译]Functor 与 Category (软件编写)(第六部分)

本文讲的是[译]Functor 与 Category (软件编写)(第六部分), 注意:这是 "软件编写" 系列文章的第六部分,该系列主要阐述如何在 JavaScript ES6+ 中从零开始学习函数式编程和组合化软件(compositional software)技术(译注:关于软件可组合性的概念,参见维基百科 Composability).后续还有更多精彩内容,敬请期待!<上一篇 | << 返回第一章 所谓 functor(函子),是能够对其进行 map 操作的对

[译]JavaScript 让 Monad 更简单(软件编写)(第十一部分)

本文讲的是[译]JavaScript 让 Monad 更简单(软件编写)(第十一部分), 原文地址:JavaScript Monads Made Simple 原文作者:Eric Elliott 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:yoyoyohamapi 校对者:IridescentMia WJoan Smoke Art Cubes to Smoke - MattysFlicks - (CC BY 2.0) (译注:该图是用 PS 将烟雾

XP停止更新 企业电脑该选择什么安全软件?

中介交易 SEO诊断 淘宝客 云主机 技术大厅 昨天起,微软已经正式停止Windows XP系统的技术支持.媒体及安全专家建议,尽快部署第三方安全软件,以保障电脑系统安全.但在日前举办的"XP挑战赛"上,有黑客高手只用57秒钟就绕过腾讯电脑管家XP专属软件,成功盗取到了电脑内的Word文档.由此引发社会对XP电脑安全软件防护性的忧虑,尤其是大量使用XP系统的政府企业单位. "XP防护"软件良莠不齐 据了解,在本次"XP挑战赛"上,这些黑客都是通过

性能测试在软件企业的应用分析

摘要:随着现代网络的发展速度不断提高,B/S结构的程序软件需求越来越普遍,而各公司的业务需求量也在不断增大,因此对软件并发需求及吞吐量需求也越来越大,这就要求各软件企业在应对用户性能需求时使用更有效的测试策略,论文就当前软件企业性能测试策略现状进行了归纳分析. 关键词:性能测试:测试策略:测试分析 一.引言 现代公司用户使用的应用型软件大多数为B/S结构和C/S结构,而随着公司用户及客户数量的增加,应用软件对系统并发用户数要求越来越高,同时,大多数在线系统用户对注册时间,响应时间要求也较高,因此