软件测试活动四川华迪信息技术有限公司Version1.02020/1/122Overview课程介绍软件测试理论概述软件测试过程如何进行测试用例设计如何管理缺陷2020/1/123课程介绍课程目标预备知识目标听众日程表词汇表2020/1/124课程目标了解软件测试的一些概念、要点。了解托普集团测试过程及测试活动的主要内容了解如何设计测试用例了解缺陷的管理方式2020/1/125预备知识软件测试的基础知识软件工程的基础知识熟悉软件开发生命周期2020/1/126目标听众测试设计员、测试员项目管理人员SQA人员其它希望了解测试活动的人员2020/1/127日程表共计:0.5天详细安排0:05课程介绍0:30软件测试理论0:50软件测试过程0:20如何进行测试用例设计0:10如何管理缺陷0:05问题&反馈Total:2hours2020/1/128词汇表缺陷(Defect):缺陷是对软件产品预期属性的偏离现象。千行代码缺陷率(DefectRate)验证与确认(Verification&Validation)故障(Failure)白盒测试(White-boxTesting)黑盒测试(Black-boxTesting)软件测试理论概述2020/1/1210Topics测试基本概念:测试的定义,测试目的等测试的层次:单元、集成、系统、验收测试类型:功能、界面、性能、强度、容量、配置、安装,文档等测试策略:制定策略应考虑到的因素测试工具:工具的种类,工具能做的工作和不能做的工作CMM对软件测试的要求2020/1/1211软件测试理论概述-测试基本概念测试的定义•软件测试是为了发现错误而执行程序的过程•软件测试是根据程序开发阶段的规格说明及程序内部结构而精心设计的一批测试用例(输入数据及其预期结果的集合),并利用这些测试用例去运行程序,以发现错误的过程。2020/1/1212软件测试理论概述-测试基本概念测试的目的•验证对象之间的交互。•验证软件的所有构件是否正确集成。•确认所有需求是否已经正确实施。•确定缺陷并确保在部署软件之前将缺陷解决。•尽早尽可能多发现缺陷•提高软件产品的质量!2020/1/1213软件测试理论概述-测试的层次单元测试(UnitTesting)集成测试(IntegrationTesting)系统测试(SystemTesting)接受测试(AcceptanceTesting)2020/1/1214软件测试理论概述-测试的层次单元测试•测试的最早期阶段,焦点在于最小的被测软件的组成部分单元测试单元测试单元测试单元测试单元测试2020/1/1215软件测试理论概述-测试的层次集成测试•在运行(可能是不完整)的应用中保证软件单元被结合后能正常操作的测试执行的阶段驱动模块被测模块桩模块桩模块桩模块测试结果测试用例2020/1/1216软件测试理论概述-测试的层次系统测试•当应用作为整体运行时的测试执行阶段(测试最终的应用)2020/1/1217软件测试理论概述-测试的层次验收测试•验收测试,以用户为主,由用户参加设计测试用例,对程序的功能、性能,以及可移植性、兼容性、可维护性、错误的恢复功能等进行确认。•进行有效性测试,运用黑盒测试的方法,验证所测试的软件是否满足需求规格说明书列出的要求;•软件配置复查,保证软件的所有配置成分都齐全;正式的验收测试非正式的验收测试或alpha测试beta测试2020/1/1218软件测试理论概述-测试的层次测试层次与软件开发的关系需求分析设计编码系统测试集成测试单元测试验收测试2020/1/1219软件测试理论概述-测试的层次UnitTestUnitTestUnitTest……IntegrationTestIntegrationTestIntegrationTest……SystemTestAcceptanceTest增量集成2020/1/1220软件测试理论概述-测试类型静态分析功能测试用户界面测试性能测试负载测试强度测试容量测试配置测试安装测试2020/1/1221软件测试理论概述-测试类型静态分析•对源代码的静态分析:主要分析代码中的类型、引用、参数传递,以及表达式等不用运行就能够发现的错误;另外还有一些容易出错的地方,如空指针赋值、下标越界等。还可以检查诸如命名规则等编程规范。2020/1/1222软件测试理论概述-测试类型功能测试•验证软件是否提供了所期待的服务。包括:•“主要”方案--所有的输入是合法的。•“辅助”方案--一些或所有的输入是不合法的。2020/1/1223软件测试理论概述-测试类型性能测试•响应时间•并发性•吞吐量•处理精度2020/1/1224软件测试理论概述-测试类型强度测试•资源少的情况下发现可能的错误低内存磁盘空间•共享资源竞争的情况下发现可能的错误系统资源数据库加锁网络带宽2020/1/1225软件测试理论概述-测试类型容量测试•使软件经受大数据量的考验,以确定达到限制时是否引发软件失败配置测试•软件配置•硬件配置2020/1/1226软件测试理论概述-测试类型安装测试•是否能正确安装?初次安装升级安装完全安装定制安装•安装后,操作是否正确?2020/1/1227软件测试理论概述-测试策略针对各测试类型描述方法和目标•测试技术和工具将被用到•测试完成的标准•特殊的考虑,包括资源需求和进度表等2020/1/1228软件测试理论概述-测试策略测试策略项例子测试的层次:系统测试类型:功能技术:为每个主要功能建立测试过程...所有夜间进行的测试是否被执行,数据/结果是否得到验证完成标准:所有的测试过程被执行所有易出问题的功能必须被执行...严重性级别为1或2的缺陷不再出现其它因素:测试必须在下午7:00以后到上午9:00之前进行.2020/1/1229软件测试理论概述-测试工具按测试活动•测试计划•测试设计•测试开发•测试执行•评估和缺陷追踪2020/1/1230软件测试理论概述-测试工具按功能•获取数据•静态度量•动态度量•模拟性•测试管理2020/1/1231软件测试理论概述-测试工具白盒•也被称为结构工具•依赖于代码、规格说明或其它源资料的信息黑盒•依赖于测试环境下应用的需求说明或功能描述2020/1/1232软件测试理论概述-CMM对软件测试的要求按照项目定义过程进行软件测试(SPE-AC5)按照项目定义软件过程计划和执行集成测试(SPE-AC6)计划和执行软件的系统测试和验收测试以显示软件满足需求(SPE-AC7)按照项目定义软件过程收集和分析有关同行评审和测试中所鉴别出的缺陷和数据(SPE-AC9)软件测试过程2020/1/1234Topics测试生命周期托普软件测试过程软件测试主要活动介绍2020/1/1235软件测试过程-测试生命周期RequirementsDesignCodeTest直到编码结束以后才开始测试活动传统的软件生命周期2020/1/1236软件测试过程-测试生命周期RequirementsDesignCodeTestTestPlanning&TestDesign仅仅执行测试在编码之后才开始,测试计划和设计与开发同步。并行的测试生命周期2020/1/1237软件测试过程-测试生命周期迭代开发开发生命周期...MaintenanceRequirementsDefinitionApplicationDefinitionApplicationDevelopmentRevisionBuildBuild2020/1/1238软件测试过程-测试生命周期...RevisionBuildBuild...Exec.Exec.Exec.TestPlanningDefectTrackingTestImplementTestDesignEvaluation测试生命周期2020/1/1239软件测试过程-测试生命周期测试生命周期...Exec.Exec.TestPlanningDefectTrackingTestImplementTestDesignEvaluationBuildBuild...Exec.Build测试计划定义测试项目的阶段,以便于对项目进行适当的评估与控制。包括测试需求,测试策略,测试资源和测试进度。2020/1/1240软件测试过程-测试生命周期测试生命周期...Exec.Exec.TestPlanningDefectTrackingTestImplementTestDesignEvaluationBuildBuild...Exec.Build测试设计设计测试用例及测试过程的阶段,它是验证测试需求被测试到的最有效的方法。2020/1/1241软件测试过程-测试生命周期测试生命周期...Exec.Exec.TestPlanningDefectTrackingTestImplementTestDesignEvaluationBuildBuild...Exec.Build测试实施对测试设计阶段已被定义的测试进行创建或修正的阶段。如脚本、驱动、桩的实施2020/1/1242软件测试过程-测试生命周期测试执行对被测软件进行一系列的测试并记录日志结果的阶段。测试生命周期...Exec.Exec.TestPlanningDefectTrackingTestImplementTestDesignEvaluationBuildBuild...Exec.Build2020/1/1243软件测试过程-测试生命周期测试生命周期...Exec.Exec.TestPlanningDefectTrackingTestDevelopmentTestDesignEvaluationBuildBuild...Exec.Build测试评估分析测试结果并判断测试的标准是否被满足的阶段。2020/1/1244软件测试过程-测试生命周期测试生命周期...Exec.Exec.TestPlanningDefectTrackingTestImplementTestDesignEvaluationBuildBuild...Exec.Build缺陷跟踪记录测试发现的问题,并且跟踪其修改的阶段。2020/1/1245软件测试过程-托普软件测试过程制定测试计划设计测试实施测试执行单元测试执行集成测试执行系统测试评估测试2020/1/1246软件测试过程-托普软件测试过程制定测试计划1软件项目计划需求工件软件测试计划设计测试2软件构架设计工件、软件详细设计工件软件集成计划需求工件(界面原型)(可选)实施测试3测试驱动或桩模块测试脚本(可选)测试用例测试过程执行单元测试4软件单元测试结果执行集成测试5集成工作版本执行系统测试6系统工作版本测试分析报告测试需求测试过程、测试用例测试过程、测试用例通过单元测试的单元集成后的系统评估测试72020/1/1247软件测试过程-托普软件测试过程角色和职责•测试设计员制定和维护测试计划。设计测试用例及测试过程。评估测试,生成测试分析报告。•测试员执行集成测试和系统测试。记录测试结果。•设计员设计测试需要的驱动程序和稳定桩。•编码员编写测试驱动程序和稳定桩。执行单元测试。软件测试主要活动介绍2020/1/1249Topics制定测试计划设计测试实施测试执行单元测试执行集成测试执行系统测试评估测试测试活动产生的工件2020/1/1250软件测试主要活动介绍-制定测试计划目的•收集和组织测试计划信息,并且创建测试计划。时机•软件项目计划已确定输入工件•软件项目计划•软件需求工件•(软件构架设计)•(软件详细设计)•(软件集成计划)2020/1/1251软件测试主要活动介绍-制定测试计划步骤•确定测试需求•制定测试策略•建立测试通过准则•确定资源和进度•评审测试计划•更新测试计划输出工件•软件测试计划2020/1/1252软件测试主