测试与改错

测试与改错
测试与改错

第七章测试与改错

编程大师说:“任何一个程序,无论它多么小,总存在着错误。”

初学者不相信大师的话,他问:“如果一个程序小得只执行一个简单的功能,那会怎样?”

“这样的一个程序没有意义,”大师说,“但如果这样的程序存在的话,操作系统最后将失效,产生一个错误。”

但初学者不满足,他问:“如果操作系统不失效,那么会怎样?”

“没有不失效的操作系统,”大师说,“但如果这样的操作系统存在的话,硬件最后将失效,产生一个错误。”

初学者仍不满足,再问:“如果硬件不失效,那么会怎样?”

大师长叹一声道:“没有不失效的硬件。但如果这样的硬件存在的话,用户就会想让那个程序做一件不同的事,这件事也是一个错误。”

没有错误的程序世间难求。[James 1999]

错误是一种严重的程序缺陷。测试的目的是为了发现尽可能多的缺陷,并期望通过改错来把缺陷统统消灭,以期提高软件的质量。但关于测试与改错实在没有什么高明的方法值得大书特书,也不能表现出程序员的聪明才智。相反地,它们带来了更多的牢骚与痛苦。因此在教学和开发实践中,测试与改错总是被当作万般无奈的工作踢到角落里。

医生可以把他的错误埋葬在地下了事,但程序员不能。我们必须要学会测试与改错,并且把测试与改错工作做好。

7.1 对测试的理解

测试的道理并不深奥,计算机专业人员都应该明白。但就是这么简单的事,计算机专业的博士们也未必都已经理解。

有一天,一位比我聪明,编程比我快,学习能力比我强的计算机专业博士生恭恭敬敬地请我坐好,并且史无前例地削了苹果请我吃,为的是向我请教“软件工程”问题。你必定以为这位仁兄好学之极。非也,我和他同事三年来从未探讨过“软件工程”问题。只因为他明天要去应聘,参加面试,生怕被人问倒,就央我当晚为他恶补一把“软件工程”。他还特地问我“什么是白盒测试和黑盒测试?应该由谁来执行?”(有公司曾经这样面试应聘者)当我解释完测试的道理时,他叹了一口气说:“这些玩意儿我读大学十年来都没搞过,怎么能讲得出道理来。唉,就去碰碰运气吧。”我有“兔死狐悲”的感觉。我们这一群博士生三年来尽干些自欺欺人的事,到毕业时学问既不深也不博。个个意志消沉,老气横秋。长此以往,总有一天招聘会的大门前将贴出标语“博士与狗不得入内”。

以下是关于测试的几个重要观念。

7.1.1 测试的目的

测试的目的是为了发现尽可能多的缺陷。

这里缺陷是一种泛称,它可以指功能的错误,也可以指性能低下,易用性差等等。测试总是先假设程序中存在缺陷,再通过执行程序来发现并最终改正缺陷。理解测试的目的是个很重要的意识问题。如果说测试的目的是为了说明程序中没有缺陷,那么测试人员就会向这个目标靠拢,因而下意识地选用一些不易暴露错误的测试示例。这样的测试是虚假的。

目前高校的科技成果鉴定会普遍存在类似的虚假现象。我在读硕士时就亲身经历过这样的事。我们的项目是研究集成电路制造过程中的成品率问题。当时国内大多数工厂的集成电路成品率只有百分之几,我编写的示例程序可以将集成电路的成品率优化到98%。示例效果是如此的好,以致一位评委(某厂的总工程师)不无讽刺地说:“采用你们的成果,我们可要发大财了。”这个项目就轻易地通过了鉴定,并且不久后获得了电子工业部科技进步二等奖。这就象在考试时通过作弊取得了好成绩而被表扬。我那时尚且纯真,羞愧之余,不禁对高校科研成果的水平和真实性大失所望(现在我已不再失望,因为很少抱希望)。

一个成功的测试示例在于发现了至今尚未发现的缺陷。

测试并不仅是个技术问题,更是个职业道德问题。

7.1.2 测试的心理要求

测试主要是由人而不是由机器执行,这就不免与心理因素相关。为了测试的真实性,对测试的心理要求是“无情”。这似乎太残酷了。开发人员不能很好地测试自己的程序是因为做不到无情。而测试人员如果做到了无情却会引起开发人员的愤怒,遭人白眼。

尽管已经明白了测试的目的是为了发现尽可能多的缺陷,但当测试人员真的发现了一堆缺陷时,却不可乐颠颠地跑去恭喜那个倒霉的开发者,否则会打架的。

7.1.3 测试的真理

测试只能证明缺陷存在,而不能证明缺陷不存在。

这个真理告诉我们,对于一个复杂的系统而言,无论采取什么样的测试手段都不能证明缺陷已经不复存在。“彻底地测试”只是一种理想。在实践中,测试要考虑时间、费用等限制,不允许无休止地测试。

7.1.4 测试与质量的关系

测试有助于提高软件的质量,但是提高软件的质量不能依赖于测试。测试与质量的关系很象在考试中“检查”与“成绩”的关系。

学习好的学生,在考试时通过认真检查能减少因疏忽而造成的答题错误,从而“提高”了考试成绩(取得他本来就该得的好成绩)。

而学习差的学生,他原本就不会做题目,无论检查多么细心,也不能提高成绩。

所以说,软件的高质量是设计出来的,而不是靠测试修补出来的。

7.2 测试人员的选择

测试需要开发人员参与吗?

测试需要独立的测试小组吗?

测试需要用户参与吗?

让我们先看一看Microsoft公司关于测试的经验教训,再回答上述问题。

7.2.1 Microsoft公司的经验教训

在80年代初期,Microsoft公司的许多软件产品出现了“Bug”。比如,在1981年与IBM PC机一起推出的BASIC软件,用户在用“.1”(或者其他数字)除以10时,就会出错。在FORTRAN软件中也存在破坏数据的“Bug”。由此激起了许多采用Microsoft 操作系统的PC厂商的极大不满,而且很多个人用户也纷纷投诉。

Microsoft公司的经理们发觉很有必要引进更好的内部测试与质量控制方法。但是遭到很多程序设计师甚至一些高级经理的坚决反对,他们固执地认为在高校学生、秘书或者外界合作人士的协助下,开发人员可以自己测试产品。在1984年推出Mac机的Multiplan(电子表格软件)之前,Microsoft曾特地请Arthur Anderson咨询公司进行测试。但是外界公司一般没有能力执行全面的软件测试。结果,一种相当厉害的破环数据的“Bug”迫使Microsoft公司为它的2万多名用户免费提供更新版本,代价是每个版本10美元,一共化了20万美元,可谓损失惨重。

痛定思痛后,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 )中任意取x 1进行测试。 如果f (x 1) 错误,那么f (x) 在整个(A, B )区间都将出错。

