软件测试基础培训之软件测试基础_第1页
软件测试基础培训之软件测试基础_第2页
软件测试基础培训之软件测试基础_第3页
软件测试基础培训之软件测试基础_第4页
软件测试基础培训之软件测试基础_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试基础第2页软件测试定义软件测试的模型与方法常用测试工具介绍软件测试中心简介主要内容

美国爱国者导弹防御系统

“许霆”案第3页软件测试定义著名失败案例第4页测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险软件是由文档、数据以及程序组成的。

评估软件质量发现软件错误目的软件测试目的?软件测试定义2023/3/16

第5页

ContentTitle软件特性的总和,软件满足规定或潜在用户需求的能力。软件测试定义软件质量2023/3/16

第6页质量属性功能性可靠性易用性效率可移植性可维护性易分析性易改变性稳定性易测试性依从性适应性易安装性共存性易替换性依从性成熟性容错性易恢复性依从性易理解性易学性易操作性吸引性依从性时间特性资源特性依从性适合性互操作性依从性准确性安全保密性软件测试定义软件质量属性2023/3/16

第7页

定义1:是为了发现错误而执行程序或系统的过程。(Myers,1979)常规定义在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。定义2:测试不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量和评估。(Hetzel,1983)软件测试定义什么是软件测试?2023/3/16

第8页软件测试定义测试常识和经验测试能提高软件的质量,但是提高质量不能依赖测试。测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。成功的测试在于发现了迄今尚未发现的缺陷。测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可以放心地结束测试。80-20原则:80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出错。2023/3/16

第9页软件测试定义软件测试的模型与方法常用测试工具介绍XX软件测试中心简介主要内容测试模型V模型W模型H模型X模型其他模型测试模型V模型W模型H模型X模型其他模型测试模型V模型W模型H模型X模型其他模型测试模型V模型W模型H模型X模型其他模型测试模型V模型W模型H模型X模型其他模型前置测试模型:开发和测试相结合;对每一个交付内容进行测试;验收测试和技术测试保持相互独立。测试驱动开发:测试设计先于开发设计在敏捷开发中受到推崇2023/3/16

第15页黑盒测试单元测试回归测试白盒测试集成测试确认测试灰盒测试系统测试验收测试配置项测试组件测试压力测试α测试β测试人机界面测试性能测试本地化测试冒烟测试功能测试强度测试一致性测试入网测试面向对象测试第三方测试负载测试测试方法2023/3/16

第16页黑盒测试单元测试白盒测试集成测试确认测试灰盒测试系统测试验收测试配置项测试α测试β测试人机界面测试性能测试功能测试强度测试按测试技术:按开发阶段:按实施组织:按测试类型:测试方法PINOUT白盒测试:黑盒测试:2023/3/16

第17页测试方法黑盒与白盒测试示意图2023/3/16

第18页测试方法测试

方式特征依据测试人员测试驱动黑盒

测试只关心软件的外部表现,不关心内部设计与实现。用户需求软件需求任何人(包括开发人员、独立测试人员和用户)一般无需编写额外的测试驱动程序白盒

测试关注软件的内部设计与实现,要跟踪源代码的运行。设计文档由开发人员兼任测试人员的角色需要编写额外的测试驱动程序黑盒与白盒测试的比较黑盒测试设计步骤和用例设计方法:首先进行等价类划分,包括输入数据和输出数据的等价划分,将无限测试变成有限测试在任何情况下都使用边界值分析方法对参数配置类软件,采用正交试验法挑选测试组合对业务流清晰的系统,利用场景法贯穿整个测试设计使用错误推测法追加测试用例其它特定方法:因果图法、判定表驱动法、功能图法等2023/3/16

第19页测试方法测试方法白盒测试(一)项目背景黑盒测试错误推测法场景法等价类划分法边界值分析法等价类划分法边界值分析法把程序的输入域划分为若干部分,选取少数代表性数据;分为有效等价类和无效等价类;举例:x输入范围为0~255,有效等价类为:0~255;无效等价类1:<0无效等价类2:>255测试方法白盒测试(一)项目背景黑盒测试错误推测法场景法等价类划分法边界值分析法经验得知大量的错误发生在输入或输出范围的边界上;输入等价类和输出等价类的边界;举例:x输入范围为0~255,边界值为:-1、0、1、254、255、256测试方法白盒测试(一)项目背景黑盒测试错误推测法场景法等价类划分法边界值分析法基于经验和直觉;可能有和容易发生的错误;举例:敏感字符:XML中“<>”,数据库中“’”。错误推测法边界值分析法测试方法白盒测试(一)项目背景黑盒测试错误推测法场景法等价类划分法边界值分析法业务流清晰的系统;基本流和备选流;举例:呼叫流程基本流:MS1-BS1-MSC-BS2-MS2备选流1:BS1未收到呼叫备选流2:MSC未收到呼叫信息备选流3:BS2未收到呼叫信息………..场景1:基本流场景2:基本流,备选流1场景3:基本流,备选流1、2…….边界值分析法场景法白盒测试设计一般步骤:尽量首先进行静态结构分析进行代码检查(桌面检查、代码审查、代码走查)

