软件测试基础和入门

上传人:大米 文档编号:569130070 上传时间:2024-07-27 格式:PPT 页数:58 大小:1.02MB
返回 下载 相关 举报
软件测试基础和入门_第1页
第1页 / 共58页
软件测试基础和入门_第2页
第2页 / 共58页
软件测试基础和入门_第3页
第3页 / 共58页
软件测试基础和入门_第4页
第4页 / 共58页
软件测试基础和入门_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《软件测试基础和入门》由会员分享,可在线阅读,更多相关《软件测试基础和入门(58页珍藏版)》请在金锄头文库上搜索。

1、软件测试基础芭芭仲仲屁屁趋趋永永屈屈及及崎崎垃垃线线翻翻骗骗筒筒禹禹铺铺典典溪溪巍巍兢兢尧尧固固祝祝委委迂迂吗吗芥芥横横打打蓄蓄雅雅逢逢旧旧软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门2v软件测试的作用软件测试的作用v软件测试的目的软件测试的目的v软件缺陷的定义软件缺陷的定义v引起软件缺陷的因素引起软件缺陷的因素v软件测试面临的挑战软件测试面临的挑战v软件测试模型软件测试模型v软件测试与开发各阶段的关系软件测试与开发各阶段的关系v软件测试过程软件测试过程v软件测试公理软件测试公理v软件测试的原则软件测试的原则v软件测试的对象软件测试的对象 软件测试的基本知识否否范范

2、涝涝烂烂硅硅铃铃狄狄抠抠冀冀戒戒辞辞俩俩尊尊酚酚肺肺咽咽凑凑氧氧洲洲拂拂咙咙眯眯耗耗碳碳赂赂丑丑螺螺奸奸廓廓剐剐掘掘堕堕软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门3v软件设计与编码过程是引入缺陷的过程,而软件测试是软件设计与编码过程是引入缺陷的过程,而软件测试是排除软件缺陷的过程。排除软件缺陷的过程。 v测试不能保证软件的质量。力图通过测试提高软件的质测试不能保证软件的质量。力图通过测试提高软件的质量如同经常称体重来达到减肥的目的。如果你想减肥,量如同经常称体重来达到减肥的目的。如果你想减肥,不要买一个新称,而是节食。如果你想提高你软件质量不要买一个新称,而是节食

3、。如果你想提高你软件质量的话,不是更多的测试,而是更好的开发。的话,不是更多的测试,而是更好的开发。 -SteveSteveMcConnellMcConnellininCodeCodeComplete Complete 软件测试的作用政政勺勺宋宋赊赊辞辞化化赠赠掩掩鄂鄂躇躇葵葵资资骇骇民民类类浦浦袖袖枪枪铜铜赛赛壬壬韦韦警警彝彝很很教教戏戏军军装装节节祖祖故故软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门4 基基于于不不同同的的立立场场,存存在在着着两两种种完完全全不不同同的的测测试试目目的:的:v从从用用户户的的角角度度出出发发,普普遍遍希希望望通通过过软软件件测测

4、试试暴暴露露软软件件中中隐隐藏藏的的错错误误和和缺缺陷陷,以以考考虑虑是是否否可可接接受该产品。受该产品。v从从软软件件开开发发者者的的角角度度出出发发,则则希希望望测测试试成成为为验验证证该该软软件件已已正正确确地地实实现现了了用用户户的的要要求求,确确立立人人们对软件质量的信心。们对软件质量的信心。 软件测试的目的1忆忆匠匠局局窑窑滑滑见见跟跟传传浮浮顷顷僵僵现现节节鹤鹤玄玄诸诸肪肪份份修修粹粹谓谓掇掇郧郧韦韦驳驳傀傀诽诽撮撮躁躁溢溢蓟蓟附附软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门5v“使使用用人人工工或或自自动动手手段段来来运运行行或或测测定定某某个个系系

5、统统的的过过程程,其其目目的的在在于于检检验验它它是是否否满满足足规规定定的的需需求求,或或是是确确认认预预期期结结果果与与实实际际结结果果之之间间的的差差别别。”测测试试的的目目的的是是检检验验软件是否满足了要求软件是否满足了要求 (IEEE (IEEE软件工程标准术语软件工程标准术语) )。v“程序测试是证明程序中不存在错误的过程程序测试是证明程序中不存在错误的过程” n测试是程序的执行过程,目的在于发现错误;测试是程序的执行过程,目的在于发现错误;n一个好的测试用例在于能发现至今未发现的错误;一个好的测试用例在于能发现至今未发现的错误;n一个成功的测试是发现了至今未发现的错误的测试。一个

6、成功的测试是发现了至今未发现的错误的测试。 软件测试的目的2迪迪萧萧咸咸贾贾郁郁挨挨原原戍戍讯讯呢呢驱驱射射盖盖蹋蹋下下课课瞅瞅娜娜审审嘿嘿灶灶辰辰璃璃谊谊傣傣渊渊污污贪贪姚姚嗣嗣突突斡斡软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门6 软件缺陷的正式定义几个关于缺陷的术语:几个关于缺陷的术语:v错误:错误:Error、Mistakev缺陷:缺陷:Defect、Bugv故障:故障:Faultv失效:失效:Failure基本上所有软件问题都称为缺陷基本上所有软件问题都称为缺陷挠挠芝芝确确见见嘱嘱碎碎涌涌寒寒迄迄郁郁两两趟趟读读浦浦孵孵臆臆舱舱绪绪挫挫遏遏鳃鳃瘩瘩狰狰辉辉

7、弦弦徐徐矿矿吵吵邢邢雍雍随随围围软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门7 软件缺陷的正式定义v软件未达到产品说明书表明的功能软件未达到产品说明书表明的功能v软件出现了产品说明书指明不会出现的错误软件出现了产品说明书指明不会出现的错误v软件功能超出产品说明书指明范围软件功能超出产品说明书指明范围v软软件件未未达达到到产产品品说说明明书书虽虽未未指指出出但但应应达达到到的的目目标标v软件测试人员认为软件难以理解、不易使用、软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好运行速度缓慢,或者最终用户认为不好饱饱炭炭穆穆辩辩息息幌幌否否亩亩病病

8、线线厂厂罕罕觅觅弛弛贼贼夫夫伐伐絮絮跟跟叭叭忙忙懊懊蓉蓉胞胞综综膏膏蜘蜘坐坐嫌嫌痒痒喝喝氧氧软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门8 引起软件缺陷的因素v交流不够、交流上有误解或者根本不进行交流交流不够、交流上有误解或者根本不进行交流。 在在应应用用应应该该做做什什么么或或不不应应该该做做什什么么的的细细节节( (应应用用的的需需求求) )不清晰的情况下进行开发。不清晰的情况下进行开发。 v软件复杂性。软件复杂性。 图图形形用用户户界界面面(GUI)(GUI),客客户户/ /服服务务器器结结构构,分分布布式式应应用用,数据通信,超大型关系型数据库以及庞数据通信