如果f (x 1) 正确,那么f (x) 在整个(A, B )区间都将正确。

上述测试方法称为等价测试,来源于人们的直觉与经验,可令测试事半功倍。

还有一种有效的测试方法是边界值测试。即采用定义域或者等价区间的边界值进行测试。因为程序员容易疏忽边界情况,程序也“喜欢”在边界值处出错。 例如测试x x f )(的一段程序。凭直觉等价区间应是(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]

一般认为,如果用户不翻阅手册就能使用软件,那么表明这个软件具有较好的易用性。

7.3.5 文档测试

文档测试主要检查文档的正确性、完备性和可理解性。好多人甚至不知道文档是软件的一个组成部分。

正确性是指不要把软件的功能和操作写错,也不允许文档内容前后矛盾。

完备性是指文档不可以“虎头蛇尾”,更不许漏掉关键内容。有些学生在证明数学题时,喜欢用“显然”两字蒙混过关。文档中很多内容对开发者可能是“显然”的,但对用户而言不见得都是“显然”的。

文档不可以写成散文、诗歌或者侦探、言情小说,要让大众用户看得懂,能理解。

很多程序员能编写出好程序,却写不出清晰的文档。不要说自己以前语文学得差,现在已没救了,找借口不是办法。没有人天生就能写出好程序,都是练出来的。同理,若第一次写不好文档,就多写几次文档,慢慢地就会写出好文档来。我上大学前不会说普通话,不会写作文,现在我极能说会写,当个秘书或书记已绰绰有余。

7.4 改错

在软件测试时如果发现了错误,必须请程序员改错,否则测试工作就白干了。

改错是个大悲大喜的过程,一天之内可以让人在悲伤的低谷和喜悦的颠峰之间跌荡起伏。如果改过上万个程序错误,那么少男少女们不必经历失恋的挫折也能变得成熟起来。

我从大三开始真正接受改错的磨练,已记不清楚多少次汗流浃背、湿透板凳。改不了错误时,恨不得撞墙。改了错误时,比女孩子朝我笑笑还开心。

在做本科毕业设计时,一天夜里,一哥们流窜到我的实验室,哈不拢嘴地对我嚷嚷:“你知道什么叫茅塞顿开吗?”

我象白痴似的摇摇头。

他说:“今天我化了十几个小时没能干掉一个错误,刚才我去了厕所五分钟,一切都解决了。”

他还用那没洗过的手拉我,一定要请我吃“肉夹馍”。那得意劲儿仿佛同时谈了两个女朋友。

在本节,我要替程序员们总结关于改错的几点思想方法:

(1)要有勇气。东北有个林场工人,工作勤奋,一人能干几个人的活。前三十年是伐树劳模,受到周总理的接见。忽有一天醒悟过来,觉得自己太对不起森林,决心补救错误。后三十年成了植树劳模,受到朱总理的接见。此大勇也。

程序中的错误只有开发者自己才能找出并改掉。如果因畏惧而拖延,会让你终日心情不定,食无味,睡不香。所以长痛不如短痛,要集中精力对付错误。

(2)不可蛮干。都说急中生智,我不信。我认为大多数人着急了就会蛮干,早把“智”丢到脑后。不仅人如此,动物也如此。

我们经常看到,蜜蜂或者苍蝇想从玻璃窗中飞出,它们会顶着玻璃折腾几个小时,却不晓得从旁边轻轻松松地飞走。我原以为蜜蜂和苍蝇长得太小,视野有限,以致看不见近在咫尺的逃生之窗,所以只好蛮干。可是有一天夜里,有只麻雀飞进我的房间,它的逃生方式竟然与蜜蜂一模一样。我用灯光照着那扇打开的窗户为其引路,并向它打手势,对它说话,均无济于事。它是到天亮后才飞走的,这一宿我俩都没息好。

(3)找出错误的根源。有人问阿凡提:“我肚子痛,应该用什么药?”阿凡提说:“应该用眼药水,因为你眼睛不好,吃了脏东西才肚子痛。”

我们应该运用归纳、推理等方法尽早确定错误的根源。

(4)在改错之后一定要马上进行重新测试,以免引入新的错误。有人在马路上捡到钱包后得意忘形,不料自己却被汽车撞倒。改了一个程序错误固然是喜事,但要防止乐极生悲。更加严格的要求是:不论原有程序是否绝对正确,只要对此程序作过改动(哪怕是微不足道的),都要进行重新测试。

7.5 小结

优秀的程序员敢于声称自己的代码没有错误,这种自信让人羡慕不已。一个错误自身也许很微小,但是程序存在错误这件事很严重。能否做好测试与改错工作,思想认识和办事态度是最关键的。

程序员应该把测试当成份内之事,不要依赖于外界的“黑盒测试”。“黑盒测试”就象通过提问题来判断一个人是否是个疯子,但无法知道他为什么成了疯子。让程序员对所有的代码执行单步跟踪测试听起来很费时间,但习惯了你就感觉不到有什么不方便。单步跟踪测试将使你以后的日子更轻松。

软件测试度量(精华)

软件测试度量(精华) 转至https://www.360docs.net/doc/8d14887595.html, 摘要: 任何过程的有效管理需要量化、测量和建模。软件度量为开发和软件过程模型的验证提供量化方法。度量帮助组织获得继续提高生产率、减少错误和提高过程接受率、产品、服务以及达到最终目标的信息。 这份白皮书发表了度量生命周期、各种软件测试度量元、度量元元素、过程评估以及达到理想的结果。 一、业务需要 在技术方面日益增加的竞争和飞跃,迫使公司采取创新的方法来评估自己的过程、产品和服务。这种评估将帮助他们改善业务,使他们能够取得成功,并且获得更多利益和较高的市场占有率。 度量是评估的基石也是任何业务改进的基础。 二、软件度量 度量是标准度量单位的量化结果。对于评估软件过程、产品以及服务使用的度量被称作软件度量。 Paul Goodman给出的软件度量定义: 软件度量是一中度量技术,这种技术应用在过程、产品和服务中用来支撑工程和管理信息,以及支持过程、产品以及服务的信息上的改进,如果需要的话。 三、度量的重要性 ● 度量是用来提高质量、产品生产力以及服务,从而达到客户满意度。 ● 对于管理组织很容易分析数据并且深入下去,如果需要的话。 ● 当过程不受控时有不同的度量方式作为监控者。

● 度量提供当前过程改进。 四、记忆要点 ● 度量那些可以收集的必须使用的准确以及完整数据。 ● 度量必须很容易解释以及评估。 ● 度量多样化使度量基准形式可以从组织到组织,也可以是个人到个人。 五、度量生命周期 建立度量时涉及的过程: 六、软件测试度量类型 基于测试执行的不同类型,下面就是软件测试度量的类型: 1、手工测试度量 2、性能测试度量 3、自动化测试度量 下面的图表展示了不同的软件测试度量

软件测试期末题库 晓庄学院

题型: -客观题:选择题(10*1’)+填空题(10*2’ ) +判断题(10*1 )共40分 -简答题: 4*5’分,共20分 -分析题: 4*10’题,共40分 #Chap 1 ·软件测试的概念(P9) ·软件测试正反2种观念的争辩。他们的观念及存在的问题。(P7~9) ·结合V模型谈谈开发与测试关系附录:V模型P11 ·请结合实例,谈谈为什么穷尽测试是不可能的。(开放题,从输入和路径穷尽来考虑) ·了解测试目的、测试驱动开发的概念(P9 P13) #Chap 2 ·软件质量的概念 软件质量定义:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。它包括:1软件产品质量满足用户要求的程度;2软件各种属性的组合程度3用户对软件产品的综合反映程度4软件在使用过程中满足用户要求的程度(P15) ·ISO9126软件质量模型(一层6个即可),并分别说明各个质量属性的含义(P17) Iso9126模型:高层:软件质量需求评价标准(SQRC)属性:功能性、可靠性、可用性、效率、可移植性、可维护性 中层:软件质量设计标准(SQDC)属性:安全性、、成熟性、可理解性、时间表现、可分析性、适应性 低层:软件质量度量标准(SQMC) ·软件缺陷的定义及表现形式 软件缺陷:是指计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵,其结果会导致软件产品在某种程度上不能满足用户的需求 表现形式:1运行出错,包括运行中断、系统崩溃、界面混乱2数据计算错误,导致结果不正确3功能、特性没有实现或部分实现4在某种特点条件下没能给出正确或准确的结果5计算的结果没有满足所需要的精度6用户界面不美观7需求规格说明书的问题8设计不合理,存在缺陷9实际结果与预期结果不一致10用户不能接收的其他问题(P18) ·验证与确认(V&V)的概念及两者区别V&V 验证:是检验开发出来的软件产品和设计规格说明书的一致性,即是否满足软件厂商的生产要求 确认:就是检验产品功能的有效性,即是否满足用户的真正需求(P21) ·SQA的概念及表现形式、与软件测试的关系 SQA与软件测试之间相辅相成,存在包含和交叉的关系。它们的相同点在于二者都是贯穿整个软件开发生命周期的流程。不同在于SQA 是一项管理工作,侧重与对流程的评审和监控,而测试是一项技术性的工作,侧重于对产品的评估和验证(P23) ·软件测试的分类:按阶段、按目标、按方法。(P23~P25 目的分类:集成测试、功能测试、回归测试、性能测试、可靠性测试、安全测试、兼容性测试 阶段分类:单元测试、集成测试、功能测试、系统测试、安装测试、验收测试 方法分类:静态测试、动态测试、黑盒测试、白盒测试 -静态测试和动态测试、黑盒测试和白盒测试

软件测试填空题

1、软件质量工程包括软件质量保证、软件质量规划和软件质量控制三大方面。 2、McCall模型产品修改纬度的质量因素有可维护性、可测试性、灵活性。 3、面向对象模型不同于其他模型的主要特征是组件的密集重用。 4、有两种同行评审方法学:审查和走查。 5、RMA可以划分成三组类别内部风险管理措施,分包风险管理措施,顾客风险管理措施 6、支持性质量手段有模板和检查表。 7、依据软件系统的生命周期和其他阶段,软件质量度量划分为软件过程度量和软件产品度量。 8、软件配置发布的版本有基线版本、中间版本、修订版本。 9、SQA标准被划分成软件质量管理标准和软件项目过程标准两类。 10、软件缺陷的固有特征有软件缺陷的固有性、软件缺陷的敏感性、软件缺陷的感染性。 11、McCall模型划分了软件运行、软件转移、软件修改三个纬度的11个软件质量因素。 12、螺旋模型任何一次迭代都可划分为制定计划、风险分析和化解、工程和顾客评估四个项限。 13、依据合同评审的目标对合同评审主题进行分类为建议草案评审主题和合同草案评审主题两种类型。 14、典型的版本方针包括严格-单一活动版本方针、多版本方针。 15、软件对属于各种质量因素的需求的符合性是由软件质量度量来测量的。 16、CAPA过程的成功运行包含如下活动:信息收集、信息分析、解决方案和改进方法的建立、改进方法的执行、跟踪。 17、常见的软件配置演化模型有线性演化模型和树演化模型。 18、软件更改的质量保证工作需要每个更改的SCI的质量保证和整个新软件系统版本的质量保证两个级别的活动。 19、从内容和重点上我们可以把质量管理标准划分成认证标准和评估标准两种类型。 20、测试人员、 SQA单位是SQA专职人员。 21、CMM内容包含初始级、可重复级、已定义级、已管理级和可优化级五个等级。 22、软件质量保证的目标包括面向产品的软件开发和面向过程的软件维护两大方面。 23、开发生命周期阶段SQA部件可以划分成三类:评审、专家观点、软件测试、软件维护SQA部件和由第三方/分包商使用的SQA部件。 24、版本方针和更改方针是维护方针的主要组成。 25、外部参与方可被分类为分包商、COTS软件和重用软件模块的供货

测试质量衡量标准

测试质量衡量标准 质量衡量标准(标尺) 可清晰量化的衡量产品质量 测试覆盖率-代码块覆盖,功能覆盖,用例覆盖....这么多覆盖率,每个覆盖率,合理的目标是多少?50%?80%100% 按照找到的缺陷数目,多少是被用户找到的,多少是被内部非测试团队找到的,多少是被测试团队找到的,以此为衡量质量的标尺之一? 重复发生的回归性缺陷数目 补丁和Service package数量,来衡量质量 我们有这么多可以用来衡量质量的标准,那么,哪些应该是核心的标准,最重要的普遍标准.怎么把各个标准和质量关联上? 制定发布的质量指标,怎样才是正确的指标,可以指导我们决定发布还是延迟发布产品直到我们达到该指标. 怎么定义测试效率?包括怎么衡量s变化对测试的影响.. 怎么定义测试"完成"了? 复杂领域产品测试: 音频和视频质量测试 "看起来效果对吗?" "听起来效果对吗?" 效果"好"吗? 各种主观类型的测试判断 测试工具对系统本身的影响(测不准原理?): 性能测试工具本身对机器性能的影响所导致的测不准效果. 如何确定一个软件的测试结束点 在软件消亡之前,如果没有测试的结束点,那么软件测试就永无休止,永远不可能结束。软件测试的结束点,要依据自己公司具体情况来制定,不能一概而论!个人认为测试结束点由以下几个条件决定: 1.基于“测试阶段”的原则:

每个软件的测试一般都要经过单元测试、集成测试、系统测试这几个阶段,我们可以分别对单元测试、集成测试和系统测试制定详细的测试结束点。每个测试阶段符合结束标准后,再进行后面一个阶段的测试。举个例子来说:单元测试,我们要求测试结束点必须满足“核心代码100%经过Code Review”、“功能覆盖率达到100%”、“代码行覆盖率不低于80%”、“不存在A、B类缺陷”、“所有发现缺陷至少60%都纳入缺陷追踪系统且各级缺陷修复率达到标准”等等标准。集成测试和系统测试的结束点都制定相关的结束标准,当然也是如此。 2.基于“测试用例”的原则: 测试设计人员设计测试用例,并请项目组成员参与评审,测试用例一旦评审通过,后面测试时,就可以作为测试结束的一个参考标准。比如说在测试过程中,如果发现测试用例通过率太低,可以拒绝继续测试,待开发人员修复后再继续。在功能测试用例通过率达到100%,非功能性测试用例达到95%以上,允许正常结束测试。但是使用该原则作为测试结束点时,把握好测试用例的质量,非常关键。 3.基于“缺陷收敛趋势”的原则: 软件测试的生命周期中随着测试时间的推移,测试发现的缺陷图线,首先成逐渐上升趋 势,然后测试到一定阶段,缺陷又成下降趋势,直到发现的缺陷几乎为零或者很难发现缺陷为止。我们可以通过缺陷的趋势图线的走向,来定测试是否可以结束,这也是一个判定标准。 4.基于“缺陷修复率”的原则: 软件缺陷在测试生命周期中我们分成几个严重等级,它们分别是:严重错误、主要错误、次要错误、一般错误、较小错误和测试建议6种。那我们在确定测试结束点时,严重错误和主要错误的缺陷修复率必须达到100%,不允许存在功能性的错误;次要错误和一般错误的缺陷修复率必须达到85%以上,允许存在少量功能缺陷,后面版本解决;对于较小错误的缺陷修复率最好达到60%~70%以上。对于测试建议的问题,可以暂时不用修改。 5.基于“验收测试”的原则: 很多公司都是做项目软件,如果这种要确定测试结束点,最好测试到一定阶段,达到或接近测试部门指定的标准后,就递交用户做验收测试。如果通过用户的测试验收,就可以立即终止测试部门的测试;如果客户验收测试时,发现了部分缺陷,就可以针对性的修改缺陷后,验证通过后递交客户,相应测试也可以结束。

软件测试与保障知识点及题型

第一章软件测试概述 1.软件危机表现形式: (1)软件开发费用和进度失控。 (2)软件系统实现的功能与实际需求不符。 (3)软件的可靠性差。 (4)软件难以维护。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。(7)软件生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。2.软件危机的原因:一方面是与软件本身的特点有关,另一方面是与软件开发和维护的方法不正确。 3.软件生存期:6个步骤:计划,需求分析(软件定义阶段),设计,程序编写,测试(软件开发阶段),运行和维护(软件维护阶段)。 4.软件测试的目的:为了发现尽可能多的软件缺陷,并期望通过改错来清除缺陷。 5.软件质量(软件质量特性)是软件一些特性的组合,它仅依赖软件本身。 6.软件质量模型:McCall模型 Boehm模型 ISO/IEC 9126三层质量模型(质量特性:功能性、可靠性、可用性、效率、可移植性、可维护性): 内部质量特性:可维护性、灵活性、可移植性、可读性、可测试性、可理解性 外部质量特性:正确性、可用性、效率、可靠性、完整性、适用性、精确性、坚固性 使用质量:有效性、生产率、安全性、满意程度 共同特点是把软件质量特性定义成分层模型。 7.软件测试以检验是否满足需求为目标:(1)软件是否满足规定的需求; (2)软件是否有差别 测试是为了证明程序有错,而不是证明程序无错。

一个好的测试用例在于它能发现至今未发现的错误。 一个成功的测试是发现了至今未发现的错误。 8.软件测试原则:(1)所有的测试都应追溯到用户需求; (2)应尽早的和不断地进行软件测试; (3)在有限的时间和资源下进行完全测试并找出软件所有的错误和缺陷是不可能的,软件测试不能无限进行下去,应适时终止; (4)测试只能证明软件存在错误,而不能证明软件没有错

软件测试详细标准

软件测试标准 前言 前一版的《软件测试标准》,在测试工作中发挥了很好的指导作用。本次修改在原标准基础上,提出了新的测试理念、工作方法、组织方式,使之更贴近实际工作,真正起到纲领的作用。 一、软件测试 1、软件测试的目的 软件测试是指为了度量和提高被测试对象的质量、对测试对象进行工程设计、使用和维护的与软件开发过程并发的生命周期过程。软件测试的目的为:验证软件产品的实现状态以及实现质量。 2、软件测试相关概念 2.1白盒测试 指基于程序结构的测试,测试目标是检查程序内部逻辑结构和逻辑路径,是代码级的测试。 2.2黑盒测试 基于程序功能的测试,根据输入输出的关系推断程序功能的正确性。 2.3测试用例 测试方案,包括数据输入和相应的期望输出。依据测试用例来执行具体操作。 2.4预防性测试 其原理为:只要测试在生命周期中进行得足够早,就能够提高待测软件的质量。 2.5测试风险分析 其目的为:确定测试对象、测试的优先级、测试的深度。 2.6软件测试模型 公司目前采用V模型,实现测试与软件开发的同步进行。

2.7等价类划分 将测试对象按某种约定划分为有限个组成部分,提高测试的有效性。 2.8边界值分析 分析测试对象的所有边界值及边界附近的临界值。 二、测试工作流程 需求分析审核需求分析,编写验收测试部分用例 实地调研重点收集客户实际业务资料、操作习惯,并与需求分析作出对比 概要设计审核概要设计,从用户角度提出问题 编写集成测试用例 详细设计 审核详细设计报告,与需求分析、概要设计进行比对编写单元测试用例编写用户手册总体框架单元测试阶段提出测试计划 审核测试用例 执行测试 测试总结 集成测试阶段验收测试阶段 补充测试用例资料归档 修改测试 审核修改计划程序员提供修改清单编写测试用例执行测试 测试总结 复测测试报告复测测试用例复测 三、开发—测试流程

软件测试过程的度量

软件测试过程的度量 1)测试度量的作用 A:为制定测试计划时提供依据 需要多长时间?需要什么物质条件?需要多少人,什么素质的人?在规定的时间内能完成到什么程度? 哪些模块及功能需要重点关注?测试工作量占整个项目的比例?测试结束后我们能达到什么样的目标?等等 ( 这些数据是我们在项目启动过程中,制定测试计划,尤其在规划资源的过程中,一些必要的参考值。不同项目可能会有其特殊性,但从总体上看,他们还是有一些规律可寻的,过去的经验数据可以作为一个大概估算,如果项目经验丰富,那么可以从历史数据中找出和新项目类似的情况,以能更为准确的完成计划。) B:提高测试流程可控性 提高测试效率和质量 提高测试人员的成就感 2)在测试哪个过程做度量 (产品早期的市场评估、测试策略分析、可测试性需求分析、测试工具分析、用例设计阶段、执行阶段和FOA 阶段) 我们需要在测试的几个关键阶段做度量,它们分别是:用例设计阶段、执行阶段和FOA 阶段。测试用例设计阶段包括测试方案的最终确定、测试工具的设计、测试用例编写等,测试执行阶段很明显,即我们测试的各个过程,如集成测试、系统测试、性能测试、回归测试等,也包括开发人员完成的单元测试的度量工作。FOA 阶段是检验测试质量的第一步,通过FOA 我们可以获得很多为产品质量做贡献的度量,这也是体现测试价值的度量。看起来几乎包括了测试过程的全部。其实这里包括的只是测试的具体工作阶段。 3)测试度量的内容 两种度量类型: A:项目度量:规模、测试工作量、测试进度、测试生产率 B:质量度量:缺陷率(阶段)、缺陷排除率、可靠性等 四个基本度量项:规模、工作量、进度、缺陷 4) 测试用例设计阶段的度量 A:规模:测试方案数量、测试用例数量、测试工具设计数量、测试用例/人月 B:工作量:文档的草稿编写工作量、评审前阅读工作量、评审工作量、修改工作量 C:进度:每件具体工作的计划开始结束时间、实际开始结束时间、计划工时数、实际工时数、计划完成率 D:缺陷:评审过程中出现的错误数量、缺陷数量,级别 5)测试执行阶段的度量: ? 测试用例执行率? 测试用例通过率 ? 测试用例问题发现率? BUG数量 ? BUG级别统计? BUG分布统计(模块) ? BUG分布统计(阶段)? BUG密度 ? BUG关闭率? 人均BUG发现效率 ? 测试用例执行工作量项目? 回归测试执行工作量

