• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试及其支持工具

发布: 2009-6-18 10:30 | 作者: 不详 | 来源: 测试时代采编 | 查看: 42次 | 进入软件测试论坛讨论

领测软件测试网  引言

  软件测试作为保证软件质量可靠性的关键技术手段正日益受到广泛的重视。但如何进行测试,如何提高测试的质量和效率,从而确保软件产品的质量和可靠性,仍是令许多人深感困绕的问题。本文仅根据笔者多年从事软件测试研究与实践的体会,简要介绍软件测试的基本过程,以及一些常用的技术手段、测试策略和准则,并介绍两个很有特色并具有代表性的软件测试支持工具,以期愈来愈多的人在认识到软件测试的重要性的同时,能够进一步了解应如何正确地选择和有效地运用各种各样的测试方法、技术和工具,来提高软件的质量和可靠性。

  一、软件测试的基本过程

  软件测试是一个极为复杂的过程。如图一所示,一个规范化的软件测试过程通常须包括以下基本的测试活动。

  ·拟定软件测试计划

  ·编制软件测试大纲

  ·设计和生成测试用例

  ·实施测试

  ·生成软件问题报告

  对整个测试过程进行有效的管理实际上,软件测试过程与整个软件开发过程基本上是平行进行的。测试计划早在需求分析阶段即应开始制定,其它相关工作,包括测试大纲的制定、测试数据的生成、测试工具的选择和开发等也应在测试阶段之前进行。充分的准备工作可以有效地克服测试的盲目性,缩短测试周期,提高测试效率,并且起到测试文档与开发文档互查的作用。

  此外,软件测试的实施阶段是由一系列的测试周期(Test Cycle)组成的。在每个测试周期中,软件测试工程师将依据预先编制好的测试大纲和准备好的测试用例,对被测软件进行完整的测试。测试与纠错通常是反复交替进行的。当使用专业测试人员时,测试与纠错甚至是平行进行的,从而压缩总的开发时间。更重要的是,由于专业测试人员丰富的测试经验、所采用的系统化的测试方法、全时的投入,特别是独立于开发人员的思维,使得他们能够更有效地发现许多单靠开发人员很难发现的错误和问题。

  软件测试大纲是软件测试的依据。它明确详尽地规定了在测试中针对系统的每一项功能或特性所必须完成的基本测试项目和测试完成的标准。无论是自动测试还是手动测试,都必须满足测试大纲的要求。

  一般而言,测试用例是指为实施一次测试而向被测系统提供的输入数据、操作或各种环境设置。测试用例控制着软件测试的执行过程,它是对测试大纲中每个测试项目的进一步实例化。已有许多著名的论著总结了设计测试用例的各种规则和策略。从工程实践的角度讲有几条基本准则:

  1.测试用例的代表性:能够代表各种合理和不合理的、合法的和非法的、边界和越界的,以及极限的输入数据、操作和环境设置等;

  2.测试结果的可判定性:即测试执行结果的正确性是可判定的或可评估的;

  3.测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。

  二、测试方法

  软件测试的方法和技术是多种多样的。从测试是否针对系统的内部结构和具体实现算法的角度看,通常可分为两类:白盒子方法(结构测试)和黑盒子方法(功能测试)。前者是针对系统内部实现的测试,而后者侧重于系统的外部功能和特性。

  三、软件测试工具

  一些受软件开发人员欢迎的软件测试工具为软件测试提供了强有力的支持。本文将介绍美国Rational公司的著名套装软件SQA和Pure Atria公司极具特色的Purify

  SQA SuiteSQA直接支持对客户/服务器应用软件的测试,它的一个重要特点是可以自动驱动被测程序的运行。SQA可以自动记录和重放程序执行过程,从而实现了对测试进行"复查"的自动化。

  由于测试是一个需要反复进行的过程,常常要数十次甚至数百次地重复。因此,这一特性大大地提高了软件"再测试"(Re-Test)和"回归测试"(Regression)的自动化程度,把测试人员从繁杂的、重复性的手工测试中解脱出来,从而显著地提高软件测试效率。

  除了这个最基本的自动录放功能外,它还提供了一系列的辅助支持功能,比如,

  · 被录制的程序执行过程可以被自动转换成具有良好可读性的高级语言程序,从而使这个测试驱动程序可以由测试人员根据测试需要进行必要的修改,甚至完全用手工方式编制。

  ·自动记录和分析比较测试的执行结果。不论是简单的正文方式的输出结果,还是任意的图表、声音、动画、图形用户界面(GUI)中的任一构件,都可以根据测试人员的指定被自动记录在测试结果库中,并可对两次测试的结果自动地进行比较,指出其差异部分。此项功能无疑对"自动查找错误"很有帮助。

  ·调节和设定事件的发生时间和速度。

  ·基本的测试库管理功能。

  此外,SQA还支持软件测试人员进行以下工作:

  ·制定测试计划和测试大纲,并将这些文档按照自然的树状结构分层地管理起来,并据此控制和驱动整个测试过程。

  ·不仅能够自动记录各类测试结果,而且对其进行修改,从而使得测试人员可以在程序运行结果尚有许多错误的情况下,通过对所记录下的结果做适当修正来获得理想的"期望结果" ,为测试结果的自动比较奠定基础。

  ·测试问题报告的记录与管理。

 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 工具 软件测试

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网