测试:确保软件质量的重要一环

发表于:2011-3-25 14:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  摘要:对软件产品质量的度量、评估和保证,成了开发商和用户十分关注的焦点之一。软件测试和软件质量的概念是密不可分的。测试是手段,质量是目的,因此软件分析与测试已成逐渐成为现代软件工程学研究和应用的热点……

  对软件测试的认识过程

  1983年IEEE将软件测试定义为:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

  为了提高软件质量,人们进行了大量的研究和实践。从最初的着眼于技术革新,从各种软件工具研制开始,发展成为对开发各阶段进行全面支持的计算机辅助软件工程(CASE)环境,到注重软件开发“模型”研究。人们在这个摸索的过程中逐渐认识到,只有从一开始就在开发过程中严格贯彻质量管理,软件产品的质量才有保证。这样,软件测试的概念和实施范围必须扩充,应该包括在整个开发各阶段的复查、评估和检测。由此,广义的软件测试实际是由确认、验证、测试三个方面组成。

  测试分类与检验手段

  对于软件的测试,若按照功能划分有白盒测试黑盒测试之分;按开发过程来划分,有单元测试、集成测试、确认测试、系统测试;按测试方法来划分,有静态测试、动态测试。目前,软件测试的手段有三类:需求测试、静态测试和动态测试。

  静态测试 是指无须执行被测代码,而是借助专用的软件测试工具评审软件文档或程序,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率。静态测试在主机上完成,不需目标系统支持,测试的主要内容有编程标准验证、数据流分析技术、质量度量信息、代码结构可视化显示、测试外壳的创建。由此看出,静态测试只是对代码进行扫描分析,检测它的语法规则复杂度等是否符合要求,主要是为软件的质量保证提供依据,以提高软件的可靠性和易维护性。

  动态测试 是使被测代码在相对真实环境下运行,从多角度观察程序运行时能体现的功能、逻辑、行为、结构等行为,以发现其中的错误现象。动态测试方法分为黑盒法和白盒法,黑盒测试是基于功能的测试,只关心软件的功能,而不考虑其内部,也叫功能测试;白盒测试关心软件内部逻辑结构,测试覆盖率,是由逻辑驱动的测试。为了较快得到测试效果,通常先进行功能测试,达到所有功能后,为确定软件的可靠性进行必要的覆盖测试。

  软件测试流程与方案

  软件测试是一个过程,测试流程是该过程规定的程序,目的是使软件测试工作系统化,包括制定测试计划,获得测试用例集,执行测试用例集以及测试项与其需求的对照。一般情况下,软件测试由系列阶段和活动构成:制定测试计划、编制测试说明(确定需测试的与需求相关的特性,细化测试计划的有关内容,设计测试用例)、执行测试计划(实现测试设计、执行测试规程、核对终止情况)、评价测试效果及被测试软件。

  测试方案确定需遵循四原则:测试成本最小化、测试流程和测试内容完备化、测试手段可行化和测试结果实用化。

  需求测试 在经典的软件工程理论中,软件测试是由代码完成后开始的,事实上应从软件的需求定义开始。软件工程统计结果发现50%以上的系统错误是由于错误的需求或缺少需求导致的,超过80% 的开销花在追踪需求的错误上,这是由于在追踪需求的错误的过程中,经常会相互纠缠和重复劳动。因此,需求测试是必要的,也是必不可少的。需求测试贯穿了整个软件开发周期,通过需求测试可指导软件测试的各个阶段,它可帮助我们设计整个测试的进行,测试计划怎样安排,测试用例怎样选取,软件的确认要达到哪些要求等。软件测试、验证、确认只有当具备软件需求分析时才有意义。

  单元测试 在软件测试中,尽早进行软件测试发现软件中存在的问题,可减轻系统测试的任务,明显地降低测试成本,单元测试在软件开发哪一个环节进行,是一个值得探讨的问题,因为这关系到软件测试的效率和测试成本。从经济上和开发效率上考,单元测试尽可能在软件开发周期中完成,并在主机系统中进行,这就是说单元测试最好划归研发中心处理,而不全权由测试中心完成。

  测试的目标

  简单地说,测试的最终目的是确保最终交给用户的产品的功能符合用户的需求,把尽可能多的问题在产品交给用户之前发现并改正。在可接受的开销下,提高对软件的信心。具体地讲,测试一般要达到三个目标:确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明——在某种意义上与ISO9001相同;确保产品满足性能和效率的要求,用户最关心的不是你的技术有多先进、功能有多强大,而是他能从这些技术、功能中得到多少好处;确保产品是健壮的和适应用户环境的健壮性即稳定性,是产品质量的基本要求,尤其对于一个用于事务关键或时间关键的工作环境中。

  集成测试 软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,当然在目标环境上重复测试也是必须的,在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误。在主机环境上的集成测试的使用,依赖于目标系统的具体功能有多少.有些嵌入式系统与目标环境耦合的非常紧密,若在主机环境做集成是不切实际的.一个大型软件的开发可以分几个级别的集成.低级别的软件集成在主机平台上完成有很大优势,越往后的集成越依赖于目标环境。

  系统测试 系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件,外设,操作系统,数据和人员结合在一起,在实际运动的环境下对计算机系统进行一系列的集成测试和确认测试.由此可知,系统测试必须在目标环境下运行,当单元测试和集成测试完成之后,系统测试功用则在于评估系统环境下软件的性能,发现和捕捉软件中潜在的BUG。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号