软件测试与工具考试C卷答案

湖南科技职业学院 2007 年 下 学期考试试卷 科目 软件测试与工具 卷号 C 卷 使用班级 IIIT3061-IIIT3068 一、 选择题(每题2分,共40分) 1. 测试通过/失败的标准应该在哪一个测试文档中描述: ( ) A .测试计划文档 B .测试方案文档 C .测试规程文档 D .测试报告文档 2. 在所有的黑盒测试方法中最为严格、最具有逻辑性的测试方法是: ( ) A .等价类划分法 B .边界值分析法 C .因果图法 D .决策表法 3. 关于软件质量的描述,正确的是: ( ) A .软件质量是指软件满足规定用户需求的能力 B .软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性 C .软件质量保证过程就是软件测试过程 D .以上描述都不对 4. 软件缺陷在哪个阶段发现修复代价最大: ( ) A .设计 B .编码 C .测试 D .发布 5. 以下哪一个不是测试用例: ( ) A .测试输出 B .测试输入 C .执行条件 D .预期结果 6. 以下哪一个不属于软件测试对象: ( ) A .需求规格说明; B .源程序; C .测试报告; D .概要设计规格说明。 7. 以下哪一个不属于软件测试的关键问题: ( )

A.测试由谁来执行 B.测试什么 C.什么时候进行测试 D.测试结果是什么 8.什么时候不可以终止软件测试:( ) A.测试超过了预定时间 B.执行了所有的测试用例,但并没有发现故障 C.达到了预期的目标 D.客户要求 9.下列哪项可以作为软件测试结束的标志。( ) A.使用了特定的测试用例 B.错误强度曲线下降到预定的水平 C.查出了预定数目的错误 D.按照测试计划中所规定的时间进行了测试 10.基于软件内部设计和程序实现的测试方式为:( ) A.动态测试 B.白盒测试 C.静态测试 D.黑盒测试 11.标识和定义组织过程并确定过程的执行程序,这一过程属于质量保证体系的哪一部份: ( ) A.组织结构 B.程序 C.过程 D.资源 12.通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、 持续性地对过程进行改进,属于CMM分级结构的哪一级:( ) A.优化级 B.已管理级 C.已定义级 D.可重复级 13.主要针对编码过程中可能存在的各种错误的测试阶段属于V模型的:( ) A.集成测试 B.单元测试 C.系统测试 D.验收测试 14.V模型中哪一个阶段需要用户执行:( ) A.集成测试 B.单元测试 C.系统测试