需要预先准备“检查表”

代码审查:不只是规范审查,由程序员自己讲解

代码走查:通常是对一些关键单元、无法运行的单元(中断、诊断)等程序进行进行静态质量度量进行逻辑测试(覆盖率测试)一般,单元测试,以代码检查和逻辑测试为主

集成测试,需要追加静态结构分析、静态质量度量

系统测试,根据黑盒测试结果,采取相应白盒测试2023/3/16

第24页测试方法(二)现状分析黑盒测试白盒测试测试方法代码检查静态分析逻辑测试基本路径测试代码审查代码走查需要预先准备“检查表”通常是对一些关键单元、无法运行的单元(中断、诊断)等程序进行(二)现状分析黑盒测试白盒测试测试方法代码检查法静态分析法逻辑测试法基本路径测试法控制流分析接口分析数据流分析表达式分析(二)现状分析黑盒测试白盒测试测试方法代码检查法静态分析法逻辑测试法基本路径测试法判定覆盖组合覆盖语句覆盖条件覆盖(二)现状分析黑盒测试白盒测试测试方法代码检查法静态分析法逻辑测试法基本路径测试法程序控制流2023/3/16

第29页一些讨论-1A:黑盒测试只能观察软件的外部表现,即使软件的输入输出都是正确的,却并不能说明软件就是正确的。白盒测试能发现程序里的隐患,象内存泄漏、误差累计问题。在这方面,黑盒测试存在严重的不足。.Q1:有了“黑盒”,为什么还要“白盒”测试?

A:如果这样做,在开发过程中,缺陷会越积越多且分布得更广、隐藏得更深,反而导致测试与改错的代价大大增加。最糟糕的是无法估计测试与改错的工作量,使进度失去控制Q2:能否系统开发完,集中进行单元测试?

2023/3/16

第30页一些讨论-2A:要把N个单元集成一起肯定靠接口耦合,这时可能会产生在单元测试中无法发现的问题。例如:数据通过不同的接口时可能出错;几个函数关联在一起时可能达不到预期的功能;在某个单元里可以接受的误差可能在集成后被扩大到无法接受的程度。所以集成测试是必要的..Q3:有了“单元测试”,还需要“集成测试”吗?

A:不能!因为集成测试是在仿真环境中开展的,那不是真正的目标系统。再者,单元测试和集成测试通常由开发小组执行。根据测试心理学的分析,开发人员测试自己的工作成果虽然是必要的,但不能作为成果已经通过测试的依据。Q4:系统测试能否跳过集成时测过的内容?

2023/3/16

第31页1、首先是“信任”问题。对于合同项目而言,如果测试小组是开发方的人员,客户怎么能够轻易相信“别人”呢?所以当项目进行系统测试之后,客户再进行验收测试是情理之中的事。否则,那是客户失职。不论是合同项目还是非合同项目,软件的最终用户各色各样(如受教育程度不同、使用习惯不同等等)。测试小组至多能够模仿小部分用户的行为,但并不具有普遍的代表性。2、系统测试不是一会儿就能做完的,比较长时间的用户测试很难组织。用户还有自己的事情要做,他们为什么要为别人测试呢?即使用户愿意做系统测试,他们消耗的时间、花费的金钱大多比测试小组的高。系统测试时会找出相当多的软件缺陷,软件需要反反复复地改错。如果让用户发现“内幕”,一是丢脸,二是会吓跑买主。所以还是关起门来,先让测试小组做完系统测试的好。.Q5:系统测试和验收测试内容相似,为什么做了系统测试,还要做验收测试?两者能否合一?一些讨论-32023/3/16

第32页软件测试定义软件测试的模型与方法常用测试工具介绍XX软件测试中心简介主要内容测试工具功能自动化测试工具白盒测试工具其他工具测试管理工具性能测试工具KlocWork、logiscope、testbed、C++test、VcTesterWinRunner、FunctionalTesterLoadrunner、WebLoad、PerformanceTester、JmeterTestDirector、testmanager、QADirectorBugFree、CVS、ClearCase测试工具分类

Klocwork

Testbed

LR(LoadRunner)RTRT(RationalTestRealTime)2023/3/16

第34页测试工具测试工具介绍在server测试工具汇总目录下有工具相关资料和介绍。

2023/3/16

第35页测试工具Klocwork概述一款优秀的自动化源代码分析软件工具支持C/C++、Java软件程序进行自动化的安全漏洞和质量风险的分析使用简便可以发现多种严重安全缺陷2023/3/16