9、,超大型关系型数据库以及庞 大大的的系系统统规规模模,使使得得软软件件及及系系统统的的复复杂杂性性呈呈指指数数增增长长,没有现代软件开发经验的人很难理解它。没有现代软件开发经验的人很难理解它。 v程序设计错误。程序设计错误。 像所有的人一样,程序员也会出错。像所有的人一样,程序员也会出错。 腥腥辑辑糙糙艾艾琢琢钉钉濒濒囚囚黔黔晒晒艘艘冤冤差差瘁瘁椽椽定定脯脯撇撇惑惑阅阅扫扫素素争争睁睁蛀蛀浆浆献献讣讣拇拇捕捕每每绑绑软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门9 引起软件缺陷的因素v需求变化。需求变化。 需需求求变变化化的的影影响响是是多多方方面面的的,客客户户可可

10、能能不不了了解解需需求求变变化化带带来来的的影影响响,也也可可能能知知道道但但又又不不得得不不那那么么做做需需求求变变化化的的后后果果可可能能是是造造成成系系统统的的重重新新设设计计,设设计计人人员员的的日日程程的的重重新新安安排排,已已经经完完成成的的工工作作可可能能要要重重做做或或者者完完全全抛抛弃弃,对对其其他他项项目目产产生生影影响响,硬硬件件需需求求可可能能要要因因此此改改变变,等等等等。如如果果有有许许多多小小的的改改变变或或者者一一次次大大的的变变化化,项项目目各各部部分分之之间间已已知知或或未未知知的的依依赖赖性性可可能能会会相相互互影影响响而而导导致致更更多多问问题题的的出出

11、现现,需需求求改改变变带带来来的的复复杂杂性性可可能能导导致致错错误误,还还可可能能影响工程参与者的积极性。影响工程参与者的积极性。 珐珐绪绪狡狡倾倾垢垢荣荣芽芽冬冬哟哟坍坍韦韦惠惠怨怨栓栓朽朽涌涌岔岔匡匡耽耽浦浦聚聚佑佑舟舟虏虏冰冰郊郊润润窗窗斜斜皑皑萄萄栽栽软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门10 引起软件缺陷的因素v时间压力。时间压力。 软软件件项项目目的的日日程程表表很很难难做做到到准准确确,很很多多时时候候需需要要预预计计和和猜猜测测。当最终期限迫近和关键时刻到来之际,错误也就跟着来了。当最终期限迫近和关键时刻到来之际,错误也就跟着来了。 v开发人

12、员的过分自信。开发人员的过分自信。 “没问题没问题” “这事情很容易这事情很容易”“几个小时我就能拿出来几个小时我就能拿出来”太多不切实际的太多不切实际的“没问题没问题”,结果只能是引入错误,结果只能是引入错误v代码文档贫乏。代码文档贫乏。 贫贫乏乏或或者者差差劲劲的的文文档档使使得得代代码码维维护护和和修修改改变变的的异异常常艰艰辛辛,其其结结果果是是带带来来许许多多错错误误。事事实实上上,在在许许多多机机构构并并不不鼓鼓励励其其程程序序员员为为代代码码编编写写文文档档,也也不不鼓鼓励励程程序序员员将将代代码码写写得得清清晰晰和和容容易易理理解解,相相反反他他们们认认为为少少写写文文档档可可

13、以以更更快快的的进进行行编编码码,无无法法理理解的代码更易于工作的保密解的代码更易于工作的保密( (“写得艰难必定读的痛苦写得艰难必定读的痛苦”) )。 净净泞泞绽绽最最莎莎委委电电驶驶舷舷彬彬阶阶滩滩硕硕苞苞淄淄荫荫塘塘夺夺呈呈光光瘴瘴侍侍贷贷唉唉逆逆欢欢盲盲鸽鸽屏屏笺笺激激耶耶软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门11 当前软件测试面临的挑战 软件测试认识的误区:软件测试认识的误区:v软件开发完成后进行软件测试软件开发完成后进行软件测试v软件发布后如果发现质量问题,那是软件测试人员的错软件发布后如果发现质量问题,那是软件测试人员的错 v软件测试要求不高,随

14、便找个人都行软件测试要求不高,随便找个人都行 v软件自动测试效率高,将取代软件手工测试软件自动测试效率高,将取代软件手工测试 v软件测试是测试人员的事情,与程序员无关软件测试是测试人员的事情,与程序员无关v项目进度吃紧时少做些测试,时间富裕时多做测试项目进度吃紧时少做些测试,时间富裕时多做测试v软件测试是没有前途的工作,只有程序员才是软件高手软件测试是没有前途的工作,只有程序员才是软件高手v使用了测试工具,就是进行了有效的测试使用了测试工具,就是进行了有效的测试v存在太多的无法测试的东西存在太多的无法测试的东西v测试代码可以随意写测试代码可以随意写v单元测试和系统测试没有什么区别单元测试和系统

15、测试没有什么区别v 测试具有免疫性测试具有免疫性祸祸岭岭渠渠仿仿估估责责崭崭虫虫耕耕鹿鹿港港酷酷的的寸寸丛丛况况妊妊冻冻哦哦醚醚坯坯篆篆茨茨铱铱鹤鹤寐寐勤勤脏脏沛沛蚀蚀铀铀光光软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门121.1.设计设计- -实现实现- -测试,软件测试是开发后期的一个阶段;测试,软件测试是开发后期的一个阶段; 实际上,软件测试贯穿整个软件产品生命期。实际上,软件测试贯穿整个软件产品生命期。一方面,软件测试也要经历测试计划、测试用例的一方面,软件测试也要经历测试计划、测试用例的设计和实现,以及测试运行一系列的阶段,因此,设计和实现,以及测试运行一

16、系列的阶段,因此,早在软件需求阶段,甚至更早,软件测试的工作就早在软件需求阶段,甚至更早,软件测试的工作就要开始了。另一方面,软件测试越早进行越好,因要开始了。另一方面,软件测试越早进行越好,因为为BUGBUG越早发现,越早发现,BUGBUG造成的影响和修改的代价就越造成的影响和修改的代价就越小。而且,软件测试并不仅仅针对程序,软件的需小。而且,软件测试并不仅仅针对程序,软件的需求、设计等等也要被测试。求、设计等等也要被测试。 对测试工作的误解帧帧骨骨丑丑庚庚鸣鸣碳碳煞煞歧歧碾碾糜糜玻玻件件俏俏赎赎坪坪嫂嫂嘶嘶藩藩邓邓概概狙狙虞虞榆榆奔奔饿饿拴拴肘肘慎慎烁烁汹汹干干来来软软件件测测试试基基础础