软件工程--习题及答案---第九章

一、判断题 1、(×)测试是为了验证该软件以正确地实现了用户的需求。 2、(√)发现错误多的程序模块,残留在模块中的错误也多。 3、(×)白盒测试法是根据程序的功能来设计测试用例的。 4、(×)黑盒法是根据程序的内部逻辑来设计测试用例的。 5、(√)确定测试计划是在需求分析阶段制定的。 6、(√)集成测试计划是在概要设计阶段制定的。 7、(√)单元测试是在编码阶段完成的。 8、(√)集成测试工作最好由不属于该软件开发组的软件设计人员承担。 9、(√)为了提高软件的测试效率,测试工作需要有测试工具的支持。 10、(×)在做程序的单元测试时,桩模块比驱动模块容易编写。 二、选择题 1、测试用例是专门为了发现软件错误而设计的一组或多组数据,它由(C)组成。 A、测试输入数据 B、预期的测试输出数据 C、测试输入与预期的输出数据 D、按照测试用例设计方法设计出的数据 2、测试和调试最大的不同在于(A)。 A、操作者的心理状态不同 B、它们的行为取向不同 C、使用的工具不同 D、运用的方法不同 3、一个成功的测试是(B)。 A、发现错误 B、发现至今尚未发现的错误 C、没有发现错误 D、证明发现不了错误 4、白盒法和黑盒法最大的不同在于(A)。 A、测试用例设计方法不同 B、测试的任务不同 C、应用的测试阶段不同 D、基于的知识集不同