第36页测试工具Klocwork概述(续)使用简便

支持桌面分析,提供多种开发环境集成2023/3/16

第36页(二)软件测评工程能力提升方案(三)使用未初始化的数据(四)安全漏洞(五)未经过验证的用户输入(一)内存管理问题(二)空指针引用问题Klocwork功能(一)内存管理问题(二)空指针引用问题指针在释放后又被解引用已经释放的内存被重复释放被释放掉内存的指针被当作函数的实参进行传递函数或者方法返回了已被释放内存的指针使用了已被释放内存的指针new/delete,new[]/delete[]或malloc/free语句被混淆使用释放了非堆的内存,如:静态或者栈内存函数释放了未初始化的指针内存泄露:程序没有释放先前分配的内存把局部变量的地址作为函数返回的指针或者引用(二)软件测评工程能力提升方案(三)使用未初始化的数据(四)安全漏洞(五)未经过验证的用户输入(一)内存管理问题(二)空指针引用问题空指针被解引用指针的值被函数的返回值赋值,该返回值可能为NULL,该指针被解引用已经被确认为NULL的指针值被解引用空指针被传递给一个函数并解引用在解引用指针前未进行是否为空的检查在未检查指针是否为空的情况下,将指针作为参数传递给一个函数,并在这个函数中被解引用Klocwork功能(二)软件测评工程能力提升方案(三)使用未初始化的数据(四)安全漏洞(五)未经过验证的用户输入(一)内存管理问题(二)空指针引用问题(三)使用未初始化的数据(二)空指针引用问题使用malloc分配内存的情况下,在初始化内存前使用了内存一个非类类型的局部变量,在写该变量前先读取了该变量(比如通过引用传递给其它函数)一个类域(classfield)可能在构造函数中没有被初始化Klocwork功能(二)软件测评工程能力提升方案(三)使用未初始化的数据(四)安全漏洞(五)未经过验证的用户输入(一)内存管理问题(二)空指针引用问题(四)安全漏洞(二)空指针引用问题缓冲区溢出非空字符结尾的缓冲区被当作以空字符结尾的缓冲区使用,导致的缓冲区溢出不应该使用gets函数,该函数不对输入进行缓冲区边界检查,可能导致目标缓冲区溢出在字符串输入的格式(%s)中,使用的width数值不恰当Klocwork功能(二)软件测评工程能力提升方案(三)使用未初始化的数据(四)安全漏洞(五)未经过验证的用户输入(一)内存管理问题(二)空指针引用问题(五)未经过验证的用户输入(二)空指针引用问题在内存分配中使用没有经过验证、不被信任的输入数据来指定分配内存的大小字符格式中使用了未经过验证的数据使用没有经过验证、不被信任的输入数据访问数组将没有经过验证、不被信任的输入数据作为循环的次数Klocwork功能

Klocwork

Testbed

LR(LoadRunner)RTRT(RationalTestRealTime)2023/3/16

第42页测试工具测试工具介绍Testbed编码标准验证编码标准验证MISRA(汽车软件标准)DERA(欧洲防务标准)2023/3/16

第43页测试工具Testbed概述Testbed静态分析静态分析控制流分析数据流分析表达式分析接口分析复杂度分析2023/3/16

第44页测试工具Testbed概述动态分析语句覆盖分支覆盖判定条件覆盖……2023/3/16

第45页测试工具Testbed概述(二)数据流分析(三)表达式分析(四)接口分析(五)其它(一)控制流分析(一)控制流分析Testbed功能是否存在不可达代码是否存在循环条件不可达函数是否包含无限循环(无终止条件)是否存在无限循环结构在循环语句中是否有多个控制变量是否存在浮点数相等比较是否使用goto语句函数是否存在多个出口函数是否存在多个入口(二)软件测评工程能力提升方案(三)表达式分析(四)接口分析(五)其它(一)控制流分析(二)数据流分析是否存在没使用的函数参数函数不是所有的路径上都有返回值代码中有多余变量变量未赋初值就引用参数与期望的作用不匹配标识符超过31个字符函数定义无相应原型存在潜在的无限循环指针在使用之前没有进行非空检查往没有打开过的文件中写文件指针在退出时没有关闭Testbed功能(二)数据流分析(三)表达式分析(四)接口分析(五)其它(一)控制流分析(三)表达式分析表达式中使用{}存在数组下标越界存在被零除SWITCH语句是否为空SWITCH语句只含DEFAULT情况SWITCH语句缺少DEFAULTCASE语句缺少BREAK返回类型为VOID的函数出现在表达式中存在混合运算对指针进行逻辑比较在逻辑表达式中使用赋值操作符Testbed功能(二)数据流分析(三)表达式分析(四)接口分析(五)其它(一)控制流分析(四)接口分析实参和形参个数不匹配(C++无)实参和形参类型不匹配函数参数定义的结构和调用的结构不一致Testbed功能(二)数据流分析(三)表达式分析(四)接口分析(五)其它(一)控制流分析(五)其它循环体缺少括弧函数参数列表为空SWITCH结构含多个(大于1)DEFAULT函数返回类型不一致函数和函数的原型的返回不一致函数和函数的原型的形参不一致函数参数超过7个圈复杂度超过10LCSAJ密度超过20函数代码行超过200行Testbed功能

