




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试定义的两面性软件测试定义的两面性 评价一个程序或系统的特性或能力并确定是否达到预期的结果测试是为发现错误而针对某个程序或系统的执行过程软软件件测测试试正向思维正向思维验证软件正常工作逆向思维逆向思维假定软件有错误在设计规定的环境下运行软件的所有功能,直至全部通过。寻找容易犯错误的地方和系统的薄弱环节,试图破坏系统,直至找不出问题。软件测试的定义软件测试的定义SWEBOK3.0的定义的定义 :p从一个通常是无限的执行域(集合)中选择合适的、有限的测试用例,对程序所期望的行为进行动态验证的活动过程。1.4 软件测试和软件开发的关系软件测试和软件开发的关系让人误解的瀑布模型让人误解的瀑布模型
2、需求分析和定义系统设计详细功能设计编码单元测试功能测试系统测试验收测试测试用户需求验证系统非功能特性验证功能验证代码验证构建过程验证过程软件质量软件质量 的内涵的内涵IEEEIEEE: 质量是系统、部件或过程满足质量是系统、部件或过程满足明确需求客户或用户需要或期望的程度不同 p软件质量软件质量:软件产品具有满足规定的和隐含的与需求能力有关的全部特征和特性(IEEE STD729) p软件质量软件质量:软件产品满足使用要求的程度 不同的分类不同的分类按测试的对象或范围分类,如单元测试、文档测试、系统测试等)按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等根据
3、测试过程中被测软件是否被执行,分为静态测试和动态测试根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试2.4 静态测试和动态测试静态测试和动态测试 根据程序是否运行,测试分为静态测试和动态测试; 静态测试静态测试包括对软件产品的需求和设计规格说明书的评审、对程序代码的审查以及静态分析等; 动态测试动态测试通过真正运行程序发现错误,通过观察代码运行过程来获取系统行为、变量实时结果、内存、堆栈、线程以及测试覆盖度等各方面信息,来判断系统是否存在问题,或者通过有效的测试用例,对应的输入输出关系来分析被测程序的运行情况,以发现缺陷。 SWEBOK 3.0中把静态测试内容放在“
4、质量管理”模块中。2.4 主动测试和被动测试主动测试和被动测试测试人员被测试对象发送接收接收/检查发送/响应主动测试被测试对象运行环境发送接收/响应测试人员接收/监控被动测试2.5 黑盒测试和白盒测试黑盒测试和白盒测试功能测试功能测试数据驱动测试数据驱动测试 结构测试结构测试逻辑驱动测试逻辑驱动测试 客户需求事件驱动输入输出功能测试(黑盒)功能测试(黑盒) 完全不考虑程序内部结构和内部特性的情况下,测试人员针对软件直接进行测试,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当地接收输入数据而输出正确的结果,检查相应的文档是否采用了正确的模板、是否满足规范要求。 发现的缺陷类型: 有
5、错误的功能或遗漏了某项功能; 不能正确接收输入数据,输出错误结果; 功能操作逻辑不合理、不够方便; 界面出错、扭曲或不美观; 安装过程中出现问题,安装步骤不清晰、不够灵活; 系统初始化问题。结构测试(白盒)结构测试(白盒) 已知产品内部工作过程,清楚最终生成软件产品的计算机程序结构及语句,按照程序内部结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检查程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。 白盒测试原则 在执行测试时,先考虑各个分支被覆盖; 再考虑完成所有逻辑条件分别为真值和假值的测试; 如果有更高质
6、量要求,测试对象流程图中所有独立路径至少被运行一次; 检查内部数据结构,注意上下文的影响,以确保其测试的有效性。黑盒与白盒比较黑盒与白盒比较 功能测试的置信,结构测试的度量特点测试依据方法举例黑盒测试不给程序不给程序需求规格需求规格说明说明等价类划等价类划分分白盒测试给出程序给出程序程序程序逻辑覆盖逻辑覆盖测试阶段测试阶段(SDLC)软件测试阶段输入和输出软件测试阶段输入和输出阶阶 段段输输 入入 输输 出出 需求分析需求分析需求定义需求定义, 市场分析文档市场分析文档, 相关技相关技术文档术文档市场需求分析会议记要市场需求分析会议记要 , 功能设计功能设计, 技术设计技术设计设计审查设计审查
7、 市场需求文档市场需求文档, 技术设计文档技术设计文档 测试计划测试计划, 测试用例测试用例功能验证功能验证 代码完成文件包代码完成文件包,功能详细设计说功能详细设计说明书明书最终技术文档最终技术文档完整测试用例完整测试用例,完备的测试计划完备的测试计划, 缺缺陷报告陷报告,功能验证测试报告功能验证测试报告系统测试系统测试代码修改后的文件包代码修改后的文件包 完整测试用例完整测试用例,完备的测试计划完备的测试计划 缺陷报告缺陷报告缺陷状态报告缺陷状态报告项目阶段报告项目阶段报告确认测试确认测试代码冻结文件包代码冻结文件包确认测试用例确认测试用例缺陷状态报告缺陷状态报告缺陷报告审查缺陷报告审查版
8、本审查版本审查版本发布版本发布 代码发布文件包代码发布文件包 测试计划检查清单测试计划检查清单当前版本已知问题的清单当前版本已知问题的清单版本发布报告版本发布报告需求和设计审查需求和设计审查测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可测试性等单元测试单元测试单元测试单元测试的对象是程序系统中的最小单元-类、函数、模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是
9、否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块。单元测试一般由编程人员和测试人员共同完成,而以开发人员为主单元测试包括代码评审,代码评审可以发现程序50%70%代码的缺陷。集成测试集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题 两种集成方式:一次性集成方式和渐增式集成方式。功能测试功能测试功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用。
10、 系统测试系统测试系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括用户界面、各种操作、不同的数据输入输出、存储测试、负载测试、灾难恢复测试、安全测试、可靠性测试和性能测试等 。验收测试验收测试 &安装测试安装测试验收测试验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能及其他特性如同用户所合理期待的那样。验收测试一般要求在实际的用户环境上进行,并和用户共同完成。lpha()测试和Beta()测试进一步彰显全过程测试4.1.3 W模型4.1.2 TMappTMap (Test Manag
11、ement Approach,测试管理方法)是一种结构化的、基于风险策略的测试方法体系, 目的能更早地发现缺陷,以最小的成本、有效地、彻底地完成测试任务,以减少软件发布后的支持成本。pTMap所定义的测试生命周期由计划和控制、准备、说明、计划和控制、准备、说明、执行和完成等执行和完成等阶段组成参考: http:/ NEXT之背景p测试的独立性 和开发更紧密的融合p更多种类的测试组织,包括测试工厂pBDTM, Business Driven Test Managementp新的测试方法、技术,特别测试设计方法p测试的基础设施、支持流程p测试估算、风险分析p增加测试类型TMap NEXThttp:
12、/ 单元测试是对软件基本的组成单元进行独立的测试p时机 单元测试和编码是同步进行,但在TDD中,强调测试在先,编码在后。单元测试一般由开发人员完成,QA人员辅助.p概念 模块、组件、单元模块、组件、单元 单元测试的目标p目标: 单元模块被正确编码p信息能否正确地流入和流出单元p在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式、内容及相互关系不发生错误,全局变量在单元中的处理和影响p为限制数据加工而设置的边界处,能否正确工作p单元的运行能否做到满足特定的逻辑覆盖任务:模块独立执行路径测试检查每一条独立执行路径的测试,并保证每条语句被至少检查每一条独立执行路径的测试,并保证每条语句
13、被至少执行一次。执行一次。Checklist:p 误解或用错了算符优先级p 混合类型运算p 变量初值错 p 精度不够 p 表达式符号错 p 其它任务2:局部数据结构测试检查局部数据结构完整性检查局部数据结构完整性Checklist:p 不适合或不相容的类型说明p 变量无初值p 变量初始化或默认值有错p 不正确的变量名或从来未被使用过p 出现上溢或下溢和地址异常p 其它任务:模块接口测试检查模块接口是否正确检查模块接口是否正确checklist:p输入的实际参数与形式参数是否一致(个数、属性、量纲)p调用其他模块的实际参数与被调模块的形参是否一致。 个数、属性、量纲p全程变量的定义在各模块是否一
14、致。p外部输入、输出p文件、缓冲区、错误处理p其它任务:单元边界条件测试检查临界数据处理的正确性检查临界数据处理的正确性Checklist:p 普通合法数据的处理。p 普通非法数据的处理。p 边界值内合法边界数据的处理。p 边界值外非法边界数据的处理。p 其它任务5: 单元容错测试预设的各种出错处理是否正确有效。预设的各种出错处理是否正确有效。Checklist:p 输出的出错信息难以理解p 记录的错误与实际不相符p 异常处理不当p 未提供足够的定位出错的信息p 其它任务6:内存分析p内存泄漏会导致系统运行的崩溃;p测量内存的使用情况,了解程序内存分配的真实情况;p系统崩溃前发现内存泄漏错误;
15、p发现内存分配错误,并精确显示发生错误时的上下文情况,指出发生错误的原由。驱动程序和桩程序运行单元程序有时需要基于被测单元的接口,开发相应的运行单元程序有时需要基于被测单元的接口,开发相应的驱动模块和桩模块。驱动模块和桩模块。p驱动模块(drive):对底层或子层模块进行测试所编写的调用这些模块的程序。p桩模块(stub):对顶层或上层模块进行测试时所编写的替代下层模块的程序。集成测试的模式渐增式测试模式与非渐增式测试模式渐增式测试模式与非渐增式测试模式非渐增式测试模式非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。渐增式测试模式渐增式测试模式
16、:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。各自的优缺点各自的优缺点渐增式测试模式需要编写的软件较多,工作量较大,而非渐增式测试模式开销小。渐增式测试模式发现模块间的接口错误早;而非渐增式测试模式晚。非渐增式测试模式发现错误,较难诊断;而使用渐增式测试模式,如果发生错误则往往和最近加进来的那个模块有关。渐增式测试模式测试更彻底。渐增式测试模式需要较多的机器时间。使用非渐增式测试模式,可以并行测试。优缺点大棒集成方法(Big-bang Integration)采用大棒集成方法采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段)
17、,先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试然后将所有模块一次性的全部集成起来进行集成测试 。因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。 自顶向下和自底向上集成方法 自顶向下法(Top-down Integration) 自顶向下法的主要优缺点自顶向下法的主要优缺点优缺点:优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能 ,而且能够在早期发现上层模块的接口错误。缺点:需要桩程序,可能遇到于此想联系的测试困难,低层关键模块中的
18、错误发现的比较晚,而且用这种方法在早期不能充分开展人力。自底向上法 Bottom-up Integration 自底向上法的主要优缺点自底向上法的主要优缺点优缺点:与自顶向下模式刚好相反三明治集成方法(Sandwich Integration) 采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。改善的三明治集成方法改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单
19、独的测试,使测试进行得比较彻底块得到单独的测试,使测试进行得比较彻底 。几种集成方法性能的比较 自底向上自底向上 自顶向下自顶向下 混合策略混合策略大棒大棒三明治三明治改进三明治改进三明治集成集成早早早早早早晚晚早早早早基本程序能工作时间基本程序能工作时间晚晚早早早早晚晚早早早早需要驱动程序需要驱动程序是是否否是是是是是是是是需要桩程序需要桩程序否否是是是是是是是是是是工作并行性工作并行性中中低低中中高高中中高高特殊路径测试特殊路径测试容易容易难难容易容易容易容易中等中等容易容易计划与控制计划与控制容易容易难难难难容易容易难难难难系统测试p系统测试:系统测试:将经过集成测试后的软件,作为计算机
20、系统的将经过集成测试后的软件,作为计算机系统的一部分,与计算机硬件、某些支持软件、数据和平台等系一部分,与计算机硬件、某些支持软件、数据和平台等系统元素结合起来,在真实运行环境下对计算机系统进行一统元素结合起来,在真实运行环境下对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题,保证系统系列的严格有效的测试来发现软件的潜在问题,保证系统的正常运行。的正常运行。p目的:目的:充分运行系统,验证整个系统是否满足功能和非功充分运行系统,验证整个系统是否满足功能和非功能性的质量需求。能性的质量需求。p非功能性测试是系统测试中更为关键的任务!非功能性测试是系统测试中更为关键的任务!回归测试的目的
21、回归测试的目的 p 所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等;p 不影响软件原有功能的正确性。6.2 回归测试 一旦程序某些区域被修改了,就可能影响其它区域,导致受影响的区域出现新的缺陷(回归缺陷)。如果这时没有回归测试,产品就带着这样的回归缺陷被发布出去了,造成严重后果。回归测试就是为了发现回归缺陷而进行的测试。什么是性能测试?什么是性能测试?性能测试性能测试(performance test)就是为了发现系统性能问题或获取系统性能相关指标而进行的测试。一般在真实环境真实环境、特定负载特定负载条件下,通过工具模拟工具模拟实际软件系统的运行及其操作
22、,同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能状况。性能测试目标性能测试目标Performance Testingv获取系统性能某些指标数据v为了验证系统是否达到用户提出的性能指标v发现系统中存在的性能瓶颈,优化系统的性能压力压力/ /负载测试负载测试压力测试压力测试(Stress test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。两种负载类型两种负载类型“FlatFlat”测试测试: : 对于一次给定的测试,应该取响应时间和吞吐量的平均值。精确地获得这些值的
23、唯一方法是一次一次加载所有的用户加载所有的用户,然后在预定的时间段内持续时间段内持续运行。虚拟用户的数量虚拟用户的数量两种负载类型两种负载类型 Ramp-upRamp-up测试测试: : 用户是交错上升的(每几秒增加一些新用户)。ramp-up测试不能产生精确和可重现的平均值,这是因为由于用户的增加是每次一部分,系统的负载在不断地变化。其优点是,可以看出随着系统负载的改变,测量值是如何改变的据此选择要运行的flat测试的范围。安全性测试安全性测试 p想方设法截取或破译口令;p专门开发软件来破坏系统的保护机制;p故意导致系统失败,企图趁恢复之机非法进入;p试图通过浏览非保密数据,推导所需信息等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值,此时非法侵入者已无利可图。软件安全性测试就是检验系统权限设置有效性、防范非法入侵的能力、数据备份和恢复能力等,设法找出上述各种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年江苏省文化和旅游厅下属事业单位真题
- 激情奉献行业月度个人工作热情计划
- 2024年贵州省监狱管理局下属事业单位真题
- 网络安全事件案例及试题及答案
- 2024年河南郑州格力在校生招聘笔试真题
- 2025年软件设计师考试实例题目及试题及答案
- 湖北省恩施州恩施市2025届数学八下期末达标检测模拟试题含解析
- 2025年软考软件设计师关注焦点试题及答案
- 软件设计师在项目管理中的职责与角色试题及答案
- 代码查询与版本控制的使用技巧试题及答案
- 1.2 匀变速直线运动-医药卫生类
- 3.2 推动高质量发展 课件高中政治统编版必修二经济与社会
- 《太阳升起来了》课件
- 2024年湖北高考化学真题试题(原卷版+含解析)
- 住院成人高血糖患者血糖监测医护协议处方共识
- 汽车清洁保养服务合同示范文本
- 《市场营销:网络时代的超越竞争》第4版 课件 第8章 制定有效的价格策略
- 龙门吊安装方案(10吨)
- 离婚纠纷-模拟法庭剧本
- 管培生(校招生)培养方案(计划)落地完整版
- 人教版八年级数学上册基础训练题(全册合集)(含答案)
评论
0/150
提交评论