5、单元测试阶段主要涉及(D)的文档。 A、需求设计 B、编码和详细设计 C、详细设计 D、概要设计 6、检查软件产品是否符合需求定义的过程称为(A)。 A、确认测试 B、集成测试 C、验证测试 D、验收测试 7、软件调试的目的是(B)。 A、发现错误 B、改正错误 C、改善软件的性能 D、挖掘软件的潜能 8、进行软件测试的目的是(A)。 A、尽可能多地找出软件中的错误 B、缩短软件的开发时间 C、减少软件的维护成本 D、证明程序没有缺陷 9、选择一个适当的测试用例,用于测试下面的程序,能达到判定覆盖的是(C)。 A、B、 C、 D、

软件测试与工具考试A卷

湖南科技职业学院 年 学期考试试卷 科目 软件测试与工具 卷号 使用班级 出卷人 审卷人 考试形式 闭卷90分钟 题号 一 二 三 四 五 六 七 八 九 十 总分 计分 一、选择题(每题2分,共40分) 1.V 模型中哪一个阶段不可以采用黑盒测试方法: ( C ) A .确认测试 B .系统测试 C .单元测试 D .验收测试 2.黑盒测试是 的测试 ( A ) A. 基于需求 B. 基于代码 C. 基于设计 D. 基于性能 3.V 模型指出, 对系统设计进行验证: ( D ) A. 单元测试 B. 集成测试 C. 功能测试 D. 系统测试 4.以下哪种测试与其余三种测试在分类上不同: ( C ) A. 性能测试 B. 强度测试 C. 回归测试 D. 功能测试 5、不属于集成测试步骤的是: ( D ) A 、 制定集成计划 B 、 执行集成测试 C 、 记录集成测试结果 D 、 回归测试 6.以下哪一个不属于软件测试的关键问题: ( B ) A .测试由谁来执行 B .测试什么 C .什么时候进行测试 D .测试结果是什么 7下列哪项不属于自动化测试中的脚本技术 ( B ) A 结构化脚本 班级 学号 ____________ 姓名_________________________ 装 订 线

