软件质量管理实践 ——软件缺陷预防、清除、管理实用方法 前言 故事发生在 2001年初,周一早晨,新上任的质量保证部经理召集部门的全体人员开会
当时该部门有 8个测试人员和 5个文档、3个美工
对于一个刚刚成立的拥有员工 70多人的软件公司来说,该部门人员占比达 23%之多,其投入的规模和同行小公司相比不算小
与会过程中,就软件质量问题,大家各抒己见
经理说:“公司自从转向软件开发以来,开发工作开展很顺利,我们质量保证部主要工作是测试,尽快、尽多、尽早地发现程序中的错误,保证开发出来的产品质量,其责任重大
” 测试工程师甲说:“缺陷就是 Bug,程序员开发完产品后,咱们测试人员尽可能多地发现其中的 Bug,遗留在产品中的 Bug就会越少,产品质量就会越高
” 测试工程师乙说:“只要我们发现了所有的 Bug,让程序员改正过来,我们就可以放心地对用户说,我测过的软件你放心,绝对不会再有质量问题
会议在经理的主持与分配任务中告一段落
上述对软件产品和软件产品质量的说法,从事软件研发的人可能都听到过
相隔 7年之后,回首往事,仔细思考一下,其中类似说法有多少是完全正确的呢
软件质量真的像他们说的那样吗
在 20世纪 90年代中期,几次著名的分析都得到了相同的具有普遍性的结论,即软件项目的成功率非常低
著名的观点如,软件开发仍然具有高度的不可预知性,只有大约 10%的软件项目在最初估计的预算和进度内成功地交付;与其说管理规范是技术进步,还不如说是成功和失败的鉴别器;软件废品和返工的程度是不成熟过程的象征
目前,随着软件工程技术的不断发展,人们已经逐渐认识到,软件质量是多方面的活动协力构建起来的,由软件开发整个过程的质量所决定,质量问题不是仅仅通过测试就能发现并解决的
大量实践证明,软件产品与传统产品有着不同的特征,如不可见性、灵活性、复杂性等,所以软件缺陷的预防自