版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试定义(dìngyì)的两面性
评价一个程序或系统的特性或能力并确定是否达到预期的结果测试是为发现错误而针对某个程序或系统的执行过程软件测试正向思维-验证软件正常工作逆向思维-假定软件有错误在设计规定的环境下运行软件的所有功能,直至全部通过。寻找容易犯错误的地方(dìfāng)和系统的薄弱环节,试图破坏系统,直至找不出问题。共六十一页软件测试的定义(dìngyì)SWEBOK3.0的定义
:从一个通常是无限的执行域(集合)中选择合适的、有限的测试用例,对程序(chéngxù)所期望的行为进行动态验证的活动过程。共六十一页1.4软件测试和软件开发的关系(guānxì)让人误解(wùjiě)的瀑布模型需求分析和定义系统设计详细功能设计编码单元测试功能测试系统测试验收测试测试用户需求验证系统非功能特性验证功能验证代码验证构建过程验证过程共六十一页软件(ruǎnjiàn)质量
的内涵IEEE:
质量是系统、部件或过程满足明确需求客户或用户需要或期望的程度不同软件质量:软件产品具有(jùyǒu)满足规定的和隐含的与需求能力有关的全部特征和特性(IEEESTD729)软件质量:软件产品满足 使用要求的程度
共六十一页不同(bùtónɡ)的分类按测试的对象或范围分类,如单元测试、文档测试、系统测试等)按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等根据测试过程中被测软件是否被执行,分为静态测试和动态测试根据是否针对系统的内部结构和具体实现(shíxiàn)算法来完成测试,可分为白盒测试和黑盒测试共六十一页2.4静态测试(cèshì)和动态测试(cèshì)根据程序是否运行,测试分为静态测试和动态测试;静态测试包括对软件产品的需求和设计规格(guīgé)说明书的评审、对程序代码的审查以及静态分析等;动态测试通过真正运行程序发现错误,通过观察代码运行过程来获取系统行为、变量实时结果、内存、堆栈、线程以及测试覆盖度等各方面信息,来判断系统是否存在问题,或者通过有效的测试用例,对应的输入输出关系来分析被测程序的运行情况,以发现缺陷。SWEBOK3.0中把静态测试内容放在“质量管理”模块中。共六十一页2.4主动测试(cèshì)和被动测试(cèshì)测试人员被测试对象发送接收接收/检查发送/响应主动测试被测试对象运行环境发送接收/响应测试人员接收/监控被动测试共六十一页2.5黑盒测试(cèshì)和白盒测试(cèshì)功能测试数据驱动(qūdònɡ)测试结构测试逻辑驱动测试
客户需求事件驱动输入输出共六十一页功能测试(黑盒)完全不考虑程序内部结构和内部特性的情况下,测试人员针对软件直接进行测试,检查系统功能是否按照需求规格说明书的规定正常(zhèngcháng)使用、是否能适当地接收输入数据而输出正确的结果,检查相应的文档是否采用了正确的模板、是否满足规范要求。发现的缺陷类型:有错误的功能或遗漏了某项功能;不能正确接收输入数据,输出错误结果;功能操作逻辑不合理、不够方便;界面出错、扭曲或不美观;安装过程中出现问题,安装步骤不清晰、不够灵活;系统初始化问题。共六十一页结构(jiégòu)测试(白盒)已知产品内部工作过程,清楚最终生成软件产品的计算机程序结构及语句,按照程序内部结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检查程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。白盒测试原则在执行测试时,先考虑各个分支被覆盖(fùgài);再考虑完成所有逻辑条件分别为真值和假值的测试;如果有更高质量要求,测试对象流程图中所有独立路径至少被运行一次;检查内部数据结构,注意上下文的影响,以确保其测试的有效性。共六十一页黑盒与白盒比较(bǐjiào)功能测试的置信,结构(jiégòu)测试的度量特点测试依据方法举例黑盒测试不给程序需求规格说明等价类划分白盒测试给出程序程序逻辑覆盖共六十一页测试阶段(SDLC)共六十一页软件测试阶段(jiēduàn)输入和输出阶段输入输出需求分析需求定义,市场分析文档,相关技术文档市场需求分析会议记要,功能设计,技术设计设计审查市场需求文档,技术设计文档
测试计划,测试用例功能验证代码完成文件包,功能详细设计说明书最终技术文档完整测试用例,完备的测试计划,缺陷报告,功能验证测试报告系统测试代码修改后的文件包完整测试用例,完备的测试计划
缺陷报告缺陷状态报告项目阶段报告确认测试代码冻结文件包确认测试用例缺陷状态报告缺陷报告审查版本审查版本发布代码发布文件包测试计划检查清单当前版本已知问题的清单版本发布报告共六十一页需求(xūqiú)和设计审查测试人员参与产品需求分析和系统设计,认真阅读(yuèdú)有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可测试性等共六十一页单元测试单元测试的对象是程序系统中的最小单元---类、函数、模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块。单元测试一般由编程人员和测试人员共同完成,而以开发人员为主单元测试包括代码(dàimǎ)评审,代码(dàimǎ)评审可以发现程序50%~70%代码的缺陷。共六十一页集成(jíchénɡ)测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来(qǐlái)同时进行测试,主要目标是发现与接口有关的模块之间问题两种集成方式:一次性集成方式和渐增式集成方式。共六十一页功能测试功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有(jùyǒu)的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用。共六十一页系统(xìtǒng)测试系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员(rényuán)等,在实际运行环境下进行一系列的测试,包括用户界面、各种操作、不同的数据输入输出、存储测试、负载测试、灾难恢复测试、安全测试、可靠性测试和性能测试等。共六十一页验收测试(cèshì)
&安装测试验收测试(cèshì)的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能及其他特性如同用户所合理期待的那样。验收测试一般要求在实际的用户环境上进行,并和用户共同完成。Αlpha(α)测试和Beta(β)测试共六十一页进一步彰显(zhānɡxiǎn)全过程测试共六十一页4.1.3W模型(móxíng)共六十一页4.1.2TMapTMap(TestManagementApproach,测试管理方法)是一种结构化的、基于风险策略的测试方法体系,目的能更早地发现缺陷,以最小的成本、有效地、彻底地完成测试任务,以减少软件发布后的支持成本。TMap所定义的测试生命周期由计划和控制、准备、说明(shuōmíng)、执行和完成等阶段组成参考(cānkǎo):/Home/共六十一页TMap描述(miáoshù)的生命周期模型共六十一页TMap基本(jīběn)内容一个基于风险的测试方法基于风险的测试策略,来有效的分配测试投入在测试规划的各个时间(shíjiān)点进行商业投入共六十一页TMap三大(sāndà)基石与软件开发生命周期一致的测试活动生命周期(L);坚实的组织融合(O)正确的基础设施(jīchǔshèshī)和工具(I)可用的技术(T)流程人/项目测试环境技术共六十一页TMapNEXT之背景(bèijǐng)测试的独立性
和开发更紧密(jǐnmì)的融合更多种类的测试组织,包括测试工厂BDTM,BusinessDrivenTestManagement新的测试方法、技术,特别测试设计方法测试的基础设施、支持流程测试估算、风险分析增加测试类型共六十一页TMapNEXT/en/tmap-next业务驱动测试管理方法BDTM结构化的测试流程完整(wánzhěng)的工具包自适应的测试方法共六十一页单元测试的定义(dìngyì)定义
单元测试是对软件基本的组成单元进行(jìnxíng)独立的测试时机
单元测试和编码是同步进行,但在TDD中,强调测试在先,编码在后。单元测试一般由开发人员完成,QA人员辅助.概念模块、组件、单元
共六十一页单元测试的目标(mùbiāo)目标:单元模块被正确编码信息能否正确地流入和流出单元在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,全局变量在单元中的处理和影响为限制数据加工而设置的边界处,能否正确工作单元的运行能否做到满足特定(tèdìng)的逻辑覆盖共六十一页任务1:模块独立执行(zhíxíng)路径测试检查每一条独立执行路径的测试,并保证每条语句被至少执行一次。Checklist:
误解或用错了算符优先级混合(hùnhé)类型运算变量初值错精度不够表达式符号错其它共六十一页任务(rènwu)2:局部数据结构测试检查局部数据结构完整性Checklist:
不适合或不相容的类型说明变量无初值变量初始化或默认值有错不正确(zhèngquè)的变量名或从来未被使用过出现上溢或下溢和地址异常其它共六十一页任务(rènwu)3:模块接口测试检查模块接口是否正确checklist:输入的实际参数与形式参数是否一致(个数、属性、量纲)调用其他模块的实际参数与被调模块的形参是否一致。
个数、属性、量纲全程变量的定义在各模块是否一致。外部输入、输出文件(wénjiàn)、缓冲区、错误处理其它共六十一页任务(rènwu)4:单元边界条件测试检查(jiǎnchá)临界数据处理的正确性Checklist:
普通合法数据的处理。普通非法数据的处理。边界值内合法边界数据的处理。边界值外非法边界数据的处理。其它共六十一页任务(rènwu)5:单元容错测试预设的各种出错处理是否正确有效。Checklist:
输出的出错信息难以理解记录的错误与实际不相符异常(yìcháng)处理不当未提供足够的定位出错的信息其它共六十一页任务6:内存(nèicún)分析内存泄漏会导致系统运行的崩溃;测量内存的使用情况,了解程序内存分配的真实情况;系统崩溃前发现内存泄漏错误;发现内存分配错误,并精确显示发生(fāshēng)错误时的上下文情况,指出发生(fāshēng)错误的原由。共六十一页驱动程序(chéngxù)和桩程序(chéngxù)运行单元程序有时需要基于被测单元的接口,开发相应(xiāngyīng)的驱动模块和桩模块。驱动模块(drive):对底层或子层模块进行测试所编写的调用这些模块的程序。桩模块(stub):对顶层或上层模块进行测试时所编写的替代下层模块的程序。共六十一页集成测试(cèshì)的模式渐增式测试模式与非渐增式测试模式非渐增式测试模式:先分别测试每个模块(mókuài),再把所有模块(mókuài)按设计要求放在一起结合成所要的程序,如大棒模式。渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。各自的优缺点共六十一页渐增式测试模式需要编写的软件较多,工作量较大,而非渐增式测试模式开销小。渐增式测试模式发现模块间的接口错误早;而非渐增式测试模式晚。非渐增式测试模式发现错误,较难诊断;而使用渐增式测试模式,如果发生错误则往往和最近(zuìjìn)加进来的那个模块有关。渐增式测试模式测试更彻底。渐增式测试模式需要较多的机器时间。使用非渐增式测试模式,可以并行测试。优缺点共六十一页大棒集成(jíchénɡ)方法(Big-bangIntegration)采用大棒集成方法(fāngfǎ),先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试。因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。共六十一页自顶向下和自底向上集成(jíchénɡ)方法共六十一页自顶向下法(Top-downIntegration)自顶向下法的主要(zhǔyào)优缺点共六十一页优缺点:优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够在早期发现上层模块的接口错误。缺点:需要桩程序,可能遇到于此想联系的测试困难,低层关键模块中的错误发现的比较晚,而且用这种方法在早期不能充分开展(kāizhǎn)人力。共六十一页自底向上法
Bottom-upIntegration
自底向上法的主要(zhǔyào)优缺点共六十一页优缺点:
与自顶向下模式(móshì)刚好相反共六十一页三明治集成(jíchénɡ)方法(SandwichIntegration)采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要(xūyào)写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。共六十一页改善的三明治集成(jíchénɡ)方法改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到(dédào)单独的测试,使测试进行得比较彻底。共六十一页几种集成方法性能(xìngnéng)的比较自底向上自顶向下混合策略大棒三明治改进三明治集成早早早晚早早基本程序能工作时间晚早早晚早早需要驱动程序是否是是是是需要桩程序否是是是是是工作并行性中低中高中高特殊路径测试容易难容易容易中等容易计划与控制容易难难容易难难共六十一页系统(xìtǒng)测试系统测试:将经过集成测试后的软件,作为计算机系统的一部分,与计算机硬件、某些支持软件、数据和平台等系统元素结合起来,在真实运行环境下对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题,保证系统的正常运行。目的:充分运行系统,验证整个系统是否满足功能和非功能性的质量(zhìliàng)需求。非功能性测试是系统测试中更为关键的任务!共六十一页回归测试的目的所做的修改达到了预定的目的,如错误得到了改正,新功能(gōngnéng)得到了实现,能够适应新的运行环境等;不影响软件原有功能的正确性。6.2回归(huíguī)测试一旦程序某些区域被修改了,就可能影响其它区域,导致受影响的区域出现新的缺陷(回归缺陷)。如果这时没有回归测试,产品就带着这样的回归缺陷被发布出去了,造成严重后果。回归测试就是为了发现回归缺陷而进行的测试。共六十一页什么是性能(xìngnéng)测试?性能测试(cèshì)(performancetest)就是为了发现系统性能问题或获取系统性能相关指标而进行的测试。一般在真实环境、特定负载条件下,通过工具模拟实际软件系统的运行及其操作,同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能状况。共六十一页性能测试(cèshì)目标
Performance
Testing获取系统性能某些指标(zhǐbiāo)数据为了验证系统是否达到用户提出的性能指标发现系统中存在的性能瓶颈,优化系统的性能共六十一页压力/负载(fùzài)测试压力测试(cèshì)(Stresstest),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。共六十一页两种负载(fùzài)类型
“Flat”测试:
对于一次给定(ɡěidìnɡ)的测试,应该取响应时间和吞吐量的平均值。精确地获得这些值的唯一方法是一次加载所有的用户,然后在预定的时间段内持续运行。虚拟用户的数量共六十一页两种负载(fùzài)类型
Ramp-up测试:
用户是交错上升的(每几秒增加一些新用户)。ramp-up测试不能产生精确和可重现的平均值,这是因为由于用户的增加是每次一部分,系统的负载在不断地变化。其优点是,可以看出随着系统负载的改变,测量值是如何改变的
据此选择(xuǎnzé)要运行的flat测试的范围。共六十一页安全性测试(cèshì)
想方设法截取或破译口令;专门开发软件来破坏系统的保护机制;故意导致系统失败,企图趁恢复之机非法进入;试图(shìtú)通过浏览非保密数据,推导所需信息等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值,此时非法侵入者已无利可图。软件安全性测试就是检验系统权限设置有效性、防范非法入侵的能力、数据备份和恢复能力等,设法找出上述各种安全性漏洞共六十一页功能性测试(cèshì)
vs.安全性测试功能性测试:软件做它应该做的事,验证正确的输出不正确的输出/行为/缺陷(Bug)安全性测试:软件不做它不应该做的事,应用(yìngyòng)输入验证,没有不安全的事情发生在测试软件系统中对危险防止和危险处理设施进行的测试,以验证其是否有效
安全性缺陷(漏洞,脆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临猗煤改电合同范本
- 二零二四年度广告策划与媒体投放服务合同
- 2024版房屋租赁合同范本with详细条款2篇
- 学校器材合同范本
- 专业技术培训的工程设计和新材料研发创业创新考核试卷
- 信息安全与网络防护技巧考核试卷
- 橡胶制品行业的市场竞争与价格战考核试卷
- 挖机场地租赁合同范本
- 2024年度艺术展览馆展品征集与委托合同
- 2024年度软件开发与定制合同(以实际软件名称为合同标的)3篇
- 《国家安全法》 详解课件
- 最新钠冷快堆中的结构材料课件
- 气切套管(金属)的护理操作考核评价标准
- 海康威视内部培训教材1
- DB22T 5016-2019 市政工程资料管理标准
- 广州市重点公共建设项目管理中心材料设备品牌及
- 山西省建筑工程工程施工资料管理规程
- 大理大理英文介绍课件
- 外来手术器械及植入物管理共47张课件
- 板蓝根颗粒工艺规程
- 安全设施拆除停用资料
评论
0/150
提交评论