B 非共享脚本 C 关键字驱动脚本 D 预处理脚本 8.在所有的黑盒测试方法中最为严格、最具有逻辑性的测试方法是:( D ) A.等价类划分法 B.边界值分析法 C.因果图法 D.决策表法 9.以下哪一个不属于软件缺陷:( B ) A.软件功能超出了产品说明书中指明的范围; B.软件出现了产品说明书中已指明因外部故障可以出现的错误; C.软件未达到产品说明书中虽未指出但应当达到的目标; D.最终用户认为该软件使用效果不良。 10.测试通过/失败的标准应该在哪一个测试文档中描述:( D ) A.测试计划文档 B.测试方案文档 C.测试规程文档 D.测试报告文档 11.以下哪些属于白盒测试工具:( A ) A.NUnit B.LoadRunner C.W AS D.Test Manager 12.以下哪些不属于软件缺陷产生的原因:( D ) A.需求记录错误; B.数据输入有误; C.需求解释有错误; D.环境配置错误; 13.通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续性地对过程进行改进,属于CMM分级结构的哪一级:( A ) A.优化级 B.已管理级 C.已定义级 D.可重复级 14.软件缺陷在哪个阶段发现修复代价最大:( D ) A.设计 B.编码 C.测试 D.发布 15.基于软件内部设计和程序实现的测试方式为:( B ) A.动态测试 B.白盒测试 C.静态测试

(完整word版)软件测试复习题

一、名词解释题 ①软件生命周期:软件从产生到报废的过程, 1.问题定义及规划2.需求分析3.软件设计4.程序编码5.软件测试6.软件维护 ②软件测试:使用人工或者自动手段来运行或测试某个系统的过程 ③CMM:能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述 ④软件质量:软件与明确的和隐含的定义的需求相一致的程度 ⑤等价类划分:分步骤地把无限的测试用例减的很少,但过程同样等效 ⑥V&V:Verification和Validation,验证与确认 ⑦灰盒测试:边看代码、边利用代码的信息帮助测试的一种测试方法 ⑧回归测试:是在软件维护阶段,对软件进行修改之后进行的测试 ⑨驱动模块(Drive):用来模拟被测试模块的上一级模块,相当于被测模块的主程序 ⑩QA:(软件)质量保证,检查和评价当前软件开发的过程,找出改进过程的方法, 以达到防止软件缺陷的出现的目标 11需求:产品为向涉众提供价值而必须具备的特性 12特别测试:是一种没有实际计划下执行的测试 13集成测试:把多模块按照一定的集成方法和策略,逐步组装成子系统,进而组装成整个系统的测试 14黑盒测试:软件测试人员只需知道软件运行的结果而无需知道软件的内部是如何运行的。又称功能行测试或行为测试 15回归测试:回归测试是在软件维护阶段,对软件进行修改之后进行的测试 16评审:对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。 17软件缺陷:计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。 18SQA:软件质量保证,建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。 19单元测试:对软件中的最小可测试单元进行检查和验证。 二、判断题 (√)1、在千年虫例子中,Dave有错吗?有错 (√)2、在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。? (×)3、如果匆忙开发产品,就可以跳过模块测试而直接进行集成测试。 (√)4、测试错误提示信息属于文档测试范围。 (×)5、软件测试等于程序测试。 (√)11、所有软件都有一个用户界面,因此必须测试易用性。 (√)12、软件测试员可以根据产品说明书进行白盒测试。 (×)13、在进行压迫测试的同时进行重负测试是不合情理的。 (×)14、公司或者一开发小组用来称呼软件问题的术语很重要。 (×)21、好的测试员坚持不懈地追求完美。 (×)22、测试小组负责质量。 (×)23、错误信息提示的测试属于失效性测试。 (√)24、兼容性是一种产品特性,可以有不同程度的符合标准。 (√)25、并非所有软件缺陷都要修复。 (√)26、尚未发现或未观察到的软件缺陷只能说是潜在缺陷。

管理系统中计算机应用第09章:系统运行管理与维护

第九章信息系统的建设规划 一、知识架构 二、要点扫描 考核知识点与考核要求 (一)信息系统的运行管理 1.识记:(1)系统运行管理(2)系统运行管理的主要任务(3)信息中心。 2.领会:(1)系统的运行管理机构(2)信息中心的组成和职责 (二)信息系统的评价 1.识记:(1)功能评价(2)性能评价(3)经济效果评价(4)安装后评价(5)系统性能评价 2.领会:(1)系统评价的目的(2)系统评价的主要指标(3)经济效果评价的基本原则 (三)系统可靠性和安全性 1.识记:(1)系统可靠性(2)冗余技术和容错技术(3)负荷分布技术(4)信息系统的安全性(5)主要的安全管理措施(6)网络安全 2.领会:(1)系统安全目标(2)影响系统安全性的因素(3)安全管理的原则(4)用户的安全管理(5)数据加密和信息隐藏 3.简单应用:分析针对数据库系统的风险及防范措施 4.综合应用:小型案例分析 (四)系统维护 1.识记:(1)系统维护的理由(2)系统维护的主要类型(3)软件维护的工作流程(4)系统维护的工作流程(5)外包的效益 2.领会:(1)应用软件的维护内容(2)系统维护外包的利弊