Klocwork

Testbed

LR(LoadRunner)RTRT(RationalTestRealTime)2023/3/16

第51页测试工具测试工具介绍LR一般部署方式模拟实际用户负载来测试系统,包括:反应速度、最大用户数、系统最优配置、软硬件性能等虚拟用户:发起各种各样的负载组合GUI代理:衡量端到端的性能主机:负责录制、回放、监视和分析运行结果WebAppDB2023/3/16

第52页在“虚拟用户发生器”中:执行单用户操作ServerClientApp在“控制台”中运行已录制的脚本,多个用户并发访问服务器VirtualUsersServerLR的单用户与并发一般都要先“调试脚本”2023/3/16

第53页LR主要应用是一种预测系统行为和负载的性能测试工具通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。2023/3/16

第54页创建真实的负载定位性能问题可重复测试,保证系统发布的高性能支持无线应用协议支持MediaStream应用等LR主要特点2023/3/16

第55页1.理解需求读懂并量化需求根据需求设计测试用例误区:需求不明确也可性能测试性能测试不用进行测试设计2023/3/16

第56页录制选项关联规则自动关联和手动关联参数化和策略2.VUGen简介2023/3/16

第57页录制代码优化代码增加日志和事务代码增加集合点3.录制和优化脚本2023/3/16

第58页组的设置和策略添加负载生成器添加系统资源计数器设置集合点策略面向目标的场景IP欺骗4.Controller介绍2023/3/16

第59页RumpUp/RumpDown执行时间和迭代监控执行错误处理5.设置场景并执行测试2023/3/16

第60页平均事务响应时间图事务相关图系统资源图网络吞吐图以上各图和用户图叠加事务细分图结果关联和过滤6.结果分析和问题定位2023/3/16

第61页

Klocwork

Testbed

LR(LoadRunner)RTRT(RationalTestRealTime)2023/3/16

第62页测试工具测试工具介绍RTRT概述

是用于静态度量、代码规则检查、单元测试、运行时分析和基于消息的系统测试的跨平台解决方案。集成了行业领先的第三方工具,如MathworksSimulink、MSVisualStudio和TICCS。代码级的白盒测试工具

帮助开发人员创建测试脚本、执行测试用例和生成测试报告,并提供对被测代码进行静态分析和运行时分析功能。利用该工具,开发人员可以大大提高测试的效率。

2023/3/16

第63页RTRT概述(续)代码静态分析,功能测试和运行时分析相集成。代码编辑、测试和调试相集成。测试执行后自动生成测试报告和各种运行时(runtime)报告。测试报告展示通过或失败的测试用例,而运行时分析报告包括代码覆盖分析报告,内存分析报告、性能分析报告和执行追踪报告。2023/3/16

第64页RTRT的各种分析报告

运行时内存报告(memoryprofile)分析程序运行时内存使用情况和是否存在内存泄漏等的问题内存使用大小的峰值文件描述符的使用和

分配情况2023/3/16

第65页RTRT的各种分析报告

程序运行性能报告(performanceprofile)最耗时的三个过程时间分布每个过程的执行调用次数,执行总时间等运行效率信息可对调用次数多,执行时间长的过程进行专门的优化,增加应用处理的效率,减少执行时间2023/3/16

第66页RTRT的各种分析报告

程序代码覆盖情况报告(codecoverage)每次测试中代码执行的覆盖情况

支持多种覆盖类型,包括:●语句覆盖率●决策覆盖率●调用覆盖率●循环覆盖率●条件覆盖率●MC/DC覆盖率2023/3/16

第67页2023/3/16

第68页软件测试定义软件测试的模型与方法常用测试工具介绍XX软件测试中心简介主要内容软件测试中心资质获得的资质中国人民解放军总装备部军用实验室认可中国合格评定国家认可委员会(CNAS)实验室认可国防科技工业实验室认可委员会(DILAC)认可广州市财政投资信息化项目验收测评机构广东省信息系统安全等级测评机构

目前中心已成为国内仅有的几家同时具备总装、CNAS、DILAC三个资质的软件测评实验室之一。2023/3/16

第69页嵌入式软件测试级别单元测试、配置项测试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论