痛定思痛后,Microsoft公司的经理们得出一个结论:如果再不成立独立的测试部门,软件产品就不可能达到更高的质量标准。IBM和其它有着成功的软件开发历史的公司便是效法的榜样。但Microsoft公司并不照搬IBM的经验,而是有选择地采用了一些看起来比较先进的方法,如独立的测试小组,自动测试以及为关键性的构件进行代码复查等。Microsoft公司的一位开发部门主管戴夫·穆尔回忆说:“我们清楚不能再让开发部门自己测试了。我们需要有一个单独的小组来设计测试,运行测试,并把测试信息反馈给开发部门。这是一个伟大的转折点。”
但是有了独立的测试小组后,并不等于万事大吉了。自从Microsoft公司在1984年与1986年之间扩大了测试小组后,开发人员开始“变懒”了。他们把代码扔在一边等着测试,忘了唯有开发人员自己才能阻止错误的发生、防患于未来。此时,Microsoft公司历史上第二次大灾难降临了。原定于1986年7月发行的Mac机的Word 3。0,千呼万唤方于1987年2月问世。这套软件竟然有700多处错误,有的错误可以破坏数据甚至摧毁程序。一下子就使Microsoft名声扫地。公司不得不为用户免费提供升级版本,费用超过了100万美元。'Cusumano 1995'
7。2。2 测试人员的分工
从Microsoft公司的教训中可知,公司内部对产品的测试(称为α测试),需要开发人员与独立的测试小组共同参与。开发人员应该执行“白盒”测试,即测试源程序的逻辑结构以及实现细节(“白盒”是指看得见程序的内部结构)。而独立测试小组应该执行“黑盒”测试,即按照规格说明来测试程序是否符合要求(“黑盒”是指看不见程序的内部结构)。比如在测试一个模块时,“白盒”测试方法要对模块的所有代码进行单步跟踪测试。而“黑盒”测试方法只需测试模块的接口是否符合要求,它关心程序的外部表现而不是内部的实现细节。
小型的软件公司可能没有条件设立独立的测试小组,也有可能测试小组人员不多而忙不过来。这时,可以让开发小组的成员相互测试对方的程序。
这里要强调的是,α测试不能依赖于开发人员或者测试小组中的任意一方,必须是双方共同参与。“白盒测试”必须由开发者自己执行,因为别的测试人员无法了解到程序的内部实现细节。而“黑盒测试”必须由独立的测试人员执行,因为开发者难以做到客观、公正。开发者在测试自己的程序时存在一些弊病:
(1)开发者对自己的程序印象深刻,并总以为是正确的(自信是应该的)。倘若在设计时就存在理解错误,或因不良的编程习惯而流下隐患,那么他本人很难发现这类错误。
(2)开发者对程序的功能、接口十分熟悉,他自己几乎不可能因为使用不当而引发错误,这与大众用户的情况不太相似,所以自己测试程序难以具备典型性。
(3)程序设计有如艺术设计,开发者总是喜欢欣赏程序的成功之处,而不愿看到失败之处。让开发者去做“蓄意破坏”的测试,就象杀自己的孩子一样难以接受。即便开发者非常诚实,但“珍爱程序”的心理让他在测试时不知不觉地带入了虚假成份。
软件产品正式发行前,在公司外部邀请一些用户对产品进行测试,称为β测试。β测试的涉及面最广,最能反映用户的真实愿望,但花费的时间最长,不好控制。一般地,软件公司与β测试人员之间有一种互利的协议。即β测试人员无偿地为软件公司作测试,定期递交测试报告,提出批评与建议。而软件公司将向β测试人员免费赠送或者以很大的优惠价格发行软件的正式版本。
7。3 测试的主要内容与常用方法
有一次文学考试,问高尔基是哪国人。一考生乐极而吟:“尔基啊尔基,你若不姓高,我怎知你是中国人。”这是一种瞎猜法。如果这种方法用于软件测试,人累死也测不出什么结果来。
不论是对软件的模块还是整个系统,总有共同的内容要测试,如正确性测试,容错性测试,性能与效率测试,易用性测试,文档测试等。“白盒测试”是指开发人员从程序内部对上述内容进行测试,而“黑盒测试”是指独立的测试人员从程序外部对上述内容进行测试。很多软件工程教材讲述了各种各样的测试方法并例举了不少示例'Pressman 1997' 'Sommerville 1992' '杨文龙 1997'。本节简明地讲述常用的测试方法及其道理。
7。3。1 正确性测试
正确性测试又称功能测试,它检查软件的功能是否符合规格说明。由于正确性是软件最重要的质量因素,所以其测试也最重要。
基本的方法是构造一些合理输入,检查是否得到期望的输出。这是一种枚举方法。倘若枚举空间是无限的,那可惨了,还不如回家种土豆有盼头。测试人员一定要设法减少枚举的次数,否则没好日子过。关键在于寻找等价区间,因为在等价区间中,只需用任意值测试一次即可。等价区间的概念可表述如下:
记(A; B)是命题f(x) 的一个等价区间,在(A; B)中任意取x1进行测试。
如果f (x1) 错误,那么f (x) 在整个(A; B)区间都将出错。
如果f (x1) 正确,那么f (x) 在整个(A; B)区间都将正确。
上述测试方法称为等价测试,来源于人们的直觉与经验,可令测试事半功倍。
还有一种有效的测试方法是边界值测试。即采用定义域或者等价区间的边界值进行测试。因为程序员容易疏忽边界情况,程序也“喜欢”在边界值处出错。
例如测试的一段程序。凭直觉等价区间应是(0; 1)和(1; +∞)。可取x=0。5以及x=2。0进行等价测试。再取 x=0以及x=1进行边界值测试。
有一些复杂的程序,我们难以凭直觉与经验找到等价区间和边界值,这时枚举测试就相当有难度。
在用“白盒测试”方式进行正确性测试时,有个额外的好处:如果测试发现了错误,测试者(开发人员)马上就能修改错误。越早改正错误,付出的代价就越低。所以大多数软件公司要求程序员在写完程序时,马上执行基于单步跟踪的“白盒测试”。
7。3。2 容错性测试
容错性测试是检查软件在异常条件下的行为。容错性好的软件能确保系统不发生无法意料的事故。
比较温柔的容错性测试通常构造一些不合理的输入来引诱软件出错,例如:
(1)输入错误的数据类型,如“猴”年“马”月。
(2)输入定义域之外的数值,上海人常说的“十三点”也算一种。
粗暴一些的容错性测试俗称“大猩猩”测试,除了不能拳打脚踢嘴咬,什么招术都可以使出来。这里我举不出例子,因为我没有对程序粗暴过,并且这辈子也不打算学会粗暴。
7。3。3 性能与效率测试
性能与效率测试主要是测试软件的运行速度和对资源的利用率。有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。
在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如计算机主频,总线结构和外部设备都可能影响软件的运行速度;若与多个计算机共享资源,软件运行可能慢得像蜗牛爬行。
在获取测试的“相对值”时,我们要确保被测试的几个软件运行于完全一致的环境中。硬件环境的一致性比较容易做到(用同一台计算机即可)。但软件环境的因素较多,除了操作系统,程序设计语言和编译系统对软件的性能也会产生较大的影响。如果是比较几个算法的性能,就要求编程语言和编译器也完全一致。
性能与效率测试中很重要的一项是极限测试,因为很多软件系统会在极限测试中崩溃。例如,连续不停地向服务器发请求,测试服务器是否会陷入死锁状态不能自拔;给程序输入特别大的数据,看看它是否吃得消。
7。3。4 易用性测试
易用性测试没有一个量化的指标,主观性较强。调查表明,当用户不理解软件中的某个特性时,大多数人首先会向同事、朋友请教。要是再不起作用,就向产品支持部门打电话。只有30%的用户会查阅用户手册。'Cusumano 1995'
一般认为,如果用户不翻阅手册就能使用软件,那么表明这个软件具有?
小说推荐
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- 超级软件
- 《超级软件》作者:钓鱼超级软件 第一卷 大脑也能装软件序 章 君子以自强不息“李天纵,一起去玩魔兽,哥几个带你练级”下午最后一节课结束以后,教室里的同学都开始吵吵晚上要去哪里玩耍。被叫做李天纵的男生中等身材,外形俊朗阳光,薄薄的双唇紧紧抿着,显得很有性格。他略一犹豫,摇摇头“不了,下次吧,我等会还有
- 最新章:第330章
- 交友软件
- 《交友软件》作者:安颜 文案 论约到自己男神是种什么体验 演技负分智商下线总裁攻x外表冷漠内心狂热美人受 炮友变情人 一个演技负分一个配合表演最后还演到一起去的故事 1v1 狗血有 小虐有 女装有第一章 祁明思第一次在交友软件上看到这个男人(也可能是个男孩)的照片的时候,出于对美的事物的欣赏,默默点
- 最新章:第30章
- 修仙软件
- 作者:稀凤】正文第一章 穿越异界和煦的春光照在千灵峰后山,一阵清风吹过,带着淡淡菊花香,诱人入睡。竹叶斑斑,菊花遍开,昭示这座山峰的灵秀。萧泽尧躺在山丘上睡觉,面朝太阳。来这个世界也有三个多月了,他现在所在的门派是三大正宗的仙门,其他两巨头是神殿和圣谷。混沌初开,天地有别,有仙自然有魔。伫立于三大正
- 最新章:第132章
- 软件帝国
- 《软件帝国》作者:香港大亨[软件帝国 香港大亨 著/书籍介绍:何笑的大脑中有个炼丹炉—炼的不是丹药,而是程序和软件!卡巴斯基很牛?放到何笑的炉子中炼一炼,就可以炼出比卡巴斯基还牛的杀毒软件。网站开发很难吗?额,把网站转移到炼丹炉中炼一晚上,一个更完美的网站系统被开发出来了.这是全新的创意,一个能带给
- 最新章:第268章
- 未来软件
- [未来软件 迪厅肥猫 著]书籍介绍:罗宁,刚刚失恋的他又丢了工作。可谓赔了夫人又折兵。但是这也是他奇遇的开始“你是谁“我是你未来的老婆“我去!真的假的”一部山寨手机!但是软件很牛奔!不但可以跟未来的老婆聊天,还能玩各种各样的‘特殊游戏’于是乎他成了世界上最牛奔的主。喜欢的筒子加群:33629503-
- 最新章:第268章
- 我是杀毒软件
- 好书尽在.w 文案 我游走在黑暗与光明之间,杀戮是我的挚友,邪恶是我的仆从,白骨累累化作我的权杖,鲜血殷殷染红我的披风,阴冷双翼所过之处,死亡的哭号必将震天动地 我是死神 同时也是一个杀毒软件。第一章 杀毒程序小兵 每一次呼吸之间,都像是一万年那么漫长 记忆中的碎片不断组合,重叠,犹如一场场离奇的梦
- 最新章:没有后记的后记
- 都市之超神软件
- 简介:刘小陈意外获得一个来自两千年后的手机软件,从此开始非凡人生!拳打流氓汉!脚踹装逼犯!从来不怂,就是爱干“如果有一天你看见我暴打装逼犯,哥想说,哥打的不是人,是无敌的寂寞”书友兄弟群:98295第1章 叫的这么销魂)齐州市大马路上“啪”当爱疯6被摔在地上那一刻,刘小陈双眸呆滞,不敢相信!这爱疯6
- 最新章:第459章