(五)信息系统的管理制度与审计 1.识记:(1)CIO的职责(2)运行管理制度(3)服务管理制度(4)信息系统审计的概念 2.领会:(1)建立系统运行和服务管理制度的意义(2)主要的运行管理制度(3)主要的服务管理制度(4)信息系统审计的方法 三、内容详解 9.1 【识记】信息系统的运行管理P292 9.1.1系统运行管理的主要任务 系统运行管理的目标【识记】:使信息系统能够根据企业的需要,提供持续可靠的业务支持和管理决策服务。 【识记】管理任务主要有以下四个方面: 1.建立运行管理机构(谁管理维护) 企业中信息系统的运行维护需要专门的管理机构,负责对企业的信息系统和信息资源进行规划协调、服务支持和管理控制,它可以是企业内部的机构,也可以是接受企业委托的外部机构。企业内部的相应机构在本书中称为信息中心。企业信息中心的运营管理和服务方式有集中式和分散式两种。 (1) 集中式是指将所有信息资源的规划、配置、协调、控制和管理权全部集中于统一的信息中心,企业任何一个部门的信息资源需求都由信息中心负责提供。 优点是:统一的、集中的、专业化的资源管理和控制,有利于企业全部信息资源的协调和平衡;系统具有整体性,有统一的信息资源标准和操作规范,有利于实现数据的完整性和安全性控制。 (2) 分散式的极端形式是将信息资源分别置于企业各部门的管理和控制之下,信息系统开发活动、开发人员、数据存储都采取分散的形式。 优点是:能满足各部门内部的信息需求,各部门对信息资源的控制,使用和维护比较方便。 (3) 相互结合 2. 制定运行管理制度(怎么管理维护) 系统操作和使用制度是最基本的制度之一。 3. 系统日常运行服务及管理(管理维护什么) 运行管理的基本内容包括: (1)数据收集与维护 (2)例行信息处理 (3)系统运行与维护 (4)系统的安全管理 对系统运行情况进行规范、详细和完备的记录,是运行管理的一项常规工作,记录内容主要包括:①工作的数量信息;②工作的效率信息;③系统信息服务的质量信息;④系统的维护修改情况;⑤系统的故障情况。 4. 系统评价及维护(管理维护怎样) 系统评价及维护是系统可靠持续服务的保证。 9.1.2 【领会】系统运行管理机构P295 1. 【识记】信息中心P295 信息中心是企业中支持信息系统运行管理、承担信息化工具支持服务的职能机构。

我与软件测试

我与软件测试 软件测试: 软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 所有测试用例是一张最全的大网,它包括了保证软件质量所必须进行检查的所有内容。这些内容必须借最有效的方法实现:一部分由单元测试、一部分用接口测试、一部分纳入UI自动化测试(自动化用例要分fast级别和all级别)、一部分用代码评审、一部分用性能测试来保证,前面这些都无法实现的用手工测试,尽量让手工测试越少越好。 所有这些分层用例必须都做到持续地集成,持续的缺陷分析以完善用例,各层用例做到互通互补,这是一个大的工程。要做到这些至少有几点要求: 1、团队相对稳定:开发与测试人员才能对所做的业务进行持续的关注与改进; 2、开发人员必须有足够的软件质量意识:有积极性进行单元测试的编写与维护(基于第1点要求,软件质量的好坏会直接关系到开发人员自己日后的维护和再开发成本); 3、开发与测试人员必须进行良好的沟通:除了共担软件质量的风险,还需要共享用例,分层用例覆盖上也需要更多沟通以确定哪些是

单元测试的职责,哪些是代码评审的关注点; 4、测试人员必须具备扎实的技术功底:不仅要会写自动化脚本,会进行性能测试和接口测试,还必须具备写出优秀自动化脚本和深入分析应用代码的能力,甚至测试框架开发的能力; 5、必须要有各方面专长的人并形成人员梯队:如果所有都是牛人,没人做手工测试,如果没开成弱队,牛人一走,工作就没法展开; 6、最后但不是最不重要的,开发方面必须对系统有长远的考量:质量体系建立是一个很庞大的工程,特别是自动化代码,两三年就重构一次的系统,谁也伤不起。 因此软件测试的最根本基础是:用例分析与设计。 软件测试人员的核心竞争力是:扎实的用例分析与设计能力,各种软件测试技术的深入理解与综合运用 我对软件测试的看法: 首先我不赞同下面三种说法: 1.测试人员不需要懂得如何写文档 2.测试工具比手工测试重要 3.测试人员不需要懂业务 在我看来:软件测试在整个软件开发过程中占有很重要的地位这点毋庸置疑。但是测试并不单纯是测试代码,而应包括在开发过程中生成的文档。既然要测试开发过程中生成的文档,那么测试人员自己写的文档是否也要经得起推敲呢。但是看看有的测试人员提交的测试计

软件测试怎么测试 谈软件测试常用方法和测试流程

摘要软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件开发过程的重要组成部分,是软件质量保证的关键步骤。软件测试的方法可分为人工测试和机器测试,人工测试包括个人复查、走查和会审,机器测试可分为白盒测试和黑盒测试。软件测试虽然是一个独立的阶段,但在实际工作中,测试的流程主要包含单元测试、组装测试、确认测试、系统测试四个阶段。 关键词软件测试;白盒;黑盒;单元测试;组装测试;确认测试;系统测试 一、软件测试的常用方法 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件开发过程的重要组成部分,是软件质量保证的关键步骤。采用面向对象技术进行软件开发产生了两个结果一是开发出功能更强大更便于用户使用的软件产品,二是生成规模庞大的程序代码和文档,这也必然导致更大规模的软件测试和维护工作。因此,规范化的软件测试势在必行。规范化不只是测试的需求(有效代码量、结构/逻辑的复杂性、高性能/高精确性/高可靠性需求)和消耗资源(人力/时间/测试频度)规模化,更要求在面对规模庞大的软件测试需求,在合理的资源消耗基础上,实施有效的测试。 下图描述的是常用的一些测试方法

1、人工测试的方法 (1)个人复查 个人复查是指程序员自行设计测试用例,对源代码、详细设计进行仔细检查,并记录错误、不足之处等。个人复查主要包括检查变量的正确性、检查标号的正确性、检查子程序、宏、函数、常量检查、标准检查、风格检查、比较控制流、选择、激活路径、对照详细说明书,阅读源代码和补充文档等方面的测试内容。 (2)走查 走查是指测试人员先阅读相应的文档和源代码,然后人工将测试数据输入被测试程序,并在纸上跟踪监视程序的执行情况,人工沿着程序的逻辑走查运行一遍,跟踪走查运行的进程来发现程序的错误。走查的具体测试内容包括模块特性、模块接口、模块的对外输入或输出、局部数据结构、数据计算错误、控制流错误、处理出错和边界测试等方面。 (3)会审 会审是指测试人员在会审前仔细阅读软件的有关资料,根据错误类型清单(根据以往的经验、对源程序的估计等,并在以后测试中给以丰富补充)填写检测表,提出根据错误类型要提出的问题。会审时,由程序设计人员讲解程序的设计方法,

《软件测试与度量》试卷(2011 ~ 2012 学年)

