提高软件测试效率方法探讨

发表于:2013-5-21 15:49

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

 作者:胡文宇    来源:51Testing软件测试网采编

  摘要:软件测试时保证软件质量的重要手段,如何组织软件测试,耗费最少的时间与最小的工作量完成软件测试,试软件质量满足用户要求,是软件研发单位需要解决的问题。本文结合工程实践,从软件的可测试性以及测试组织等方面探讨提高软件测试效率的方法。

  关键词:可测试性;软件测试;测试人员;

  引言

  自从上世纪七八十年代全面爆发软件危机起,软件产业的发展过程中始终伴随着巨大的管理难题。整个软件产业存在着软件代价高、难于控制开发进度、软件工作量估计困难、质量低,以及软件修改、维护困难等问题。而要解决这些问题,在很大程度上取决于提高软件的设计、开发和测试质量。

  随着软件开发规模的增大,软件的质量问题越来越突出。软件测试是提高软件质量的有效途径在软件测试工作中投入的人力、物力、财力逐渐加大,国外有些软件公司的测试人员和开发人员的比例甚至达到1:1或者2:1的程度,因此如何提高软件测试效率是每个软件研发单位和研发项目面临的严峻问题。

  本文结合工程实践,从软件的可测试性和软件测试组织两个方面进行分析,探讨提高软件测试效率的方法。

  1、影响软件测试效率的因素

  影响软件测试效率的因素很多,文本只论述被测软件质量和软件测试组织对软件测试效率的影响。

  通过软件测试可以发现软件中的某些问题,软件中存在的某些潜在问题由于受测试工具、测试方法和测试时间的限制而无法发现,测试中发现的问题最终需要通过软件开发人员进行纠正,从某种角度来看,软件测试并不能从根本上提高软件质量,软件质量的高低直接取决于软件开发人员的设计与编程水平,好的软件开发人员编写完成的软件具有问题少、易维护等特点,但是有时会出现修改完成了一个软件缺陷,同时又引入多个软件缺陷的情况,需要经过多轮回归测试才能够完成问题归零。所以,虽然软件测试时提高质量的有效途径,但提高软件开发人员的水平,提高反映软件设计质量和开发质量的软件的可测试性是提高软件质量的根本途径。

  软件测试人员对项目需求的理解程度,对测试理论、测试工具和测试方法的掌握程度,以及对测试软件模块在项目中的重要程度和成熟程度的认识,对软件测试效率同样有很大的影响,所以在工程中需要合理组织软件测试,提高软件测试效率。

  2、软件的可测试性

  2.1 可测试性软件的特征

  可测试软件具有以下特征:

  (1)可操作性。可操作性是指:被测软件的错误很少,可以避免重复测试的开销;没有阻碍测试连续执行的错误;在软件设计时应允许在开发阶段进行部分测试活动。

  (2)可观察性。

  可观察性包括:每个输入有唯一的输出;系统状态和变量可见,或在运行中可查询;过去的系统状态和变量可见,或在运行中可查询;所有影响输出的因素都可见;容易识别错误输出;自动报告内部错误;可获取源代码;

  (3)可控制性。可控制性是指:所有可能的输出都产生于某种输入组合;通过某种输入组合,所有代码都可能被执行;软件测试人员可直接控制软件和硬件的状态及变量;输入和输出格式保持一致且有规范的构成;能够便利地对测试进行说明,以及方面地执行和重构测试。

  (4)可分解性。软件系统由众多独立模块构成。每个软件模块均可独立进行测试。

  (5)简单性。简单性包括功能简单性、结构简单性、代码简单性。

  (6)稳定性。软件的变化是不经常的,变化时可控制的,软件的变化不形象已有的测试,失效后能够得到良好的回复。

  (7)易理解性。易理解性包括:设计能够被很好的理解;内部、外部和共享构件之间的依赖性能够很好地被理解;测试人员可方便的获取技术文档,并及时掌握设计更改清空;技术文档组织合理,明确详细。

  2.2 提高软件可测试性的途径

  在实际工作中,可通过以下几个途径提高软件的可测试性:减少并控制需求的变更;加强软件可测试性的设计;重视并规范技术文档的编写。

  2.2.1 减少并控制需求的变更

  用户需求可以分为如下三个层次:基本需求、预期需求和扩展需求三类。七宗预期需求是明示的。而基本需求和扩展需求是非明示的。所谓扩展需求是指这些特征在用户的期望范围之外,并且当其存在时将是非常令人满意的。由于种种原因,软件的需求不确定性事客观存在的,是不可避免的,软件规模越大,研制周期越长,需求的不确定性就越大。软件需求不确定性原因主要包括:用户在表述需求时常常带有不确定性与模糊性;随着开发进程的推进,用户对所建应

  用系统的理解不断深入,对原来模块或是非明示的需求有了新的认识。随时会提出需求的变更;由于开发人员的领域知识的局限性,导致引发对需求的误解;用户需求的获取过程与描述形式往往采用非形式化的自然语言,以及自然概念中存在的本质矛盾,使需求的规范描述发生困难。

  识别项目需求

  识别项目需求是项目成功的关键,为了减少需求的不确定性,首先应充分认识确定需求的重要性,通过与用户的沟通,使用户能充分认识到软件需求变更对软件质量、进度和成本的影响,积极参与到确定软件需求的活动中,达到现有进行软件设计前尽量确定软件需求的目的。同时在识别项目需求时,除了用户明示的需求外,还需关注用户基本需求,用户基本需求常常体现在项目的领域知识、项目所在行业的相关标准等方面。实践证明,开发人员对领域知识掌握的程度直接影响到项目需求的确定,开发人员通过对领域知识的积累有助于项目需求的确定。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号