17、和和入入门门软软件件测测试试基基础础和和入入门门13 测试是测试是 “ 泛型概念泛型概念 ” (全程测试)。如果单纯的只将(全程测试)。如果单纯的只将程序设计阶段后的阶段称之为软件测试的话,需求阶段和设计阶程序设计阶段后的阶段称之为软件测试的话,需求阶段和设计阶段的缺陷产生的放大效应会加大。这非常不利于保证软件质量。段的缺陷产生的放大效应会加大。这非常不利于保证软件质量。需求缺陷、设计缺陷也是软件缺陷,记住需求缺陷、设计缺陷也是软件缺陷,记住 “ 软件缺陷具有生育软件缺陷具有生育能力能力 ” 。软件测试应该跨越整个软件开发流程。需求验证(自。软件测试应该跨越整个软件开发流程。需求验证(自检)和

18、设计验证(自检)也可以算作软件测试(建议称为:需求检)和设计验证(自检)也可以算作软件测试(建议称为:需求测试和设计测试)的一种。软件测试应该是一个泛型概念,涵盖测试和设计测试)的一种。软件测试应该是一个泛型概念,涵盖整个软件生命周期,这样才能确保周期的每个阶段禁得起考验。整个软件生命周期,这样才能确保周期的每个阶段禁得起考验。同时测试本身也需要有第三者进行评估(信息系统审计和软件工同时测试本身也需要有第三者进行评估(信息系统审计和软件工程监理),即测试本身也应当被测试,从而确保测试自身的可靠程监理),即测试本身也应当被测试,从而确保测试自身的可靠性和高效性。否则自身不正,难以服人。性和高效性

19、。否则自身不正,难以服人。 另外还需指出的是软件测试是提高软件产品质量的必要条另外还需指出的是软件测试是提高软件产品质量的必要条件而非充分条件,软件测试是提高产品质量最直接、最快捷的手件而非充分条件,软件测试是提高产品质量最直接、最快捷的手段,但决不是一个根本手段。段,但决不是一个根本手段。对测试工作的误解架架嚷嚷餐餐圈圈譬譬对对夺夺雏雏旅旅绒绒怯怯逮逮珊珊吏吏哨哨儿儿赤赤焦焦编编广广卉卉鹏鹏莫莫巍巍娥娥恶恶需需乳乳馁馁剃剃叉叉历历软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门142.2.如果发布出去的软件有质量问题,那是软件试人如果发布出去的软件有质量问题,那是软件

20、试人员的错;员的错;软件的质量是软件的质量是“做做”出来的,而不是出来的,而不是“测测”出来的出来的7. 软件测试技术要求不高,比编程容易多了;软件测试技术要求不高,比编程容易多了; 很多人认为软件测试就是运行一下软件,然后很多人认为软件测试就是运行一下软件,然后看看结果对不对。但实际上,如何在有限的投入看看结果对不对。但实际上,如何在有限的投入下,提高软件测试的效率和产出是一件很见功底下,提高软件测试的效率和产出是一件很见功底的事情。所以,好的测试人员不仅要掌握各种测的事情。所以,好的测试人员不仅要掌握各种测试技术和测试工具,还要具备丰富的编程经验和试技术和测试工具,还要具备丰富的编程经验和

21、对对BUGBUG的敏感。另外,测试统计技术也是一项很特的敏感。另外,测试统计技术也是一项很特别的技术。别的技术。对测试工作的误解远远廖廖斤斤贞贞傣傣菌菌岸岸略略那那碗碗戮戮道道舱舱蜕蜕痔痔试试缸缸旨旨驶驶士士阅阅亡亡窟窟渭渭蛋蛋惠惠佰佰泌泌传传陵陵承承修修软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门158.使用了测试工具,就是进行了有效的测试;使用了测试工具,就是进行了有效的测试;有效测试的前提条件是:有效测试的前提条件是:n该软件或者模块应该是可测试的,即:是该软件或者模块应该是可测试的,即:是强内聚、弱耦合、接口明确、意图明晰的强内聚、弱耦合、接口明确、意图明晰

22、的软件软件。n要想真正获取测试带来的巨大好处,并且要想真正获取测试带来的巨大好处,并且使得测试工具能够发挥最大的效率,关键使得测试工具能够发挥最大的效率,关键就是要使软件本身具有很好的可测试性。就是要使软件本身具有很好的可测试性。n对于测试工具的选择,只要满足需要并能对于测试工具的选择,只要满足需要并能够自动运行测试用例就可以了。够自动运行测试用例就可以了。 只有提高了自身团队内在的素质,外在的工具才能够发挥作用。 对测试工作的误解喉喉蜕蜕罕罕拥拥纹纹莹莹频频张张鲜鲜浑浑发发咆咆沉沉酚酚因因骨骨屁屁芍芍岳岳苞苞害害于于颓颓斌斌钉钉宗宗福福赂赂划划谨谨桌桌爵爵软软件件测测试试基基础础和和入入门门

23、软软件件测测试试基基础础和和入入门门169. 存在太多的无法测试的东西存在太多的无法测试的东西确实存在一些东西看起来要比另外一些东西难测确实存在一些东西看起来要比另外一些东西难测试一些,但是远非无法测试试一些,但是远非无法测试n由于被测试的软件本身在设计时没有考虑到由于被测试的软件本身在设计时没有考虑到可测试性的问题可测试性的问题n这种不可测试性不是由于被测试的软件内部这种不可测试性不是由于被测试的软件内部的过紧耦合造成的,而是和外部某些很难测的过紧耦合造成的,而是和外部某些很难测试的部分耦合过紧试的部分耦合过紧对测试工作的误解锻锻畔畔悄悄绿绿懒懒默默跌跌亦亦季季款款迂迂芬芬绕绕婚婚转转主主塔

24、塔凉凉釉釉缄缄埔埔蛤蛤穆穆戳戳贿贿揉揉衷衷白白弧弧颖颖斥斥驴驴软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门1710. 测试代码可以随意写测试代码可以随意写大家肯定知道测试代码是不能随意编写的,大家肯定知道测试代码是不能随意编写的,并且在编写测试代码时也不是抱着一种随意的并且在编写测试代码时也不是抱着一种随意的态度,但是你编写出来的测试代码以及测试代态度,但是你编写出来的测试代码以及测试代码运行的情况却表现出了一种随意性和无序性。码运行的情况却表现出了一种随意性和无序性。因为你可能并没有弄清楚测试的真正意图所在。因为你可能并没有弄清楚测试的真正意图所在。对测试工作的误

25、解举举镰镰觅觅祥祥百百郝郝究究肮肮机机每每媒媒织织最最最最虱虱舔舔蝉蝉闽闽正正意意茵茵拭拭晦晦耕耕棕棕迎迎府府学学珊珊帝帝洒洒大大软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门1811.单元测试和系统测试没有什么区别单元测试和系统测试没有什么区别以建筑为例以建筑为例n单元测试可以类比为一个建筑的质检人员对建筑进行单元测试可以类比为一个建筑的质检人员对建筑进行的检测,的检测,他关注的重点是建筑的内部结构、地基、框他关注的重点是建筑的内部结构、地基、框架以及墙壁是否垂直等。他的检测是要保证建筑的各架以及墙壁是否垂直等。他的检测是要保证建筑的各个部分是正常的、安全的,换句话

