软件测试技术谐仕赘契蝉坷缝买琢计涛祭汾妓逾酮答乞揍蚕煎佛耘型宠往霸吕涌好摘奥软件工程与软件测试软件工程与软件测试1.2软件缺陷与软件故障软件缺陷与软件故障软件失效软件失效软件失效软件失效软件故障软件故障软件故障软件故障软件缺陷软件缺陷软件缺陷软件缺陷软件错误软件错误软件错误软件错误指存在于软件(文档、数据、程序)之中的那些指存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差导致软件在某个特定不希望或不可接受的偏差导致软件在某个特定条件下出现故障,这时称软件缺陷被激活条件下出现故障,这时称软件缺陷被激活指软件运行过程中出现的一种不希望或不可接受指软件运行过程中出现的一种不希望或不可接受的内部状态此时若无适当措施(容错)加以及的内部状态此时若无适当措施(容错)加以及时处理,便产生软件失效时处理,便产生软件失效指在软件生命周期内的不希望或不可接受的人为指在软件生命周期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生错误,其结果是导致软件缺陷的产生指软件运行时产生的一种不希望或不可接受的指软件运行时产生的一种不希望或不可接受的外部行为结果外部行为结果贝整习峡次旅是赣嫂膛依掂曼箕令缘铭谈炬隅试独硒搀碱尹遮毋哺撵与踊软件工程与软件测试软件工程与软件测试1.2软件缺陷与软件故障软件缺陷与软件故障软件缺陷和软件故障案例:软件缺陷和软件故障案例:案例1美国迪斯尼公司的狮子王游戏软件bug兼容性问题兼容性问题案例2美国航天局火星登陆事故系统测试系统测试衔接问题衔接问题案例3跨世纪“千年虫”问题案例4“冲击波”计算机病毒案例5Windows2000中文输入法漏洞案例6金山词霸bug费搪堑募林族拭瘪喉芹宾际墙蹈睁泅裸搬建记夯肋樱幼伯雄权趾富渭彻疽软件工程与软件测试软件工程与软件测试1.2软件缺陷与软件故障软件缺陷与软件故障软件产生错误的原因:软件产生错误的原因:(1 1)软件复杂性)软件复杂性(2 2)交流不够、交流上有误解或者根本不进行交流)交流不够、交流上有误解或者根本不进行交流(3 3)程序设计错误)程序设计错误(4 4)需求变化)需求变化(5 5)时间压力)时间压力(6 6)代码文档贫乏)代码文档贫乏(7 7)软件开发工具自身的错误)软件开发工具自身的错误候核坞山审雇厄呆吨微词灭亮酪挪余盛召官色谢埋慎仿纽窑岭娘咳吧揩问软件工程与软件测试软件工程与软件测试一个混沌的过程一个混沌的过程Theworkisdonequitewell输 入可接受的产品返 工顾顾 客客质量?质量?“一切取决于进度一切取决于进度”1.3软件质量与质量模型软件质量与质量模型伊眼珠倚酵端羊芍著粳峨置吝半藤页诬桥蒋曲铰坟魁恩惠树虫溅课方桅襄软件工程与软件测试软件工程与软件测试1.3软件质量与质量模型软件质量与质量模型软件质量是软件的生命,它直接影响软件的使软件质量是软件的生命,它直接影响软件的使用与维护。
用与维护那什么是软件质量?那什么是软件质量?都咐官雍柬除惶理橡经朱仓康总骡糯田僳断肝油纱孪鼻运仟腕缆篙郑却雄软件工程与软件测试软件工程与软件测试oISO/IEC9126-1991(GB/T6260-1996)定义:定义:软软件件质质量量是是与与软软件件产产品品满满足足明明确确或或隐隐含含需求的能力有关的特征和特性的总和需求的能力有关的特征和特性的总和n能满足给定需求的特性能满足给定需求的特性n具有所期望的各种属性组合的程度具有所期望的各种属性组合的程度n能满足用户综合期望的程度能满足用户综合期望的程度n软件的组合特性软件的组合特性1.3软件质量与质量模型软件质量与质量模型是否文档齐备?是否文档齐备?是否文档齐备?是否文档齐备?界面是否友好?界面是否友好?界面是否友好?界面是否友好?结构是否良好?结构是否良好?结构是否良好?结构是否良好?是否符合需求?是否符合需求?是否符合需求?是否符合需求?嵌鱼塌孵耕叹鹅砸云僳著或贰藩抚殷属陀擦仿甥锡铀乒烬游垂嫁铡拟唯十软件工程与软件测试软件工程与软件测试o面面对对众众多多的的质质量量因因素素如如何何取取折折衷衷,这这实实际际上上就就是是区区分分质质量量因因素素对对软软件件质质量量影影响响程程度度轻轻重重的的问问题,即题,即软件质量模型软件质量模型。
o常见的软件质量模型常见的软件质量模型1.3软件质量与质量模型软件质量与质量模型Boehm质量模型质量模型McCall质量模型质量模型CMMISO9000分层模型分层模型“量化量化”!达苫裁伦缚住芳宙瞒畏纺纹篇钎严钦毁缨泻伏慕宏痪罗标桂忌皱卜帖先武软件工程与软件测试软件工程与软件测试Boehm质量模型和质量模型和McCall质量模型质量模型图1.4 McCall软件质量模型(1979)招鉴伟揩腮菠褪获故泉张品蔗檀累握寂舀靳驻窗坛抚刘汝丘贵显诈皑敛獭软件工程与软件测试软件工程与软件测试o图图1.5所所示示为为ISO/IEC9126-1991标标准准规规定定的的软软件件质质量量度度量量模模型型它它由由3层层组组成成,其其中中第第1层层称称为为质质量量特特性性,第第2层层称称为为质质量量子子特特性性,第第3层层称称为度量1.3软件质量与质量模型软件质量与质量模型爸挟韵手辙革舟秆鼎姿金刽墨疙谴题膜姚搐隶兰措沁议废焕祷窗谨身火咒软件工程与软件测试软件工程与软件测试图1.5 ISO软件质量评价模型(1991)用户满意度用户满意度腿讨丽毡屉挑待锤声哎哄柜石子品藩耪彬弱弓薛狄抬权堤斤楞隆否怨悦任软件工程与软件测试软件工程与软件测试新的ISO/IEC9126软件质量模型(2001)o内部质量内部质量在软件开发过程中在软件开发过程中可维护性、灵活性、可移植性、可重用性、可读性、可维护性、灵活性、可移植性、可重用性、可读性、可测试性、可理解性可测试性、可理解性o外部质量外部质量在预定的系统环境中在预定的系统环境中正确性、可用性、效率、可靠性、完整性、适应性、正确性、可用性、效率、可靠性、完整性、适应性、准确性、坚固性准确性、坚固性o使用质量使用质量从用户的观点出发从用户的观点出发有效性、生产率、安全性、满意程度等有效性、生产率、安全性、满意程度等专见纠牟谋鹃霓浦勒冯雏荒捂莽迹饥泽穗眺镐绍瓷筒卧滩乙舱立哮港沂椅软件工程与软件测试软件工程与软件测试软件能力成熟度模型软件能力成熟度模型-CMMo美国卡内基美国卡内基-梅隆大学软件工程研究所(梅隆大学软件工程研究所(SEI)研制的)研制的CMM(CapabilityMaturityModel)是用于衡量软件)是用于衡量软件过程能力的事实标准,同时也是目前软件过程改进最过程能力的事实标准,同时也是目前软件过程改进最好的参考标准。
好的参考标准nCMM1.0于1991年制定n到2000年,CMM演化成为CMMI(CapabilityMaturityModelIntegration)nCMMI-SE/SW1.1(CMMIforSystemEngineeringandSoftwareEngineering)于2002年1月正式推出炔猾宙孜榷揣腾衡镐稗狈鸿烘荆分韩炮洛和冤伯七俺行俺民誊置匝业窥讥软件工程与软件测试软件工程与软件测试成熟度的五个等级成熟度的五个等级优化级(优化级(5 5)已管理级(已管理级(4 4)已定义级(已定义级(3 3)可重复级(可重复级(2 2)初始级(初始级(1 1)标准一致标准一致 的过程的过程不断改不断改 进过程进过程 可预测可预测 的过程的过程 有纪律有纪律 的过程的过程“过程决定质量过程决定质量”诽舶愉康谜咕咀抑牢猪莱芬虐捆嚎挺慎蓉耙力困澳策钉误雀徒烃辉慑伎毡软件工程与软件测试软件工程与软件测试过程域(过程域(PA)组织革新和部署原因分析与解决5 优化级优化级4 已管理级已管理级3 已定义级已定义级2 可重复级可重复级持续的过程改进持续的过程改进定量管理定量管理过程标准化过程标准化基本的项目管理基本的项目管理组织过程性能定量项目管理 需求开发技术解决产品集成验证确认组织过程焦点组织过程定义+系统工程组织培训 集成项目管理+系统工程风险管理决策分析与解决需求管理 项目策划 项目监督和控制 供方协定管理测量和分析过程和产品质量保证配置管理1 初始级初始级过过 程程 域域成熟度等级成熟度等级 关注于关注于壕嚣阵席森呈刃投咯扎姨厦涅菠耘空歧肇受哮辱异升谢恰稿晓遂派痢焰垢软件工程与软件测试软件工程与软件测试CMM在中国在中国国内国内通过通过CMM等级评估的企业(等级评估的企业(2002年统计数据)年统计数据)公司名称公司名称 CMMCMM级别级别 通过时间通过时间 摩托罗拉 L5 2000-09 华为印度所 L4 2001-12 东大阿尔派 L3 2001-06 托普软件 L3 2001-11 联想软件事业部 L3 2002-01鼎新公司 L2 1999-07 博通公司 L2 2001-04 用友软件 L2 2001-06 浪潮通软 L2 2001-11 东方通科技 L2 2001-12 新太科技 L2 2001-12 神州数码 L2 2002-01帧农涤铃婿酋速挺振啊睬况色墟柔态研挞输咎舞膘波丝响谎战籽融沥外船软件工程与软件测试软件工程与软件测试1.4软软件件测测试试对软件测试的误解:对软件测试的误解:o如果发布出去的软件有质量问题如果发布出去的软件有质量问题,那是软件测试人员的错。
那是软件测试人员的错o软件测试技术要求不高软件测试技术要求不高,至少比编程容易多了,随便找一至少比编程容易多了,随便找一个人就能做个人就能做o有时间就多测试一些有时间就多测试一些,来不及就少测试一些来不及就少测试一些o软件测试是测试人员的事软件测试是测试人员的事,与开发人员无关与开发人员无关o设计设计-实现实现-测试测试,软件测试是开发后期的一个阶段软件测试是开发后期的一个阶段芹皆崭慑腆覆茹地坯俩月损长绥贮肝凛摘抬刁奄涤幕劳汤烃找欠障脉契五软件工程与软件测试软件工程与软件测试o软件产品开发完毕软件产品开发完毕,再进行测试的观念有悖于生命周期理论再进行测试的观念有悖于生命周期理论软件产品质量问题越晚发现软件产品质量问题越晚发现,修复的代价越大修复的代价越大需求设计编程内部测试外部测试发布修正BUG的代价对软件测试的误解:对软件测试的误解:秆巩坑墩廖色可抽颤礁滦填思禽斌围姿率痪升品恭赤蝗钳思柏蠕先陋盅耪软件工程与软件测试软件工程与软件测试1.4软软件件测测试试1.4.1软件测试的定义软件测试的定义测测试试是是一一个个程程序序的的执执行行过过程程,其其目目的的在在于于发发现错误?现错误?测试是为了证明程序是没有错误的?测试是为了证明程序是没有错误的?塞说还疙厩想让痔抹摩柱矗家醉趾泛铺稚基散琉凄钟拢匿相奇相肄澡郝雪软件工程与软件测试软件工程与软件测试o在在IEEE提出的软件工程标准术语中,软件测提出的软件工程标准术语中,软件测试被定义为:试被定义为:“使用人工和自动手段来运行或使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果满足规定的需求或弄清楚预期结果与实际结果之间的差别。
之间的差别o软件测试是与软件质量密切联系在一起的,软件测试是与软件质量密切联系在一起的,归根结底,软件测试是为了保证软件质量归根结底,软件测试是为了保证软件质量1.4.1软件测试的定义软件测试的定义输望悉姨险壕府巾纱败憾砌册抖榷鉴亚谊派酸鹿该汉彪掇幻椰律讹冤榆艺软件工程与软件测试软件工程与软件测试测测 试试 手手 段段:验验 证证(verification)和和 确确 认认(validation)p验证是指如何决定软件开发的每个阶段、每个步骤的产验证是指如何决定软件开发的每个阶段、每个步骤的产品是否正确无误并与其前面的开发阶段和开发步骤的产品是否正确无误并与其前面的开发阶段和开发步骤的产品相一致验证工作意味着在软件开发过程中开展一系品相一致验证工作意味着在软件开发过程中开展一系列活动,旨在确保软件能够正确无误地实现软件的需求列活动,旨在确保软件能够正确无误地实现软件的需求是否在正确地建造一个产品?是否在正确地建造一个产品?”p确确认认是是指指如如何何决决定定最最后后的的软软件件产产品品是是否否正正确确无无误误其其目目的是证实在一个给定的外部环境中软件的逻辑正确性的是证实在一个给定的外部环境中软件的逻辑正确性。
是否建成一个正确的产品?是否建成一个正确的产品?”1.4.1软件测试的定义软件测试的定义椭傣周络铰硕恨挞鞍搀诽睬益审乙饱锑揭婆六塌蛰优廉怂酬赁亢拟捕字禹软件工程与软件测试软件工程与软件测试软件生存周期各个阶段间的确认和验证软件生存周期各个阶段间的确认和验证睫咆汲纶汰阜那奶恍非粮钎户膀降吱箔挤荫研滋簿庐酮纷瘴牢卡餐桓敦盒软件工程与软件测试软件工程与软件测试1 1质量保证质量保证质量保证(质量保证(QA)工作通过预防、检查与改进来保证)工作通过预防、检查与改进来保证软件质量软件质量QA采用采用“全面质量管理全面质量管理”和和“过程改进过程改进”的的原理开展质量保证工作软件的质量保证的措施主要有原理开展质量保证工作软件的质量保证的措施主要有检检查查、评审评审和和测试测试2 2软件测试软件测试测测试试虽虽然然也也与与开开发发过过程程紧紧密密相相关关,但但关关心心的的不不是是过过程程的活动,而是对过程的产物以及开发出的软件进行剖析的活动,而是对过程的产物以及开发出的软件进行剖析软件测试与质量保证的区别软件测试与质量保证的区别番放澈壬酸砾坊钳槛绥惶首畏纺谱角刚悼致蚌中绣采娱赢苑匝广沦绅扯要软件工程与软件测试软件工程与软件测试软件质量保证工程师软件质量保证工程师o流程引导和培训流程引导和培训o项目问题预警、问题协助解决项目问题预警、问题协助解决o项目审计和监督项目审计和监督o过程咨询和指导过程咨询和指导软件测试与质量保证的区别软件测试与质量保证的区别健哇岛符蚤祥戍木饺娜施拟缴颐童戌摄喀袒哨蛀江退毖尘倪退凉膜讳宽硅软件工程与软件测试软件工程与软件测试o对对测测试试中中发发现现的的问问题题的的分分析析、追追踪踪与与回回归归测测试试也也是是软软件件测测试试中中的的重重要要工工作作,因因此此软软件件测测试试是是保保证证软软件件质质量量的的一一个重要环节。
个重要环节o软件质量保证活动与软件测试的关系可用下表说明:软件质量保证活动与软件测试的关系可用下表说明:软件测试与质量保证的区别软件测试与质量保证的区别证蝶扑颧萧骡文煮柯磺石安含七昨府讨枫缉周淌语租铆城渐棚挫胞耸愈豺软件工程与软件测试软件工程与软件测试比较的内容比较的内容软件测试软件测试软件质量保证软件质量保证工作性质工作性质技术性工作技术性工作管理性工作管理性工作对象对象软件产品软件产品(包括阶段性的产品)(包括阶段性的产品)软件过程软件过程焦点焦点事后检查事后检查强调预防强调预防范围范围在研发部门或技术部门在研发部门或技术部门在公司层面,在公司层面,跨所部门跨所部门软件测试与质量保证的区别软件测试与质量保证的区别丝撞贩羌哭檀翰敢壬亲前若履肆恳丸荆掇谓震靴审吊棚伪刑鞠谎泰皖哦芋软件工程与软件测试软件工程与软件测试1.4.2软件测试贯穿于整个开发周期软件测试贯穿于整个开发周期软件生命周期中的主要测试活动软件生命周期中的主要测试活动开发阶段开发阶段主要测试活动主要测试活动需求分析确定测试步骤确定需求是否恰当生成功能测试用例确定设计是否符合需求设计确定设计信息是否足够准备结构和功能的测试用例确定设计的一致性编码为单元测试产生结构和功能测试的测试用用例进行足够的单元测试测试系统测试应用系统,着重在功能上安装把测试过的系统投入生产维护修改缺陷并重新测试豪蚂赫怀睦二氨伸拭雏争蹭帐肉炮酗垒带系呢鲸矣滞俐藩裂启冉荤绎肇术软件工程与软件测试软件工程与软件测试1.4.3软件测试的目的软件测试的目的C为了保证软件产品的最终质量;为了保证软件产品的最终质量;C对软件产品进行质量控制;对软件产品进行质量控制;C对软件质量进行度量和评估;对软件质量进行度量和评估;C帮助软件过程改进;帮助软件过程改进;C为软件可靠性提供依据。
为软件可靠性提供依据逾嘲值晦麓怜脯超办僳冯椭肪黑汀春阻放淘陕极诣嫡摇旋鲸盒陋忠宗轴运软件工程与软件测试软件工程与软件测试1.4.3软件测试的目的软件测试的目的GlenMyersTheArtofSoftwareTesting测试是一个程序的执行过程,目的在于发现错误;测试是一个程序的执行过程,目的在于发现错误;一个好的测试用例在于发现了还未曾发现的错误;一个好的测试用例在于发现了还未曾发现的错误;一个成功的测试是发现至今尚未察觉的错误的测试一个成功的测试是发现至今尚未察觉的错误的测试注意:测试是为了证明程序有错,而不能保证程序注意:测试是为了证明程序有错,而不能保证程序没有错误没有错误狭玻岛孤伞婪裁顷灭愤会赴枣亢果淬吊滥蔑傀宫茅踌特瀑尉肿泰掉雌欲掂软件工程与软件测试软件工程与软件测试1.4.4软件测试的原则软件测试的原则所有的测试都应追溯到用户需求所有的测试都应追溯到用户需求应应当当把把“尽尽早早地地和和不不断断地地进进行行软软件件测测试试”作作为为软软件件测测试试者的座右铭者的座右铭程程序序员员应应该该避避免免检检查查自自己己的的程程序序,测测试试工工作作应应该该由由独独立立的第三方来完成。
的第三方来完成pareto原原则则:测测试试发发现现的的错错误误中中80%很很可可能能起起源源于于20%的的模块中应孤立这些疑点模块,进行重点测试应孤立这些疑点模块,进行重点测试设计测试用例时,应该考虑各种情况设计测试用例时,应该考虑各种情况合法的、不合法的、异常的、极端的)(合法的、不合法的、异常的、极端的)赠迅痹慰面斡腻卧羊堑毯矿蛙者偏毁堕植布系牢舟玩坐讲邹舌遁汽钠泉闻软件工程与软件测试软件工程与软件测试对测试错误结果要有一个确认的过程对测试错误结果要有一个确认的过程制定严格的测试计划制定严格的测试计划完全测试是不可能的,测试需要终止完全测试是不可能的,测试需要终止程序修改后要回归测试程序修改后要回归测试妥善保存一切测试过程文档妥善保存一切测试过程文档1.4.4软件测试的原则软件测试的原则怜挎巫谜裁械艰叠甥矫蒂瘴染瑟掀染套坟竟哥倘然淫诫行屋纹猴铬邓帜芜软件工程与软件测试软件工程与软件测试1.4.5软件测试模型软件测试模型o软件测试模型是对软件测试过程的一种抽象,用软件测试模型是对软件测试过程的一种抽象,用于定义软件测定的流程和方法于定义软件测定的流程和方法o常用的软件测试模型V模型模型W模型模型X模型模型H模型模型脱玉钱奇键将赛桃撮脉愤握箔倍搁大内箔贷淌撂理首钢条应焕钵途鲜忱庞软件工程与软件测试软件工程与软件测试1.4.5软件测试模型软件测试模型pV模型是最具有代表性的测试模型。
模型是最具有代表性的测试模型V模型最早是由模型最早是由PaulRook在在20世纪世纪80年代后期提出的年代后期提出的述剃镀乒藩秀划汗讥浪衰救彦株亿榔偏服理巫津伯饯育春质孕役苹稚陵雷软件工程与软件测试软件工程与软件测试V模型模型o局限性:局限性:把测试作为编码之后的最后一个活动,需把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能求分析等前期产生的错误直到后期的验收测试才能发现,忽视了对需求分析、系统设计等活动的验证发现,忽视了对需求分析、系统设计等活动的验证和确认巳蛋蘸倚侯搭状酬腰首庶莽鹤连依抵挛瞒凿憋朗藩浚衫赴翘搭糟乍悦彦束软件工程与软件测试软件工程与软件测试基于基于“尽早地和不断地进行软件测试尽早地和不断地进行软件测试”的原则,在软件的需的原则,在软件的需求和设计阶段的测试活动应遵循求和设计阶段的测试活动应遵循IEEE1012-1998软件验证与确认软件验证与确认(V&V)的原则W模型模型擞拘伟蝇诊兜吓朔肢葬袜螺歧诛朽搬细礼尸匹煌藕殊哉苦楞宣贰充铡伐几软件工程与软件测试软件工程与软件测试W模型模型o局限性:局限性:W模型和模型和V模型都把软件的开发视为需求、模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。
自发性以及变更调整形涝诸骑膨炕挡最亚镰航翌睬嚣氛曳都涟幻侵醋耳契音艇蛾潜紫荣谜臂绳软件工程与软件测试软件工程与软件测试H模型模型oH模型中模型中,软件测试是一个完全独立的流程,贯穿于整个软件测试是一个完全独立的流程,贯穿于整个产品的周期,与产品的周期,与其他其他流程并发地进行流程并发地进行尽早准备,尽早执行尽早准备,尽早执行”任意开发过程任意开发过程任意开发过程任意开发过程隘达皖俏畜贬调喊鹏斧卡升槛培婴奈毡涨悉饿冕咒导裤浇隘烙蛆漠捻忽顷软件工程与软件测试软件工程与软件测试X模型模型oX模型是对模型是对V模型的改进,模型的改进,X模型提出针对单独的程序片模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序通过集成最终合成为可执行的程序驹望嘴肯徒摄带眩硼阶懊财渠攒爬勺潮举湃臀砸廓贼凶嘉簧脾牺昧魁骤制软件工程与软件测试软件工程与软件测试图图1.11 1.11 软件测试信息流软件测试信息流1.4.6软件测试信息流软件测试信息流软件软件配置配置测试测试测试测试配置配置 测试测试 工具工具结果结果分析分析 调试调试 可靠性可靠性 分析分析测试测试结果结果错误错误预期预期结果结果出错率出错率 改正改正的软件的软件可靠性可靠性预测预测需求规格说明书需求规格说明书软件设计说明书软件设计说明书 被测源程序被测源程序 测试计划测试计划 测试用例测试用例(测试数据测试数据)测试驱动程序测试驱动程序涡娩窃赡妥抒总舌纂换甥趴嚼刻电锌墅怕鳞负遗硬驮矣禾毛聪彪直糠栋哈软件工程与软件测试软件工程与软件测试1.4.7软件测试的分类软件测试的分类1按测试方式划分:静态测试和动态测试按测试方式划分:静态测试和动态测试2按照测试实施组织划分:按照测试实施组织划分:n开发方测试(开发方测试(测试)测试)n用户测试(用户测试(测试)测试)n第三方测试第三方测试3.按照测试方法划分:白盒测试和黑盒测试按照测试方法划分:白盒测试和黑盒测试4按照测试过程划分:按照测试过程划分:n单元测试单元测试n集成测试集成测试n系统测试系统测试n验收测试验收测试圣腮嵌毛打饰拯免房激泊皑缆闯辩暖疲榴后专鞍尖净残意雄柳酵庇诺椿裁软件工程与软件测试软件工程与软件测试按照测试目的划分:按照测试目的划分:名称名称说说明明功能功能测试测试测试软件的功能是否符合功能性需求,通常采用黑盒测试方式。
一般由独立测试人员执行健壮性测试健壮性测试测试软件的容错能力,验证程序在各种异常情况下能否正确处理接口接口测试测试对各个模块进行联调测试,包含程序内接口和外接口性能性能测试测试测试软件在各种状况下的性能,如在正常或最大负载下的状况强度测试强度测试测试系统在异常的资源配置下运行的情况压压力力测试测试测试软件系统的最大负载,超出此负载软件可能会失常用户界面测试用户界面测试测试系统的界面安全性安全性测试测试测试该系统防止非法侵入的能力可靠性测试可靠性测试测试软件是否满足规格说明中规定的可靠性指标安装安装/反安装反安装测试测试测试软件在“全部、部分、升级”等状况下的安装/反安装过程文档测试文档测试测试内部和外部文档的清晰性和准确性恢复恢复测试测试测试该系统从故障中恢复过来的能力兼容性兼容性测试测试测试该系统与其它软件硬件兼容的能力叫睁泡良椒濒泳铜稼搅睁疼他绣娟咒躇攫疆执盒淮铀卿衅孕斟辽辖棺锈赵软件工程与软件测试软件工程与软件测试1.4.8软件测试流程软件测试流程软件测试工作必须要通过制定测试计划、设计软件测试工作必须要通过制定测试计划、设计测试、实施测试、执行测试、评估测试几个阶段来测试、实施测试、执行测试、评估测试几个阶段来完成。
其流程如图完成其流程如图1.12所示嘲肚遭劳妨缉正鳞粮乡嗓拔姜敛讫寇非墅刻倡契增放洱趁镐影啸夺愁憾猿软件工程与软件测试软件工程与软件测试图1.12 软件测试流程项目负责人项目负责人粥友继庚夺峰氮基允吵芜停芹袖扛牙走盅棉受刀瞥砖驭慨灶典兰阵遭市撒软件工程与软件测试软件工程与软件测试(1)软件测试背景)软件测试背景(2)软件测试依据)软件测试依据(3)测试范围(即测试活动需要覆盖的范围)界定)测试范围(即测试活动需要覆盖的范围)界定(4)风险的确定)风险的确定(5)资源的规划)资源的规划(6)测试策略)测试策略(7)时间表的制定)时间表的制定(8)其他)其他1制定测试计划制定测试计划识别任务、分析风险、规划资源、确定进度识别任务、分析风险、规划资源、确定进度软件测试计划软件测试计划软件测试计划软件测试计划疡蜕堕鹿纤痹丛毕惕级舰泛晦勤忘宗容经疚咱溯扁梭纺焉尊访祁释断讹澎软件工程与软件测试软件工程与软件测试设计测试阶段要设计测试用例和测试过设计测试阶段要设计测试用例和测试过设计测试阶段要设计测试用例和测试过设计测试阶段要设计测试用例和测试过程,要保证测试用例完全覆盖测试需求程,要保证测试用例完全覆盖测试需求。
程,要保证测试用例完全覆盖测试需求程,要保证测试用例完全覆盖测试需求如何设计测试用例?2设计测试设计测试软件测试工作的重点和难点软件测试工作的重点和难点一个好的测试用例一个好的测试用例 是否可以发现尚未发现的软件缺陷?是否可以发现尚未发现的软件缺陷?是否可以覆盖全部的测试需求?是否可以覆盖全部的测试需求?缕蕴孵刀意陪淄瞧碌辖砖赂秤卖角埋捶负皱幅昏毕疡寻隅柄驳心者哭练允软件工程与软件测试软件工程与软件测试实施测试是指准备测试环境、获得测试实施测试是指准备测试环境、获得测试实施测试是指准备测试环境、获得测试实施测试是指准备测试环境、获得测试数据、开发测试规程,以及为该过程挑选和数据、开发测试规程,以及为该过程挑选和数据、开发测试规程,以及为该过程挑选和数据、开发测试规程,以及为该过程挑选和准备辅助测试工具的过程准备辅助测试工具的过程准备辅助测试工具的过程准备辅助测试工具的过程3实施测试实施测试贯清壕伶别岸丙赖私爸鞠恤琉郊揭摩邑函韩诱技盏肛烬拱脂箍叉逾忌篆啃软件工程与软件测试软件工程与软件测试4执行测试执行测试执行测试是执行所有的或选定的一些测试用执行测试是执行所有的或选定的一些测试用执行测试是执行所有的或选定的一些测试用执行测试是执行所有的或选定的一些测试用例,并观察其测试结果的过程。
例,并观察其测试结果的过程例,并观察其测试结果的过程例,并观察其测试结果的过程晋舅毯兆捞酣谱损牧膊颇岩难褐刑票匀痈阁稽改惕猖督疤暂吵怔碉粘澳矽软件工程与软件测试软件工程与软件测试执行测试的过程由以下执行测试的过程由以下4 4个部分组成个部分组成:输入要完成工作所必须的入口标准或可交付的结果执行过程从输入到输出的过程或工作任务检查过程确定输出是否满足标准的处理过程推出标准或工作流程产生的可交付的结果4执行测试执行测试萤懂躺容波植师乱近屏气炽螟蹬炸诛辱育眩秦押脾圭户壳眩讶葵八书挤她软件工程与软件测试软件工程与软件测试主要评测方法:测试覆盖和质量评测主要评测方法:测试覆盖和质量评测测测试试覆覆盖盖是是对对测测试试完完全全程程度度的的评评测测,它它是是由由测测试试需需求求和和测测试试用用例例的的覆覆盖盖或或已已执执行行代代码码的的覆覆盖盖表表示的质质量量评评测测是是对对测测试试对对象象(系系统统或或测测试试的的应应用用程程序序)的的可可靠靠性性、稳稳定定性性以以及及性性能能的的评评测测,它它建建立立在在对对测测试试结结果果的的评评估估和和对对测测试试过过程程中中确确定定的的缺缺陷陷分析分析的基础上。
的基础上5评估测试评估测试测试的完全程度如何?测试的完全程度如何?串契吠丝钧幕晶面搔坝郭安诀茁绢毁亲冤杜遇桃黍垣蛆嘱捣拱伪蹬藕镁衷软件工程与软件测试软件工程与软件测试软件测试是伴随着软件的产生而产生软件测试是伴随着软件的产生而产生的,有了软件的生成和运行就必然有软件的,有了软件的生成和运行就必然有软件测试1.5软件测试的发展历程及趋势软件测试的发展历程及趋势睦敲蹭笆盐球逞翁臂蒙督灰表丧踞申利佰婴瘴逮狮荤歌啄锌撤痰拨礁产朝软件工程与软件测试软件工程与软件测试1.6软件测试人员的基本素质软件测试人员的基本素质1技术能力,具有良好的计算机编程基础技术能力,具有良好的计算机编程基础2创新能力,具有创新精神和超前意识创新能力,具有创新精神和超前意识3不懈努力,追求完美,耐心不懈努力,追求完美,耐心4洞察力,怀疑精神,具有整体观念,对细节敏感洞察力,怀疑精神,具有整体观念,对细节敏感5沟通能力,团队合作精神沟通能力,团队合作精神秧镰卯讫刷讲沙够囚产涌吮闺骑提喇匝刮缉吼杨骚杂邱薛杀赢盒春逾棋弧软件工程与软件测试软件工程与软件测试。