2、测试的目的
测试是保证软件质量的主要手段。测试的目的不是验证程序的正确性,而是让程序执行失败。测试只能表明错误的存在,而不能表明错误的不存在。这就好比测试一个科学的理论不是要证明它,而是要推翻它,也就是证明它有错误。
3、为什么测试
开发软件的是“人”不是机器,世界上没有不犯错误的“人”。根据公司实践经验统计,平均每个程序员每天大约要写300行程序,每100行程序平均大约有2~3个BUG,这还不包括模块之间的“关联”错误。我们只有经过测试,才可能发现这些BUG。没有测试的开发是不可想象的。
4、能否彻底测试
测试工作无论做的多么仔细与完全,你将永远无法发现程序中的最后一个bug。
一个仅有20行代码的执行程序,它可能会有100万亿个路径,一个熟练的测试人员将其全部测完需要10亿年。
5、测试的工作量
软件测试的工作量要占据开发总工作量的40%到60%,测试工作贯串于开发全过程的始终。
6、测试的效率
软件工程的总目标是充分利用有限的人力和物力资源,高效率、高质量地完成软件开发项目。在测试阶段既然穷举测试是不可实现的,为了节省时间和资源,提高测试效率,就必须精心设计测试用例,使得采用这些测试用例能够取得最佳的测试效果。“不充分的测试是愚蠢的,而过度的测试则是一种罪孽。”
7、测试工作中的问题
测试工作中通常会出现以下问题:
◆ 不承担测试职责的人员,责任感不到位,出发点也不同
◆ 没有一套严格的操作程序,工作一紧张就会顾此失彼
◆ 不讲究方法,许多BUG根本查不出来
◆ 不按照用户的实际使用思路测试,对特殊情况没有意识,会遗漏BUG
◆ 不归纳BUG的出现规律,程序员很难修改
◆ 不验证错误的修改,就不知道错误是否纠正,是否“诱发”了其他错误
二、软件测试现状
软件产品的质量问题一直令人困扰。到底什么样的软件才算是一个好产品?保证软件质量谈何容易。
IT界迅猛的发展速度已经不能允许研制者“精雕细琢”,在市场经济杠杆的作用下,用户的性情越来越“急躁”,一个市场需求刚刚冒头就希望第二天拿到产品;而且顾客还经常振振有词:你要是干不了我去找别人……
从上面谈到的情况看,软件过程的质量已经远远超出是某个版本“产品本身质量”的问题了。用比较全面和准确的语言描述的话,高质量的软件产品应当等于“让用户满意”。
让顾客完全满意的要素有三点:产品质量、交货期和成本价格。