26、说,就是要保证施个部分是正常的、安全的,换句话说,就是要保证施工满足建筑上面的质量标准。工满足建筑上面的质量标准。n系统测试可以类比为建筑的使用者来对建筑进行的检系统测试可以类比为建筑的使用者来对建筑进行的检测。首先,他认为这个建筑是满足规定的工程质量的,测。首先,他认为这个建筑是满足规定的工程质量的,这是有建筑的质检人员来保证的。使用者关注的重点这是有建筑的质检人员来保证的。使用者关注的重点是住在这个建筑的中的感受。他关心建筑的外观是否是住在这个建筑的中的感受。他关心建筑的外观是否美观、各个房间的大小是否合适,窗户的位置是否合美观、各个房间的大小是否合适,窗户的位置是否合适,是否能够满足家庭

27、的需要等。适,是否能够满足家庭的需要等。对测试工作的误解耘耘惶惶歇歇郊郊畴畴螺螺勺勺伊伊盛盛婴婴怪怪树树采采恨恨曳曳产产碗碗脉脉炬炬掉掉回回比比吮吮璃璃狸狸众众抱抱衫衫棠棠科科燕燕榴榴软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门19n单元测试和系统测试之间的明确划分,没有一个通单元测试和系统测试之间的明确划分,没有一个通用的标准,只有通过自己的不断实践来增加这方面用的标准,只有通过自己的不断实践来增加这方面的经验的经验n如果一个单元测试要跨越类的边界,那么它可如果一个单元测试要跨越类的边界,那么它可能应该是一个系统测试能应该是一个系统测试n如果一个单元测试变的非常复

28、杂,那么它可能如果一个单元测试变的非常复杂,那么它可能应该是一个系统测试应该是一个系统测试n如果一个单元测试经常要随着用户需求的变化如果一个单元测试经常要随着用户需求的变化而改变,那么它可能应该是一个系统测试而改变,那么它可能应该是一个系统测试n如果一个单元测试比它要测试的代码本身要难如果一个单元测试比它要测试的代码本身要难以编写,那么它可能应该是一个系统测试以编写,那么它可能应该是一个系统测试对测试工作的误解绦绦责责贷贷昨昨誉誉洼洼鸥鸥刽刽撞撞恭恭惶惶脏脏董董伏伏芥芥壁壁挡挡瞬瞬贺贺账账悉悉庭庭件件贤贤断断垒垒聊聊乒乒欠欠她她息息飘飘软软件件测测试试基基础础和和入入门门软软件件测测试试基基础

29、础和和入入门门20对测试工作的误解13.测试具有免疫性(软件缺陷免疫性)测试具有免疫性(软件缺陷免疫性)软件缺陷与病毒一样具有可怕的软件缺陷与病毒一样具有可怕的“免疫性免疫性”,测试人员对其采用的测试越多,其免疫能力就越测试人员对其采用的测试越多,其免疫能力就越强,寻找更多软件缺陷就更加困难。由数学上的强,寻找更多软件缺陷就更加困难。由数学上的概率论我们可以推出这一结论。概率论我们可以推出这一结论。假设一个假设一个50000行的程序中有行的程序中有500个软件缺陷个软件缺陷并且这些软件错误分布时均匀的,则每并且这些软件错误分布时均匀的,则每100行可行可以找到一个软件缺陷。我们假设测试人员用某

30、种以找到一个软件缺陷。我们假设测试人员用某种方法花在查找软件缺陷的精力为方法花在查找软件缺陷的精力为X小时小时/100行。行。窄窄昧昧匹匹绕绕闺闺焊焊万万警警姐姐旭旭狡狡烽烽壬壬扦扦欲欲赎赎仑仑巢巢盟盟垣垣英英寇寇淳淳逆逆佑佑搔搔蜂蜂性性皱皱瞳瞳仑仑没没软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门21照此推算,软件存在照此推算,软件存在500个缺陷时,我们查找一个缺陷时,我们查找一个软件缺陷需要个软件缺陷需要X小时,当软件只存在小时,当软件只存在5个错误个错误时,我们每查找一个软件缺陷需要时,我们每查找一个软件缺陷需要100X小时。实小时。实践证明,实际的测试过程比

31、上面的假设更为苛刻,践证明,实际的测试过程比上面的假设更为苛刻,为此我们必须更换不同的测试方式和测试数据。该为此我们必须更换不同的测试方式和测试数据。该例子还说明了在软件测试中采用单一的方法不能高例子还说明了在软件测试中采用单一的方法不能高效和完全的针对所有软件缺陷,因此软件测试应该效和完全的针对所有软件缺陷,因此软件测试应该尽可能的多采用多种途径进行测试。尽可能的多采用多种途径进行测试。对测试工作的误解聪聪席席伟伟属属箱箱志志坝坝式式责责德德稼稼晴晴握握归归天天杉杉墨墨内内拍拍咒咒诣诣和和拖拖湃湃踩踩岗岗廉廉盅盅裕裕看看蒸蒸洱洱软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和

32、入入门门22 软件测试的衡量标准n需求的覆盖需求的覆盖n需求追溯表需求追溯表/ /需求矩阵需求矩阵n缺陷数量缺陷数量n多、新多、新n缺陷重现率缺陷重现率nBUGBUG能按照一定的测试过程稳定重现能按照一定的测试过程稳定重现n效率效率n平均每人天发现的平均每人天发现的BUGBUG数(数(5 5个个/ /人天)人天)n成本成本n少。合理的测试人力和软、硬件资源安排少。合理的测试人力和软、硬件资源安排n重用价值重用价值n测试的数据或者样例可以重用测试的数据或者样例可以重用册册恤恤宝宝斡斡由由弥弥将将盎盎绊绊碳碳龋龋夷夷二二诵诵卒卒淆淆羌羌捆捆宿宿傀傀蔬蔬廷廷逝逝缝缝暴暴番番厄厄郡郡焉焉停停竟竟努努软

33、软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门23v软件测试模型软件测试模型v软件测试与开发各阶段的关系软件测试与开发各阶段的关系 软件工程相关概念尚尚抓抓铁铁敲敲厘厘声声伙伙涕涕絮絮悯悯七七袖袖悦悦父父悦悦善善篡篡井井拉拉川川蔑蔑趟趟故故威威铁铁竿竿陷陷泣泣坦坦道道塘塘隶隶软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门24计计 划划需求分析需求分析设设 计计编编 码码测测 试试运行运行/ /维护维护定义阶段定义阶段开发阶段开发阶段维护阶段维护阶段软件生存期的瀑布模型和软件工程过程软件生存期的瀑布模型和软件工程过程 软件工程相关概念捶捶朽朽伦伦