东华大学2011 ~ 2012 学年第二学期期终试题踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负。 课程名称软件测试与度量使用专业计算机09级 班级_____________________姓名________________学号__________ ㈠判断题(每题1分,共15分。正确的√,错误的×) ⒈软件测试的目的是证明程序正确地执行了它应有的功能() ⒉为了测试某个Web站点可以支持多少个并发用户的访问量,应该采用功能测试() ⒊软件测试是保证软件质量的重要环节,它的实施应该是从编码阶段开始() ⒋测试人员可以根据产品说明书对软件产品进行白盒测试() ⒌“并非所有的bug都必须修复”这句话是正确的() ⒍软件测试是保证软件质量的重要手段,我们一定要尽我们的所能做好测试工作() ⒎软件测试可以保证软件质量() ⒏“越是严重的错误越是要先修改”这句话是正确的() ⒐“千年虫是不能被彻底清除的”这种说法是正确的()⒑代码走查是动态测试方法()⒒测试覆盖率常用作测试出口准则之一()⒓在数据流测试技术中,重点是检查数据的使用和流动变化()⒔一段程序中发现的错误越多,就说明程序中还剩余的错误越少()⒕如果发布出去的软件有质量问题,那是软件测试人员的错()⒖Junit是一个单元测试框架,用于系统测试阶段() 1 注意:填写内容不要超出以上格式,第二页的边距和第一页一样

㈡简答题(每题5分,共30分) 1、软件测试的目的是什么? 2、系统测试为什么不能在客户的运行环境上执行? 3、“因为软件测试不能给企业带来收益,所以软件测试不重要,重要的是开发人员。”这句话是否正确?请说明你的理由。 4、在系统测试阶段发现被测试程序在WIN98上运行得很慢,你认为是程序的性能问题吗? 会有哪些原因?怎么判别? 5、为什么需要尽早地进行测试? 6、以下是某测试人员书写的软件错误报告中对实际问题的描述: “当打开两个页面时,移动一个页面再点另外一个页面,就出现系统错误,只能退出系统。”你认为该错误报告对错误问题的描述是否清晰?请简单说明你的判断理由。 2 注意:填写内容不要超出以上格式,第二页的边距和第一页一样

软件测试复习总结

软件测试复习总结 V型模式 用户需求---需求分析与系统---概要设计---详细设计---编码---单元测试---集成测试---系统测试---验收测试 软件测试的流程 1.测试计划 2.测试设计 3.测试准备和测试环境的建立 4.执行测试 5.测试评估 6.测试总结 什么是软件缺陷和软件故障? 软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。 软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态,此时若无适当措施(容错)加以及时处理,便产生软件失效。 软件测试的定义和目的 软件测试就是为了发现错误而执行程序的过程。软件测试的目的就是为了发现尽可能多的缺陷,并期望通过改错来把缺陷统统消灭,以期提高软件的质量。 测试计划和模板 1.V模型:反映出了测试活动与分析设计活动的关系。2.W模型:两个V字型模型组成,分别代表测试与开发过程。3.H模型:将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。4.其他模型:X模型、前置测试模型等。 软件的黑盒测试 黑盒测试:已知产品的功能设计规格和用户手册,可以进行测试证明每个功能是否实现、每个实现了的功能是否符合要求,以及产品的性能是否满足用户的要求。 软件的黑盒测试意味着测试要在软件的接口处进行,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书和用户手册,检查程序的功能是否符合它的功能说明,以及性能是否满足用户的要求。因此黑盒测试又叫功能测试或数据驱动测试。 黑盒测试主要是为了发现以下几类错误: 1. 是否有不正确或遗漏的功能? 2. 在接口上,输入是否能正确的接受?能否输出

软件测试与维护(试卷B)答案==

。 ,考试作弊将带来严重后果! 华南理工大学期末考试 《软件测试与维护》试卷B 1. 考前请将密封线内填写清楚; 2. 前2题答案请直接答在试卷上,第3题答案请答在答题纸上 3.考试形式:闭卷; 4. 本试卷共 三 大题,满分100分, 考试时间120分钟。 Explain the following concept in your own words.( 25 points/5 points each) W model

2)stub 也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口 3)Acceptance Testing 在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。 4)Testcase 满足特定目的的测试数据、测试代码、测试规程的集合 是发现软件缺陷的最小测试执行单元 有特殊的书写标准和基本原则 5)software maintenance

软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程。4种类型:改正性维护、适应性维护、完善性维护、预防性维护 2Answer the following question briefly in your own words( 41 points) 1、Briefly describe JUnit framework through drawing its structure graph? (8 points) s 2、Briefly describe the primary tasks of Unit Testing?(6 points) 1、模块接口测试 2、模块局部数据结构测试 3、模块边界条件测试 4、模块独立执行通路测试 5、模块的各条错误处理通路测试

软件测试缺陷度量分析

软件测试缺陷度量分析 对缺陷的度量有助于测试过程监控,例如:缺陷密度分析,发现和修复的缺陷数目等。另外,缺陷度量应包括追踪过程控制信息的过程改进活动所需的缺陷信息,并引入缺陷来源分析、缺陷趋势分析等作为风险减轻策略的输入。本文介绍了几种常见的缺陷度量指标,在实际项目中,缺陷度量指标通常要和其他指标共同使用以达到测度的目的。 1、缺陷发现进度 1)度量目标 缺陷发现进度度量(累计缺陷)可以显示每个星期累计发现缺陷的数量,帮助评估测试的状态、测试进度和软件系统的质量。 2)度量定义 缺陷发现进度度量(累计缺陷)的X轴为星期,以yww形式表示,其中y表示年份的后两位,ww表示星期,例如:815指的是2008年的第15周。Y轴表示在测试阶段发现的缺陷数目,如图1所示。

图1 缺陷发现进度(累计缺陷) 3)度量分析 对缺陷发现进度进行度量分析的时候,可以从以下几个方面着手评估测试状态、测试进展和测试质量,以及后续测试资源的分配: 结合缺陷修复进度度量数据,分析发现缺陷和修复缺陷数目之间的差异,从整个项目的层面帮助项目团队进行合理的资源分配。 分析缺陷发现的高峰时间,即缺陷发现进度曲线开始趋于平缓的时间,假如缺陷发现进度曲线平缓的时间点远离计划测试结束的时间点,需要分析其中的原因。 和其他度量结合,例如:测试用例执行进度,分析缺陷发现进度是否符合测试质量、测试进度要求,并分析其中的原因。 2、缺陷修复进度 1)度量目标 缺陷修复进度度量(累计缺陷)可以显示每个星期累计修复缺陷的数量,帮助评估开发人员修复缺陷的进度、评估后续的测试资源分配和软件系统的质量。 2)度量定义 缺陷修复进度(累计缺陷)的X轴为时间,以yww形式表示,其中y表示年份的后两位,ww表示星期,例如:815指的是2008年的第15周。Y轴表示在测试阶段发现的缺陷数目,如图2所示。 3)度量分析

相关文档
最新文档