对于职业我们要有梦想,不抛弃不放弃。人生才会有乐趣。

浅谈软件测试的意义

上一篇 / 下一篇  2010-12-14 16:51:09 / 个人分类:测试基础

软件测试的重要性及其对软件质量的好坏的预测是非常重要的。软件测试是软件质量保证的关健环节,代表了需求、设计和编码的最终检查。

    软件系统的开发包括一系列生产活动,其中由人带来的错误因素非常多。错误可能出现在程序的最初,需求是错误的或描述不完整,也可能出现在后期的设计和开发阶段,也因为人员没有充分的沟通与交流,软件开发过程中必须伴有质量保证活动。

     为了保证软件的质量和可靠性,应力求在分析、设计等各开发阶段结束前,对软件进行严格的技术评审。但是由于人们能力的局限性,审查还不能发现所有的错误。而且在编码阶段还会引进大量的错误。这些错误与缺陷如果遗留到软件发布投入运行之时,终将会暴露出来。但到那时,不仅改正这些错误的代价更高,而且往往造成很恶劣的后果。因此软件的错误尽量在前期发现,并且发现越早修改越容易,投入的代价就越小。鼓励测试人员前期介入,提前发现软件问题。

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

 

   软件测试活动应伴随软件周期的各个阶段,根据IPD流程定义,IPD流程的六个阶段为:概念、计划、开发、验证、发布、生命周期;IPD流程的主要测试类型有:构建模块功能验证(BBFV)、构建模块集成测试(BBIT)、系统设计验证(SDV)、系统集成测试(SIT)、系统验证测试(SVT)、β测试Beta)、认证和Build测试(C&BT);不同的产品测试对象有:模块、Building BlockBuild、原型机、初始产品;测试过程管理有:测试策略、测试过程估计、测试计划管理、测试风险管理,以及测试质量目标、测试质量标准、相关利益人等;测试配置管理有:缺陷管理、测试文档管理、测试需求管理等;测试质量保证活动有:检视、TRSUB-TR以及内部审计、交付物审计、基线审计、质量工作手册等;测试过程改进活动有:测试度量与分析、缺陷分析与预防、测试质量成本、测试能力基线等。在后面会详细介绍软件测试与产品各阶段点的关系。

测试为软件工程师带来很有趣的意外。在软件过程的早期,软件工程师试图由抽象概念到具体实现来建立软件,现在来了测试,测试工程师创建测试用例试图“摧毁”已经建立的软件。事实上,在软件工程过程中,测试可以看成(至少在心理上)摧毁性的而不是建设性的。软件开发者就其本性而言是建设者,测试要求开发者放弃刚开发的软件是正确的观念,并克服发现错误时的心理矛盾。

 

     如果我们真正擅长编程,就应当不会有错误,但这只是一个神话。如果我们真的很认真,每个人都使用结构化的方法,自顶向下设计而且使用决策表,如果我们有合适的银弹,就不会有错误了,这样,神话就不会存在了。因为我们并不擅长所做的事,所以有错误。因此测试和测试用例设计是对失误的承认,它注入了一针内疚剂。测试真的应当注入内疚感?测试真的是摧毁性的?这个问题的回答是“不”,然而,测试的目标可能与我们期待的不同。


TAG:

 

评分:0

我来说两句

Open Toolbar