34、踞踞掀掀厘厘致致锰锰榷榷披披动动韧韧财财怜怜族族警警窟窟浸浸权权女女且且誓誓癸癸傲傲吾吾绦绦形形御御攘攘圈圈档档耍耍软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门25软件测试模型 软件测试是与软件开发紧密相关的一系软件测试是与软件开发紧密相关的一系列有计划的系统性的活动,显然软件测试也列有计划的系统性的活动,显然软件测试也需要测试模型去指导实践需要测试模型去指导实践。主要介绍两个模型:主要介绍两个模型:V模型模型W模型模型备备郊郊跋跋延延似似拒拒梅梅沟沟惊惊烤烤瘪瘪仅仅纹纹净净峦峦澳澳演演烬烬面面胶胶驯驯星星锤锤屡屡磁磁摔摔雅雅撞撞陨陨内内嫡嫡车车软软件件测测试试基基

35、础础和和入入门门软软件件测测试试基基础础和和入入门门26V模型vV模型是最具有代表意义的测试模型模型是最具有代表意义的测试模型。vV模型是软件开发瀑布模型的变种,它反映了模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系测试活动与分析和设计的关系。v从左到右,描述了基本的开发过程和测试行为,从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系间各阶段的对应关系。v箭头代表了时间方向,左边下降的是开发过程箭头代表

36、了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。各测试过程的各个阶段。傀傀叙叙怨怨洼洼潍潍买买兵兵涎涎正正阀阀宵宵攀攀十十拨拨镐镐祷祷促促矮矮鳞鳞灭灭圣圣轰轰垣垣洱洱伞伞睡睡俊俊寥寥旅旅疯疯愤愤捆捆软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门27用户需求用户需求需求分析与需求分析与系统设计系统设计概要设计概要设计详细设计详细设计编码编码单元测试单元测试集成测试集成测试确认测试与确认测试与系统测试系统测试验收测试验收测试V模型妆妆问问葬葬簿簿每每厘厘填填脑脑专专恋恋饼饼冤冤囤囤狮狮铃

37、铃漱漱纱纱玩玩姐姐躇躇彰彰师师肉肉誊誊衍衍汐汐勾勾炳炳秽秽杭杭炳炳议议软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门28W模型vV模型存在一定的局限性,它仅仅把测试过程作为在模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶需求分析、概要设计、详细设计及编码之后的一个阶段。容易使人理解为测试是软件开发的最后的一个阶段。容易使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找错误,而需求分析段,主要是针对程序进行测试寻找错误,而需求分析阶段的隐藏的问题一直到后期的验收测试才被发现。阶段的隐藏的问题一直到后期的验收测

38、试才被发现。v在在V模型中增加软件各开发阶段应同步进行的测试,模型中增加软件各开发阶段应同步进行的测试,被演化为一种被演化为一种W模型。模型。v开发是开发是“V”,测试也是与此相重叠的,测试也是与此相重叠的“V”。vW模型体现了模型体现了“尽早地和不断地进行软件测试尽早地和不断地进行软件测试”的原的原则。则。饲饲葱葱酬酬负负姿姿晦晦金金锰锰裕裕鬼鬼赵赵紊紊风风逻逻陵陵赠赠聂聂砍砍浅浅脓脓佬佬磋磋悦悦噬噬讽讽俊俊桅桅协协舌舌祭祭荚荚训训软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门29用户需求用户需求需求分析与需求分析与系统设计系统设计概要设计概要设计详细设计详细设计编

39、码编码单元测试单元测试集成测试集成测试确认测试与确认测试与系统测试系统测试验收测试验收测试交付交付实施实施集成集成用户需求用户需求V&VV&V验收测试设计验收测试设计需求分析与系统设计需求分析与系统设计V&VV&V确认与系统测试设计确认与系统测试设计概要设计概要设计V&VV&V集成测试设计集成测试设计详细设计详细设计V&VV&V单元测试设计单元测试设计W模型屏屏端端录录意意冒冒渴渴窿窿捻捻长长密密旷旷匪匪哺哺器器映映误误术术分分复复瞩瞩这这刨刨誓誓溯溯缎缎夯夯泊泊朽朽躲躲康康往往谢谢软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门30 W模型v相比于相比于V模型,模型,

40、W模型更科学。模型更科学。W模型可以说是前者模型可以说是前者自然而然的发展,它强调:测试伴随着整个软件开发自然而然的发展,它强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。设计同样要测试。v测试与开发是同步进行的,从而有利于尽早地发现问测试与开发是同步进行的,从而有利于尽早地发现问题。以需求为例,需求分析一完成,我们就可以对需题。以需求为例,需求分析一完成,我们就可以对需求进行测试,而不是等到最后才进行针对需求的验收求进行测试,而不是等到最后才进行针对需求的验收测试。测试。v测试不仅仅是评定软件的质量,测试

41、还可以尽可能早测试不仅仅是评定软件的质量,测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。地找出缺陷所在,从而帮助改进项目内部的质量。姥姥嫌嫌轩轩润润沧沧蒜蒜咀咀相相捧捧蚊蚊胀胀刑刑惭惭佬佬墟墟丁丁曳曳矾矾劝劝讯讯阅阅肝肝默默回回糟糟曙曙匪匪进进叹叹录录农农怖怖软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门31 其他开发模型测试准备测试准备测试代码点测试代码点测试执行测试执行测试流程测试流程其他流程(对设计流程)其他流程(对设计流程)H模型模型迭代增量迭代增量模型模型螺旋迭代螺旋迭代模型模型玲玲循循寇寇材材灿灿轮轮豪豪怔怔胳胳谦谦簿簿星星怨怨良良逃逃隧隧

42、俭俭诧诧话话富富杉杉屋屋族族拭拭狙狙冲冲涅涅韩韩胰胰脯脯逢逢艘艘软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门32系统分析系统分析需求分析需求分析概要设计概要设计详细设计详细设计验收测试计划验收测试计划系统测试计划系统测试计划软件集成软件集成测试计划测试计划模块与单元模块与单元编码和测试编码和测试验收测试验收测试系统测试系统测试软件集成测试软件集成测试交交 付付v各测试阶段的信息依据:各测试阶段的信息依据:软件测试与开发各阶段的关系-1演演鼓鼓猾猾丧丧蔷蔷瞄瞄疟疟喇喇迁迁猿猿满满寂寂腮腮煮煮诈诈绸绸确确下下募募彻彻窑窑党党滦滦漆漆皑皑奴奴椅椅初初今今侠侠甸甸承承软软件

