首页
|
互联网
|
IT动态
|
IT培训
|
Cisco
|
Windows
|
Linux
|
Java
|
.Net
|
Oracle
|
软件测试
|
C/C++
|
嵌入式开发
|
存储世界
|
服务器
网络设备
|
IDC
|
安全
|
求职招聘
|
数字网校
|
网页设计
|
平面设计
|
技术专题
|
电子书下载
|
教学视频
|
源码下载
|
搜索
|
博客
|
论坛
输入您的搜索字词
提交搜索表单
首页
资讯动态
测试技术
测试工具
行业软件测试
测试管理
测试下载
经验分享
软件质量
其他技术
RSS订阅
博客
论坛
您现在的位置:
中国IT实验室
>>
软件测试
>>
测试管理
>> 正文
软件测试的复杂性与经济性
ChinaItLab
佚名
2007-8-6
保存本文
推荐给好友
收藏本页
欢迎进入软件测试社区论坛,与200万技术人员互动交流 >>进入
人们常常以为,开发一个程序是困难的,
测试
一个程序则比较容易。这其实是误解。设计
测试
用例是一项细致并需要高度技巧的工作,稍有不慎就会顾此失彼,发生不应有的疏漏。
不论是黑盒测试方法还是白盒测试方法,由于测试情况数量巨大,都不可能进行彻底的测试。所谓彻底测试,就是让被测程序在一切可能的输入情况下全部执行一遍。通常也称这种测试为“穷举测试”。 “黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。 “白盒”法是穷举路径测试,贯穿程序的独立路径数是天文数字,但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。E.W.Dijkstra的一句名言对测试的不彻底性作了很好的注解:“程序测试只能证明错误的存在,但不能证明错误不存在”。
在实际测试中,穷举测试工作量太大,实践上行不通,这就注定了一切实际测试都是不彻底的。当然就不能够保证被测试程序中不存在遗留的错误。软件工程的总目标是充分利用有限的人力和物力资源,高效率、高质量地完成测试。为了降低测试成本,选择测试用例时应注意遵守“经济性”的原则。第一,要根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级;第二,要认真研究测试策略,以便能使用尽可能少的测试用例,发现尽可能多的程序错误。掌握好测试量是至关重要的,一位有经验的软件开发管理人员在谈到软件测试时曾这样说过:“不充分的测试是愚蠢的,而过度的测试是一种罪孽”。测试不足意味着让用户承担隐藏错误带来的危险,过度测试则会浪费许多宝贵的资源。
测试是软件生存期中费用消耗最大的环节。测试费用除了测试的直接消耗外,还包括其它的相关费用。能够决定需要做多少次测试的主要影响因素如下:
①、系统的目的
系统的目的的差别在很大程度上影响所需要进行的测试的数量。那些可能产生严重后果的系统必须要进行更多的测试。一台在Boeing 757上的系统应该比一个用于公共图书馆中检索资料的系统需要更多的测试。一个用来控制密封燃气管道的系统应该比一个与有毒爆炸物品无关的系统有更高的可信度。一个
安全
关键软件的开发组比一个游戏软件开发组要有苛刻得多的查找错误方面的要求。
②、潜在的用户数量
一个系统的潜在用户数量也在很大程度上影响了测试必要性的程度。这主要是由于用户团体在经济方面的影响。一个在全世界范围内有几千个用户的系统肯定比一个只在办公室中运行的有两三个用户的系统需要更多的测试。如果不能使用的话,前一个系统的经济影响肯定比后一个系统大。除此而外,在分配处理错误的时候,所花的代价的差别也很大。如果在内部系统中发现了一个严重的错误,在处理错误的时候的费用就相对少一些,如果要处理一个遍布全世界的错误就需要花费相当大的财力和精力。
③、信息的价值
在考虑测试的必要性时,还需要将系统中所包含的信息的价值考虑在内,一个支持许多家大银行或众多证券交易所的客户机/
服务器
系统中含有经济价值非常高的内容。很显然这一系统需要比一个支持鞋店的系统要进行更多的测试。这两个系统的用户都希望得到高质量、无错误的系统,但是前一种系统的影响比后一种要大得多。因此我们应该从经济方面考虑,投入与经济价值相对应的时间和金钱去进行测试。
④、开发机构
一个没有标准和缺少经验的开发机构很可能开发出充满错误的系统。在一个建立了标准和有很多经验的开发机构中开发出来的系统中的错误不会很多,因此,对于不同的开发机构来说,所需要的测试的必要性也就截然的不同。 然而,那些需要进行大幅度改善的机构反而不大可能认识到自身的弱点。那些需要更加严格的测试过程的机构往往是最不可能进行这一活动的,在许多情况下,机构的管理部门并不能真正地理解开发一个高质量的系统的好处。
⑤、测试的时机
测试量会随时间的推移发生改变。在一个竟争很激烈的市场里,争取时间可能是制胜的关键,开始可能不会在测试上花多少时间,但几年后如果市场分配格局已经建立起来了,那么产品的质量就变得更重要了,测试量就要加大。测试量应该针对合适的目标进行调整。
【责编:Youping】
相关文章
软件测试工具LoadRunner使用笔记
嵌入式软件的基本测试方法
漫谈软件测试工程师的角色定位
对目前系统测试的几个看法
外包测试:“蛋糕”还是“鸡肋”
软件自动化测试实例分析
性能测试:软件测试的重中之重
怎样成为一个合格的测试工程师
完善测试 避免系统崩溃恶果…
测试人员容易遗漏一些隐藏的缺陷
编辑推荐
· [
经验分享
]
写好MRD的10种技巧
· [
其它
]
解析StressMark压力测试工具
· [
测试资讯
]
大学生求职集体“跳水” 可能会遗憾终身…
· [
性能测试
]
利用TPTP对Java程序进行性能测试
· [
其它
]
一款开源的性能测试工具:认识p-unit
· [
性能测试
]
Apache JMeter web性能测试实例…
· [
其它
]
StressMark压力测试工具
· [
性能测试
]
使用JMeter 完成常用的压力测试…
· [
BUG缺陷管理
]
巧破软件测试缺陷管理之痛
· [
BUG缺陷管理
]
加强运行分析 提高管理水平…
相关产品和培训
文章评论
专题推荐
·
建立可全面监控Squid代理服务器
·
华为认证题库、模拟器下载专题
·
嵌入式操作系统Linux资料下载(A)
·
JAVA的应用编程接口——JAVA API详解…
·
Linux Shell学习技术专题[上]…
·
windows Server 2008专区…
·
WEB开发ASP.NET和PHP、JSP究竟学哪个
·
五步带你入门XML
·
零距离接触OCP_Oracle认证体系全攻略
·
揭秘:网络工程师职业发展路线图
最近更新
开发人员需要了解的测试
经验分享测试员眼中的测试理论
策划人员如何产生游戏测试解决方案
软件测试自动化测试工具的评测方法
项目级和企业级的自动化测试
基于UNIX的操作系统的自动化测试工…
高速数字系统的串音控制技术分析
让Web站点崩溃最常见的七大原因
LoadRunner中HTTP协议的录制及模式
如何提高软件测试水平
博客论点
频道精选
大多数软件测试员应具备的素质
认识软件测试中的手机软件系统测试
IT新锐职业调查显示:软件测试成为职场热…
如何成为最有价值的“测试精英”
软件测试中服务器稳定性测试方法
软件测试缺乏配置管理的问题解决方法
自动化测试脚本运行控制方法研究
漫谈软件测试工程师的角色定位
一个软件测试工程师的工作心得
软件测试工具QTP识别对象的原理
掌握Cisco IOS测试命令的多种用法…
没有用户的可用性测试如何操作?
教你JSP和Servlet的优化性能的方法
面向对象方法与软件复用关系
软件测试频道导航
测试资讯
测试技术
:
功能测试
|
自动化测试
|
单元测试
|
性能测试
|
安全测试
|
Web测试
|
嵌入式测试
|
BUG分析与管理
|
回归测试
|
集成测试
|
白盒黑盒测试
|
可靠性测试
|
可用性测试
|
其它相关技术
|
测试工具
:
Mercury
|
Rational
|
LoadRunner
|
QTP
|
Robot
|
SilkPerformer
|
TestDirector
|
WinRunner
|
其它工具
|
测试管理
:
缺陷管理
|
测试流程管理
|
测试项目管理
|
其它管理
|
软件质量
行业软件测试
:
手机测试
|
通信设备测试
|
数据库应用测试
测试下载
经验分享