第2章软件测试基础课件

上传人:仙*** 文档编号:241612206 上传时间:2024-07-09 格式:PPT 页数:56 大小:455KB
返回 下载 相关 举报
第2章软件测试基础课件_第1页
第1页 / 共56页
第2章软件测试基础课件_第2页
第2页 / 共56页
第2章软件测试基础课件_第3页
第3页 / 共56页
点击查看更多>>
资源描述
第2章 软件测试基础本章主要内容n21 软件测试的含义n22 软件测试模型n23 软件测试过程n24 软件测试基本理论n25 软件质量n26 软件可靠性21 软件测试的含义n1983年IEEE(国际电子电气工程师协会)提出的软件工程标准术语中给软件测试下的定义是:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。21 软件测试的含义n1990年IEEE再次给软件测试下的定义是:在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价;分析某个软件项以发现现存的和要求的条件之差别(即错误)并评价此软件项的特征。n软件测试的目的:最少的人力+最少的时间=发现潜在的缺陷或者错误软件测试不只是软件测试人员的工作,也是开发人员和使用者的工作。211 软件测试的发展n软件测试随着软件的诞生而同时出现了。只不过当时的测试只是我们现在所说的调程序,只是为了证明程序可以正常运行而已。n20世纪50年代后期-60年代,虽然有高级语言的诞生,但是仍然受到硬件的制约,处于次要位置;n20世纪70年代以后,随着计算机处理速度的提升,存储器容量的增加,是软件的地位有所上升,72年北卡罗纳大学举行软件会议,最终通过一篇文章确定了软件测试是软件中的一种研究方向。n20世纪90年代后,计算机技术日趋成熟,软件应用范围扩大,硬件技术趋于成熟,故障减少,软件技术故障成为主要因素,每年找软件故障耗费将近600亿美元。n软件测试也变得被重视起来,不再是一个基于程序代码进行的活动,而是一个基于整个软件周期的质量控制活动,贯穿于开发软件的各个阶段。212 软件测试的基本原则软件测试的基本原则有如下几点:n1所有的软件测试都应该追溯到用户需求n2尽早地和不断地进行软件测试n3程序员应该避免检查自己的程序n4不可能完全的测试n5应该充分注意测试中的群集现象n6合理安排测试计划n7测试时既要考虑合法情况,也要考虑非法情况n8对缺陷结果要进行一个确认过程n9妥善保存所有文档。2尽早地和不断地进行软件测试(图2-1软件缺陷放大模型)IBM的研究结果表明,缺陷存在放大趋势,因此,发现问题越早,解决问题的代价就越小。需求阶段的缺陷概要设计阶段缺陷详细设计阶段缺陷代码阶段的缺陷放大n倍放大n2倍放大n3倍3程序员应该避免检查自己的程序n(1)程序员轻易不会承认自己写的程序有错误;n(2)程序员测试思路有局限性,在做测试时很容易受到编程思路的影响;n(3)多数程序员没有严格正规的职业训练,缺乏专业测试人员的意识;n(4)程序员没有养成错误跟踪和回归测试的习惯。4不可能完全的测试n(1)不可能测试程序对所有可能输入的响应;n(2)不可能测试到程序每一条有可能的的执行路径;n(3)无法找出所有的设计错误;n(4)不能采用逻辑来证明程序的正确性。n如果你打算测试一个计算器程序的功能,你认为需要进行多少次输入?不可能进行完全的测试p结论是不计其数1.整型:从 1+1 到 999999999999999999999999999999+9999999999999999999999999999992.小数:1.0+0.1,1.0+0.2等等3.键盘上的任何一种组合4.为乘法和除法运算重复上面的操作n结论是:51+52+53+510=6.1*107,需要1分钟左右的时间n如果循环次数为20次,100次时,结果又如何?n结论是:循环20次,需要约16000小时,循环100次则大约需要2.4*1048年不可能进行完全的测试p左图是具有某程序的流程图,假设循环10次,请计算一下有多少条程序执行通路?假设由图中得到的所有路径都是可执行路径,执行一次循环大约需要10微秒(奔腾4 1.7G),且一年365天每天24小时不停机,请回答:如果循环次数为10的话,遍历图中所有路径需要多长时间?5.应该充分注意测试中的群集现象n(1)对话框中的某个控件功能不起作用,可能其他控件的功能也不起作用;n(2)某个文本框不能正确显示,则其他文本框也有可能显示问题;n(3)联机帮助某段文字的翻译包含了很多错误,与其相邻的上下段的文字可能也包含很多的语言质量问题;n(4)安装文件某个对话框的“上一步”或“下一步”按钮被截断,则这两个按钮在其他对话框中也可能被截断;n(5)在一段程序中发现了某些不良的编写程序习惯,这个程序员其他程序也有可能类似的问题,或者整个团队都有类似问题。6合理安排测试计划n合理安排测试计划有助于工作顺利进行,对于测试前期需要准备周末,严谨,科学,准确的工作安排,避免测试的随意性,测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。7测试时既要考虑合法情况,也要考虑非法情况n合法的输入和不合法的输入n边界条件n极端状态n意外状态8.对缺陷结果要进行一个确认过程nA测试出来的结果,一定要由B确认n严重的错误需召开评审会议讨论与分析,对测试结果进行严格地确认9.妥善保存所有文档n测试计划n测试用例n出错统计n最终分析报告2.1.3软件测试与软件开发的关系n1项目规划阶段:负责整个测试阶段的监控。n2需求分析阶段:确定测试需求分析,制定系统测试计划。n3概要设计和详细设计阶段:制定集成测试计划和单元测试计划。n4编码阶段:开发相应的测试代码或测试脚本。n5测试阶段:实施测试,并提交相应的测试报告。22 软件测试模型软件测试技术的发展过程中出现了很多的模型,最据代表性:V模型、W模型、H模型、X模型和前置模型等五种模型。n1V模型n2W模型n3H模型n4X模型n5前置模型1V模型nV模型是由Paul Rook在20世纪80年代后期提出,旨在改善软件开发的效率和效果。概要设计详细设计编码系统测试集成测试单元测试需求分析W模型nV模型的局限性在于没有明确的说明早期的测试。在V模型中增加软件各开发阶段应同步进行的测试,演化为W模型。nW模型更科学,是V模型的发展,测试伴随整个生命周期,而且测试对象不仅仅是程序,需求和功能设计都要测试。测试与开发同步进行,从而有利于尽早发现问题。W模型缺点n不支持迭代,不能自发性调整;n只是在V模型基础上增加了开发阶段的同步测试;H模型nH模型将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰的体现出来。nH模型反映了:n(1)软件测试不仅仅指测试的执行,还包括其他活动;n(2)软件测试是一个独立的流程,贯穿n整个生命周期,与其它流程并发执行;n(3)软件测试要尽早准备,尽早执行;n(4)软件测试是根据被测物的不同而分层次进行的,不同层次的测试活动可以按照某个次序先后进行的,但可能是反复的。n在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发执行。4.X模型nX模型也是对V模型的改进,X模型提出对单独程序片段进行互相分离的编码和测试;n对测试造成的人力物力财力浪费大,对测试员的熟练程度要求高。5.前置模型n前置模型是将测试和开发紧密结合的一个模型,该模型提供了轻松的方式,可以使开发项目加快速度。n(1)开发和测试相结合n(2)对每一个交付内容进行测试6.几种模型比较nV模型2.3 软件测试过程n软件测试过程的先后顺序可以分为:单元测试、集成测试、确认测试、系统测试、验收测试等阶段。2.3 软件测试过程1单元测试n单元测试(Unit Testing),又称模块测试。在软件测试的开始阶段进行的测试,是软件开发过程中要进行的最低级别的测试活动,或者说是针对软件设计的最小单位程序模块进行的测试工作。单元测试特征:n(1)单元测试是针对软件设计的最小单位程序模块进行;n(2)单元测试的执行率100%;n(3)单元测试提升了软件系统的可信度;n(4)单元测试包括对可能出现问题的代码进行排查;n(5)单元测试准确反映代码的变化便于后期维护。2.3 软件测试过程2集成测试n集成测试(Integration Testing),也称为组装测试或联合测试。集成就是把多个单元组合起来形成更大的单元。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。集成测试n非渐增式集成先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序;n渐增式集成n把下一个要测试的模块同已经测试好的模块相结合起来进行测试,然后再把下一个待测的模块结合起来进行测试,同时完成单元测试和集成测试。2.3 软件测试过程3确认测试n确认测试(Validation Testing)又称有效性测试或合格性测试。其目的是对软件产品进行评估以确定其是否满足软件需求的过程。2.3 软件测试过程4系统测试n系统测试(System Testing)是针对整个产品系统进行的测试。系统测试的方法很多,如:性能测试、压力测试、容量测试、安全性测试、可靠性测试、健壮性测试、兼容性测试、可用性测试、安装性测试、容错性测试、配置测试、冒烟测试、GUI测试、文档测试、网站测试、恢复性测试、协议测试等等。n(1)测试计划阶段n(2)测试用例分析和设计阶段n(3)测试实施阶段n(4)测试执行阶段n(5)分析评估阶段2.3 软件测试过程5验收测试n验收测试(Verification Testing)即通过测试发现错误,报告异常情况、提出批评意见,然后再进行改错和完善、并修正。n通过测试发现错误,报告异常情况,提出批评意见,然后进行改错和完善,并修正。n验收测试目的:向用户表明所开发的软件系统能够像用户所预期的那样工作。n验收主要任务:n(1)明确规定验收测试通过的标准;n(2)确定验收测试方法;n(3)确定验收测试的组织和可利用的资源;n(4)确定测试结果的分析和方法;n(5)制定验收计划并进行评审;n(6)设计验收测试的测试用例;n(7)审查验收测试的准备工作;n(8)执行验收测试;n(9)分析测试结果,决定是否通过验收。n验收测试在测试项目小组的协助下,由用户代表执行,测试人员在验收测试阶段将协助用户表进行测试,并向用户解释用例的结果。24 软件测试基本理论n241 软件测试用例设计n242 软件测试方法n243 软件测试的误区测试用例是什么p定义定义n针对被测试项的测试输入,执行条件和预期结果的集合(是挑选出来的具有代表性的输入组合)n挑选输入组合的方法就是测试用例设计方法n测试用例是软件测试的灵魂,体现着软件测试工程师的职业价值n测试用例可以用结构化自然语言描述,也可以用编程语言实现 241 软件测试用例设计n1测试用例的概念测试用例(Test Case)指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。n2测试用例的重要性n3.测试用例的设计方法n4测试用例设计的误区242 软件测试方法n1静态测试n2动态测试n3白盒测试n4黑盒测试n5灰盒测试243 软件测试的误区n1测试与调试程序是一回事n2忽视需求阶段的参与n3软件开发完成后进行软件测试n4期望短期增加测试投入,迅速达到零缺陷n5规范化软件测试使项目成本增加n6期望用测试自动化代替人工劳动243 软件测试的误区n7软件测试是技术要求不高的岗位n8软件发布后如果发现问题,是软件测试人员的错n9软件测试是测试人员的事情,与程序员无关n10项目进度吃紧时少做些测试,时间富裕时再多做测试n11通过软件测试发现所有问题n12通过测试证明软件的正确性25 软件质量n251 软件质量概述n252 软件质量保证SQAn253 软件能力成熟度模型CMMn254 能力成熟度整合模型CMMI251 软件质量概述1软件质量的定义n一个软件系统的质量应该从可维护性、可靠性、可理解性、效率等多个方面全面地进行评价。251 软件质量概述2软件质量标准n1)国际标准n2)国家标准n3)行业标准n4)企业标准n5)项目规范3软件质量标准的发展过程252 软件质量保证SQAn1软件质量保证SQA的定义IEEE中对软件质量保证的定义是:质量保证是有计划和系统性的活动,它对部件和产品满足确定的技术需求提供足够的信心。n2软件质量保证SQA的目标n3对软件质量保证SQA人员的素质要求n4软件质量保证SQA工作的内容n5软件质量保证与软件测试的关系253 软件能力成熟度模型CMMCMM作为当前世界上最流行、最实用的软件生产过程的评价标准,已被国际软件产业界公认为软件企业进入国际市场的通行证。n1CMM的产生n2CMM的五个级别n初始级、可重复级、已定义级、已管理级和优化级。n3国内软件企业参与实施CMM254 能力成熟度整合模型CMMIn1CMMI的产生n2CMMI基本内容n3CMM与CMMI的区别p经常不断地学习,你就什么都知道。你知道得越多,你就越有力量pStudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMorePowerfulYouWillBe写在最后Thank You在别人的演说中思考,在自己的故事里成长Thinking In Other PeopleS Speeches,Growing Up In Your Own Story讲师:XXXXXX XX年XX月XX日
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!