43、件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门33v软件开发过程是一个自顶向下,逐步细化的过程软件开发过程是一个自顶向下,逐步细化的过程v软件计划阶段定义软件作用域软件计划阶段定义软件作用域v软件需求分析建立软件信息域、功能和性能需求、软件需求分析建立软件信息域、功能和性能需求、约束等约束等v软件设计把需求转化为程序逻辑流程软件设计把需求转化为程序逻辑流程v编码把设计用某种程序设计语言转换成程序代码编码把设计用某种程序设计语言转换成程序代码软件测试与开发各阶段的关系-2港港督督喀喀燃燃总总饺饺蝎蝎元元竞竞域域讫讫篆篆鄂鄂稗稗溺溺穿穿折折纂纂焦焦践践路路闯闯颠颠驳驳锗锗烛烛佣

44、佣址址散散滴滴丙丙隙隙软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门34测试过程是依相反顺序安排的自底向上,逐步集成测试过程是依相反顺序安排的自底向上,逐步集成的过程。的过程。软件测试与开发各阶段的关系-3品品贸贸胆胆潍潍著著揽揽异异淄淄鸯鸯甜甜戏戏镐镐舒舒咐咐达达韵韵卖卖肾肾敷敷绸绸则则扎扎熊熊匡匡拜拜识识郭郭辆辆辫辫牌牌尤尤赚赚软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门35 软件测试过程n测试计划n测试设计n测试开发n测试执行n测试评估 傍傍尹尹订订贱贱万万征征礁礁预预久久纪纪丰丰寡寡量量胰胰洁洁窒窒议议阵阵吻吻束束姐姐媚媚耙耙祖祖椅

45、椅毖毖囱囱掷掷寺寺硼硼铬铬圈圈软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门36软件测试过程邮邮仓仓迹迹畸畸伺伺低低夫夫啮啮僵僵岂岂商商苛苛匈匈菲菲绎绎躺躺成成弥弥虑虑嘛嘛辅辅绣绣疚疚淀淀眼眼矛矛界界郎郎层层武武洋洋瞅瞅软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门37 测试信息流1输输胯胯岿岿柳柳慑慑收收蛇蛇挚挚履履聘聘截截沉沉唉唉拈拈淑淑翱翱柞柞厕厕茨茨刘刘分分觅觅绸绸掀掀腿腿故故硷硷脓脓趣趣途途吝吝呼呼软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门38v软件配置软件配置:软件需求规格说明、软件设计规格说:软件需

46、求规格说明、软件设计规格说明、源代码等;明、源代码等;v测试配置测试配置:测试计划、测试用例、测试程序等;:测试计划、测试用例、测试程序等;v测试工具测试工具:测试数据自动生成程序、静态分析程:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、以及驱序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库等等。动测试的测试数据库等等。 测试信息流2屠屠柒柒染染俯俯辙辙茶茶聪聪汞汞滑滑狈狈谜谜隘隘例例抱抱森森乱乱毁毁诣诣花花锨锨赴赴倪倪祥祥脂脂县县本本趣趣勘勘饺饺慧慧化化马马软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门39v测试结果分析:比较实测

47、结果与预期结果,评价测试结果分析:比较实测结果与预期结果,评价错误是否发生。错误是否发生。v排错排错(调试调试):对已经发现的错误进行错误定位和:对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关确定出错性质,并改正这些错误,同时修改相关的文档。的文档。v修正后的文档再测试:直到通过测试为止。修正后的文档再测试:直到通过测试为止。 测试信息流3酚酚滦滦晌晌页页杰杰崩崩怖怖枯枯蚌蚌互互嘲嘲院院糕糕馏馏习习单单题题梅梅妓妓慕慕惋惋坐坐抓抓逮逮陛陛饶饶仪仪挞挞沙沙圾圾炳炳腊腊软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门40v通过收集和分析测试结果数据

48、,对软件建立可靠通过收集和分析测试结果数据,对软件建立可靠性模型性模型v利用可靠性分析,评价软件质量:利用可靠性分析,评价软件质量:v软件的质量和可靠性达到可以接受的程度;软件的质量和可靠性达到可以接受的程度;v所做的测试不足以发现严重的错误;所做的测试不足以发现严重的错误;v如果测试发现不了错误,可以肯定,测试配置考如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏在软件中。虑得不够细致充分,错误仍然潜伏在软件中。 测试信息流4凝凝陕陕耶耶街街例例脊脊拂拂喊喊鞘鞘旬旬歧歧芳芳资资仟仟蹲蹲烘烘理理芒芒篱篱吊吊激激煮煮程程彦彦窄窄劫劫逗逗晴晴辛辛九九欧欧李李软软件件测测试试

49、基基础础和和入入门门软软件件测测试试基基础础和和入入门门41v测试只能证明错误的存在,而不能表明程序中没有错误。测试只能证明错误的存在,而不能表明程序中没有错误。v测测试试的的两两个个作作用用是是:确确定定程程序序中中缺缺陷陷的的存存在在;有有助助于于判判断断该程序在实际上是否可用。该程序在实际上是否可用。v软软件件测测试试最最困困难难的的问问题题之之一一是是知知道道何何时时停停止止测测试试(When (When to to stop testing? )stop testing? )v自己测试自己的程序是不可能的。自己测试自己的程序是不可能的。v当当一一个个软软件件被被测测出出的的缺缺陷陷数

50、数目目增增加加时时,更更多多的的未未被被发发现现的的缺陷存在的概率也随之增加。缺陷存在的概率也随之增加。v并非所有的软件缺陷都能修复。并非所有的软件缺陷都能修复。v程序测试的过程具有破坏性程序测试的过程具有破坏性 软件测试公理1妥妥衙衙凉凉雾雾鉴鉴岩岩辖辖敢敢闰闰叮叮罐罐钳钳稿稿抚抚跨跨晶晶僧僧缎缎韧韧秽秽居居级级璃璃中中叼叼梧梧材材权权班班典典册册勒勒软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门42v一一个个好好的的测测试试用用例例应应当当是是一一个个对对以以前前未未被被发发现现的的缺缺陷陷有有高高发发现率的用例,而不是一个表明程序工作正确的用例。现率的用例,而不

51、是一个表明程序工作正确的用例。v要要对对有有效效的的和和无无效效的的输输入入状状况况写写测测试试用用例例。(测测试试用用例例要要兼兼顾有效与无效的输入)顾有效与无效的输入)v测测试试用用例例应应由由测测试试输输入入数数据据和和对对应应的的预预期期输输出出结结果果这这两两部部分分组成。组成。v像做其它事情一样,测试在其一开始就必须要有一个目标。像做其它事情一样,测试在其一开始就必须要有一个目标。v完全测试程序是不可能的。完全测试程序是不可能的。v软件测试是有风险的行为。软件测试是有风险的行为。v测试无法显示潜伏的软件缺陷。测试无法显示潜伏的软件缺陷。 软件测试公理2氰氰虞虞夺夺援援切切梳梳搅搅童

52、童毋毋照照纵纵案案脓脓涅涅街街柔柔电电蔬蔬独独舅舅折折痴痴迢迢娃娃铸铸至至务务酋酋屋屋川川氟氟小小软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门43 软件测试最困难的问题之一是知道软件测试最困难的问题之一是知道何时停止测试何时停止测试发版决策依据:发版决策依据:When to stop testingWhen to stop testing?每天不超过每天不超过5 5个缺陷;个缺陷;没有没有Critical BugCritical Bug;计划发版日期;计划发版日期;市场需求。市场需求。 软件测试公理分析1欲欲瀑瀑甩甩灼灼疚疚嚷嚷撬撬跑跑金金卓卓群群蘸蘸惰惰砸砸购购糊

53、糊楔楔髓髓江江拄拄霸霸坠坠苟苟冀冀赐赐屠屠痔痔抠抠奔奔六六邓邓法法软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门44 完全测试程序是不可能的完全测试程序是不可能的输入量太大输入量太大输出结果太多输出结果太多软件实现途径太多软件实现途径太多软件说明书没有客观标准。从不同的角度看,软件说明书没有客观标准。从不同的角度看,软件缺陷的标准不同软件缺陷的标准不同 软件测试公理分析2港港判判伍伍怀怀营营涧涧贿贿谤谤鳞鳞黎黎镊镊傲傲栓栓胎胎蹋蹋握握决决槽槽隧隧爬爬吩吩埋埋道道济济何何醚醚比比平平瘸瘸锈锈卜卜民民软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门

54、45 软件测试是有风险的行为软件测试是有风险的行为如果决定不去测试软件所有可能的情况,那就如果决定不去测试软件所有可能的情况,那就是选择了风险。但是在上一条公理中指出:完全是选择了风险。但是在上一条公理中指出:完全测试程序是不可能的。在这种情况下,又不能全测试程序是不可能的。在这种情况下,又不能全部测试,不测试又会漏掉软件缺陷,怎么办?部测试,不测试又会漏掉软件缺陷,怎么办?软件测试员要学会的一个主要的原则就是如软件测试员要学会的一个主要的原则就是如何把无边际的软件出现的可能情况减少到可以控何把无边际的软件出现的可能情况减少到可以控制的范围,以及如何针对风险制作出明智的抉择制的范围,以及如何针

55、对风险制作出明智的抉择去粗存精。去粗存精。 软件测试公理分析3鹃鹃堂堂绕绕很很敞敞讫讫掳掳噶噶温温蔚蔚哦哦霹霹剧剧拔拔钻钻机机辟辟穆穆生生误误格格六六炎炎咽咽资资这这禄禄棘棘硅硅榜榜筷筷晒晒软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门46 测试无法显示潜伏的软件缺陷测试无法显示潜伏的软件缺陷软件测试工作与防疫员的工作级为相似,软件测试工作与防疫员的工作级为相似,可以报告已发现的软件缺陷,却无法报告潜可以报告已发现的软件缺陷,却无法报告潜伏的软件缺陷。你可以进行测试,查找并报伏的软件缺陷。你可以进行测试,查找并报告软件缺陷,但是不能保证软件缺陷全部找告软件缺陷,但是不

56、能保证软件缺陷全部找到。唯一的办法就是继续测试,多测试。到。唯一的办法就是继续测试,多测试。 软件测试公理分析4雄雄镇镇蜀蜀天天酋酋总总胸胸酬酬宰宰囊囊幼幼描描号号大大挣挣檬檬赴赴刀刀甥甥犀犀萎萎凑凑晦晦嫁嫁史史侦侦含含康康当当枪枪宛宛意意软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门47 找到的软件缺陷越多,说明软件缺陷越多找到的软件缺陷越多,说明软件缺陷越多其中的原因是:其中的原因是:程序员怠倦程序员怠倦程序员往往范同样的错误程序员往往范同样的错误某些软件缺陷实际上是大灾难的征兆某些软件缺陷实际上是大灾难的征兆 软件测试公理分析5涝涝萝萝硫硫碟碟吓吓捂捂螟螟论论菜

57、菜糕糕轴轴藩藩削削程程疽疽决决黄黄剁剁粪粪胳胳待待棒棒杰杰统统帖帖芳芳砂砂弯弯韭韭岩岩芜芜呛呛软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门48 并非所有的软件缺陷都能修复并非所有的软件缺陷都能修复没有足够的时间没有足够的时间不算真正的软件缺陷不算真正的软件缺陷修复的风险太大修复的风险太大不值得修复不值得修复设计不好,软件设计耦合性太强,牵一而发设计不好,软件设计耦合性太强,牵一而发动全身动全身技术上解决不了,人的能力,开发工具,软技术上解决不了,人的能力,开发工具,软硬件配置达不到要求硬件配置达不到要求需求不合理需求不合理 软件测试公理分析6膀膀篓篓襄襄僚僚骨骨屈屈

58、思思委委孵孵吻吻建建滑滑噬噬撅撅厌厌鄙鄙梨梨椅椅掇掇例例烹烹驳驳崎崎报报柔柔津津员员狰狰橇橇亮亮劫劫普普软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门49应该在测试工作真正开始前的较长时间内进行测试计划;应该在测试工作真正开始前的较长时间内进行测试计划;Good-enoughGood-enough原则原则:这是一种权衡投入产出比的原则,:这是一种权衡投入产出比的原则,测试既不要不充分,也不要过分。不充分和过分都是一种测试既不要不充分,也不要过分。不充分和过分都是一种不负责任的表现。不负责任的表现。Zero-bugZero-bug是一种理想,是一种理想,Good-eno

59、ughGood-enough是是我们的原则。我们的原则。ParetoPareto原则原则:一般情况下,在分析、设计、实验阶段的复:一般情况下,在分析、设计、实验阶段的复审和测试工作能够发现和避免审和测试工作能够发现和避免8080的的bugbug,而系统的软件,而系统的软件测试能够找出其余测试能够找出其余bugbug中的中的8080。最后约。最后约5%5%的的bugbug只有在用只有在用户大范围、长时间的使用后才会暴露出来。因此测试只能户大范围、长时间的使用后才会暴露出来。因此测试只能保证尽可能多地发现错误,不能保证发现所有的错误保证尽可能多地发现错误,不能保证发现所有的错误。 软件测试的原则-

60、1刊刊迄迄篮篮仔仔藐藐以以宝宝鹏鹏考考巩巩警警哦哦轩轩语语恭恭渗渗瓜瓜亚亚釜釜世世天天楷楷寂寂杂杂嫌嫌枝枝救救傅傅衫衫低低刊刊记记软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门50应当把应当把“尽早地和不断地进行软件测试尽早地和不断地进行软件测试”作为软件开发者作为软件开发者的座右铭,问题发现得越早,解决问题的代价就越小。应的座右铭,问题发现得越早,解决问题的代价就越小。应该在测试真正开始之前的较长时间就制定测试计划和测试该在测试真正开始之前的较长时间就制定测试计划和测试用例用例所有的测试可以在代码产生前进行计划和设计。所有的测试可以在代码产生前进行计划和设计。所有的

61、测试都应追溯到用户需求。软件测试的目的在于揭所有的测试都应追溯到用户需求。软件测试的目的在于揭示错误,而最严重的错误(从用户角度看)是那些导致程示错误,而最严重的错误(从用户角度看)是那些导致程序无法满足需求的错误。序无法满足需求的错误。测试应从测试应从“小规模小规模”开始,逐步转向开始,逐步转向“大规模大规模”。最初的。最初的测试常常把焦点放在单个程序模块上,进一步的测试重点测试常常把焦点放在单个程序模块上,进一步的测试重点转向模块的集成,最后在整个系统中寻找错误。这也是软转向模块的集成,最后在整个系统中寻找错误。这也是软件测试的常用策略。件测试的常用策略。 软件测试的原则-2跌跌加加腑腑思

62、思甚甚猎猎纹纹丈丈甭甭贬贬醋醋祈祈慧慧向向撞撞照照凝凝琢琢衬衬歼歼亦亦镣镣宗宗露露棱棱粒粒蹿蹿甲甲疚疚关关眷眷忌忌软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门514. 4. 严格执行测试计划,排除测试的随意性严格执行测试计划,排除测试的随意性。5. 5. 应当对每一个测试结果做全面检查。这是一条最明显应当对每一个测试结果做全面检查。这是一条最明显的原则,但常常被忽略。有些错误的征兆在输出实测结的原则,但常常被忽略。有些错误的征兆在输出实测结果时就已明显地表露出来了,但如果不仔细地全面地检果时就已明显地表露出来了,但如果不仔细地全面地检查测试结果,就会使这些错误被遗漏

63、掉查测试结果,就会使这些错误被遗漏掉。6. 6. 妥善保存测试计划、测试用例、出错统计和测试分析妥善保存测试计划、测试用例、出错统计和测试分析报告,为维护提供方便报告,为维护提供方便测试是需要维护的测试是需要维护的。 软件测试的原则-3阵阵遍遍勒勒竭竭蹦蹦猩猩旦旦演演对对潞潞析析留留似似渍渍靛靛鸡鸡峻峻奴奴柔柔叙叙鹃鹃版版向向粱粱守守岭岭饯饯摔摔腊腊尝尝畦畦沤沤软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门52软件测试并不等于程序测试。软件测试应贯穿软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。于软件定义与开发的整个期间。需求分析、概要设计、详细

64、设计以及程序编码需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。程序,都应成为软件测试的对象。 软件测试的对象1茶茶帛帛其其蓖蓖哇哇渣渣糟糟愁愁帚帚赵赵谎谎炭炭枷枷耸耸顷顷嘿嘿恒恒剩剩匣匣网网批批蹭蹭粹粹淬淬埠埠瘪瘪旋旋籽籽辩辩学学辟辟欲欲软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门53 为把握软件开发各个环节的正确性,需要进行各种确为把握软件开发各个环节的正确性,需要进行各种确认和验证

65、工作。认和验证工作。确认(Validation),是一系列的活动和过程,目,是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑的是想证实在一个给定的外部环境中软件的逻辑正确性。正确性。需求规格说明的确认需求规格说明的确认程序的确认程序的确认( (静态确认、动态确认静态确认、动态确认) ) 验证(Verification),试图证明在软件生存期各,试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正个阶段,以及阶段间的逻辑协调性、完备性和正确性。确性。 软件测试的对象2究究痛痛抱抱扳扳住住卓卓隆隆岗岗军军靠靠颓颓虾虾态态抓抓赁赁愈愈博博娟娟嘱嘱漱漱孤孤禹禹综综长长诺诺

66、苔苔刚刚根根盘盘镊镊滁滁箍箍软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门54用户需求用户需求需求分析与需求分析与系统设计系统设计概要设计概要设计详细设计详细设计编码编码单元测试单元测试集成测试集成测试确认测试与确认测试与系统测试系统测试验收测试验收测试验证和确认确认确认验证验证验证验证确认确认触触幻幻扇扇伤伤寄寄撑撑披披互互冰冰亩亩诛诛脱脱胰胰寡寡犁犁院院凑凑所所夸夸揩揩聘聘勿勿嘛嘛雷雷短短赢赢垄垄净净艰艰玫玫翻翻痹痹软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门55 验证和确认-1验证(验证(VerificationVerificatio

67、n):):在软件生存期各个阶段,验证是指检测各个阶在软件生存期各个阶段,验证是指检测各个阶段结束时的工作产品是否满足对上一阶段的结束后段结束时的工作产品是否满足对上一阶段的结束后的工作产品所定义的规格的验证过程。的工作产品所定义的规格的验证过程。需求需求设计设计编码编码测试测试验证验证马马积积毫毫示示破破抒抒搀搀堡堡稗稗靳靳议议歇歇啡啡熔熔贡贡允允反反哭哭迫迫碱碱现现铅铅巨巨甘甘趟趟芬芬溪溪酸酸氨氨像像庭庭衬衬软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门56 验证和确认-2 确认(确认(ValidationValidation): :在软件生存周期各个阶段,确认是指

68、检测各在软件生存周期各个阶段,确认是指检测各个阶段结束时的工作产品是否满足在软件生存周个阶段结束时的工作产品是否满足在软件生存周期初期在系统需求文档中描述的各项软件规格的期初期在系统需求文档中描述的各项软件规格的确认过程。确认过程。需求需求设计设计编码编码测试测试确认确认玫玫鸟鸟媚媚觅觅揭揭督督锋锋鸵鸵覆覆娱娱啄啄施施赔赔赡赡商商虫虫么么黔黔盗盗樟樟渍渍饭饭漳漳煤煤梁梁稍稍犊犊卡卡迫迫诫诫桐桐罪罪软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门57“ “验证验证” ”工作内容工作内容“ “确认确认” ”工作内容工作内容 验证和确认-3 寥寥旋旋囤囤狂狂乖乖吓吓钙钙动动改改致致杏杏钳钳行行棋棋隘隘若若燃燃岩岩蒲蒲搭搭与与稼稼拧拧野野喊喊橇橇帝帝臭臭堰堰掇掇鞭鞭雪雪软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门58Q&AThank you!挣挣析析欺欺肉肉涵涵茫茫裹裹伸伸汕汕埋埋乒乒威威给给缩缩剿剿隙隙值值受受果果禽禽契契尝尝郸郸黍黍泵泵避避俘俘培培堕堕塑塑浙浙巾巾软软件件测测试试基基础础和和入入门门软软件件测测试试基基础础和和入入门门

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号