《测试知识点梳理.pptx》由会员分享,可在线阅读,更多相关《测试知识点梳理.pptx(56页珍藏版)》请在课桌文档上搜索。
1、7组测试知识点梳理,目 录,01,测试基础知识点,MantisBT,测试基础知识点,第一章 软件工程要点第二章 软件测试基础第三章 基于生命周期的软件测试第四章 软件测试分类及分级第五章 软件缺陷管理第六章 软件测试过程及其管理第七章 静态测试第八章 动态测试,一.软件工程要点,1.软件的定义及分类:(1)概念:软件(英语:software)是一系列按照特定顺序组织的电脑数据和指示的集合,是电脑中的非有形部分。软件并不一定只包括可以在计算机上运行的计算机程序,有些定义中,与计算机程序相关的文档,一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。(2)分类:一般来说,计算机软件划分
2、为系统软件、应用软件和介于这两者之间的中间件。,2.软件的危机:(1)背景:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列问题。(2)现象:成本与进度、用户满意度、质量、可维护性、文档支持、与时俱进。,(3)解决途径:组织管理工程项目管理方法技术措施软件开发技术、方法与软件工具具体办法:对计算机软件有一个正确的认识(软件程序)充分认识到软件开发不是某种个体劳动的神秘技巧,而应 是一种组织良好、管理严密、各类人员协同配合、共同 完成的工程项目推广使用在实践中总结出来的开发软件成功技术和方法开发和使用更好的软件工具,3.软件工程:(1)方法:将系统化的、
3、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件(2)工具:软件工具为工程方法提供了自动或半自动的软件支撑环境(3)过程:软件工程方法和工具综合起来,以达到合理、及时第进行计算机软件开发的目的。,方法,工具,过程,软件工程,4.软件生命周期计划、分析、设计、编码、测试、运行和维护5.软件生命周期模型:(1)瀑布模型:1970年温斯顿罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。,瀑布模型特点及应用场景,(2)V模型:V模型是在瀑布模型基础上演变而来,由于将整个开发过程构造成一个V字形而得名。V模型
4、强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。,(3)迭代模型:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。,6.敏捷开发(1)定义敏捷开发是一种以用户的需求进化为核心、迭代、循序渐进的开发方法。软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。(2)敏捷开发与传统开发的区别变:强调软件开发对未来可能出现的变化和不确定性做出全面反应早:总体目标是尽可能早地、持续地对有价值软件的交付快:主要是用于需求模糊或快速变化的前提下,小型开发团队的软件开发活动,7.
5、软件系统体系结构应用模式(1)C/S结构C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,克服了终端/主机结构中主机负担过重,用户界面不友好等缺点,因而得到了广泛的应用。(2)B/S(Browser/Server,浏览器/服务器)模式又称B/S结构B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。,C/S结构,客户/服务器模式胖客户/瘦服务器QQ、微信、王者荣耀,B/S结构,浏览器/服务器模式瘦客户/胖服务器Web QQ、洛克王国,二.软件测试基础,1.软件测试的定义,评价一
6、个程序和系统的特性或能力,并确认它是否达到预期的结果,检查是否满足规定的需求,定义1(Hetzel),定义2(Myers),测试是为发现错误而执行程序的过程,定义3(现代),是对软件需求分析、设计、编码的最终复查的一系列过程,是软件质量保证的关键步骤,2.软件缺陷产生的原因需求不清晰、技术问题3.软件测试的目的(1)发现缺陷,提高质量(2)验证是否满足需求(3)建立软件质量的信心4.软件测试依据的一般原则(1)测试显示缺陷的存在(2)穷尽测试是不可能的(3)测试尽早介入(4)缺陷集群性(5)杀虫剂悖论(6)测试活动依赖于测试背景(7)没有失效不代表系统是可用的,5.软件测试的一般流程,软件测试
7、过程包括:测试计划和控制测试需求分析和用例设计实现和执行测试用例评估出口准则和报告测试结束活动,三.基于生命周期的软件测试,1.什么是生命周期测试?如同软件生命周期,可以将软件测试阶段按照软件生命周期去划分,形成基于生命周期的软件测试,简称生命周期测试。2.生命周期测试的意义?在软件开发的所有阶段进行测试,被设计用来减少测试成本测试与开发同步进行,有利于尽早地发现问题,同时缩短项目的开发建设周期,3.生命周期各阶段的测试工作,阶段,主要测试活动,验证和确认需求说明书、制定测试计划,验证和确认设计文档、模型等,测试设计及评审,代码、评审、搭建环境、单元测试,执行测试、缺陷管理,安装测试、确认产品
8、,培训、维护、变更管理、测试,需求,设计,编程,测试,安装,维护,输出,测试需求、组织团队测试计划,测试方案、测试案例等,测试案例及缺陷等,缺陷报告和测试报告,安装程序、安装文档、用户手册等,维护手册、测试报告等,四.软件测试分类及分级,1.软件测试分类(1)一般分类:是否关心内部结构:白盒,黑盒,灰盒开发过程级别:单元,集成,系统,验收是否执行程序:静态,动态是否人工干预:手工,自动化测试实施组织:开发,测试,第三方(2)CSCI分类:功能性、可靠性、可用性、效率性、可维护性、可移植性,2.几个概念的理解:(1)基线:实实在在存在的。评审通过的文档可作为基线(2)里程碑:虚的,人为设定的,根
9、据不同公司不同项目设的不同(3)软件配置项:是各种可发测试所包含的程序、数据、报告、文档的集合3.软件测试分级(1)软件生命周期测试的分级单元测试集成测试系统测试验收测试(2)软件错误分级严重缺陷较严重的缺陷一般性缺陷较小缺陷其他缺陷,4.对软件测试进行分类与分级的目的?通过对软件测试进行有目的分类与分级,使我们能够有效地控制软件的复杂性,强化测试的针对性或目的性,提高测试管理的科学性,最终确保软件测试的质量。5.何谓软件配置项?软件配置缩写为CSCI(Computer Software Configuration Item),是为独立的配置管理而设计的且能满足最终用户要求的一组软件,简称软件
10、配置项。在软件开发过程中,产生的所有信息构成软件配置,它们是:代码、文档、数据等,统称为配置项(Configuration Item,CI),五.软件缺陷管理,1.何谓软件缺陷?一般如何描述缺陷?(1)从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。(2)缺陷标题、缺陷标识(ID)、报告人、报告日期、程序的名称、版本号、配置、缺陷类型、严重性、优先级、关键词、缺陷描述、重现步骤、结果对比、附件等。,2.软件缺陷的来源有哪些?(1)需求的不完善(2)编码错误(3)逻辑设计错误(4)客户开发者通信失败(5)对软件需求
11、的故意偏离(6)不符合文档编制与编码规定(7)测试过程不足(8)规程错误(9)文档编制错误,3、缺陷的分类有哪些?缺陷严重性和优先级的关系?(1)按软件生命周期分用户需求错误产品需求错误设计错误编码错误数据错误发行错误(2)按软件使用分功能错误性能错误界面错误流程错误数据错误提示错误常识错误其他错误(3)按GB/T 15532-2008 分程序问题文档问题设计问题其他问题,(4)缺陷严重性与优先级没有必然关系,只有直接的经验关系,不能说缺陷严重度高其优先级就一定高;也不能说缺陷严重度低其优先级就一定低。严重度低的其优先级也可能高,严重度高的其优先级也可能低。比如,百度首页出现了企鹅,虽然缺陷严
12、重度不能算高,但优先级一定是相当高的。,4、缺陷报告原则及包含的主要内容?(1)基本原则尽快报告缺陷有效描述缺陷(短小、单一、步骤清晰、使用IT业界惯用的表达术 语和表达方式、明确指明错误类型)报告缺陷时不做任何评价确保缺陷可以重现(2)主要内容缺陷的标题与简单描述缺陷的基本信息复现缺陷的操作步骤缺陷的实际结果描述、期望的正确结果描述注释文字和截取的缺陷图像,5.缺陷管理的一般流程,6.你所了解的缺陷管理工具有哪些?(1)开源类:Mantis、禅道、BugZilla、BugFree等;(2)商用类:国外:HP公司的ALM/QC软件、Compuware公司的TrackRecord软件、IBM R
13、ational公司的ClearQuese软件国内:上海微创公司的BMS软件、北航的软件质量监控系统QAMonitor,7.Mantis是如何对缺陷进行管理的答:管理员创建项目之后,项目经理对测试项目进行编辑。添加分类,还可以设置、修改版本信息。测试人员(报告人员)发现问题,编写缺陷报告后提交。开发人员登录后在查看问题页面看到状态为“新建”的bug后,打开问题报告详细页面,按照问题重现步骤实现bug,发现bug可以重现,将缺陷状态改为“已确认”。项目经理审查后,表示对该bug认可,并将其分派给开发人员。开发人员发现分派给自己的问题,将问题解决后更新缺陷报告,并更新缺陷状态为“已解决”。测试人员发
14、现bug已经被修复,对该bug进行验证,若验证未通过,可以重启问题,若通过验证,不进行任何操作。项目经理发现问题被解决,且未被重启,将该问题关闭。,六.软件测试过程及其管理,1.软件测试过程模型有哪些?之间有什么联系?(1)V模型、W模型、H模型、X模型(2)V模型和W模型的局限性串行活动,无法更好适应变更线性的前后关系,无法有效支持迭代测试完整性不足,2.软件测试管理的一般流程及包含的主要内容(1)一般流程提取测试需求指定测试计划制定测试策略和方案开展测试设计执行测试用例分析测试结果,(2)主要内容项目启动:确定项目组长,进行项目的前期准备;测试需求分析:以软件开发需求为基础,形成可测试的内
15、容;制定测试计划:确定测试范围、测试策略和方法,和对风险、日程表、资源等进行分析和评估;测试设计和开发:制定测试的技术方案、设计测试用例、选择测试工具和写测试脚本等,并且进行评审;测试实施和执行:建立或设置相关的测试环境,准备测试数据,执行测试用例,并提交发现的缺陷;测试结果的审查和分析:分析测试结果,确定产品质量,提供发布依据,3.制定测试计划的目的?测试计划包含的主要内容?(1)软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。(2)主要内容测试环境测试基本原理和策略测试阶段划分计划要点功能描述和功能
16、覆盖说明测试用例清单测试开始和退出准则,4.用户需求、软件需求、软件测试需求?(1)用户需求:描述了用户使用产品必须要完成的任务,在软件开发活动中,属于最基本的需求。(2)软件(系统)需求:描述了软件设计人员、编程人员必须要完成的任务。通过分析用户需求,把用户的需求转变成开发设计人员看得懂的软件(系统)需求。(3)测试需求:描述了软件测试人员必须要完成的任务。通过分析系统需求,产生测试需求,作为测试活动的指导。,5.测试需求分析的一般过程?怎么获取测试需求?(1)一般过程收集用户需求编写需求定义文档编写软件功能说明编写软件需求跟踪矩阵审核软件需求文档(2)测试需求收集途径与被测软件相关的各种文
17、档资料与客户或系统分析员的沟通业务背景资料正式与非正式的培训,6.测试设计环节中需要考虑哪些问题?(1)所设计的测试技术方案是否可行、是否有效、是否能达到预期的测试目标(2)所设计的测试用例是否完整、边界条件是否考虑、其覆盖率能达到多高;(3)所设计的测试环境是否和用户的实际使用环境比较接近。其关键是做好测试设计前的知识传递,将设计/开发人员已经掌握的技术、产品、设计等知识传递给测试人员;同时,要做好测试用例的审查工作,不仅要通过测试人员的审查,还要通过设计/开发人员的审查。,7.测试用例、测试数据与测试脚本三者之间的联系(1)测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果
18、,以便测试某个程序路径或核实是否满足某个特定需求。它构成了设计和制定测试过程的基础,决定着测试设计和测试开发的类型以及所需的资源。(2)测试数据是在测试中使用的实际值(集合)或执行测试需要的元素。测试数据创建要测试的条件(作为输入或预先存在的数据),并且用于核实特定的用例或需求是否已经成功得到实施(将实际结果和预期结果相比较)。(3)测试脚本是自动执行测试过程(或部分测试过程)的计算机可读指令。测试脚本可以被创建(记录)或使用测试自动化工具自动生成,或用编程语言编程来完成,也可综合前三种方法来完成。测试脚本的目的在于以高效率和有效的方式来实施和执行测试过程。,8.Testlink是如何对测试过
19、程进行管理的。,七.静态测试,1.静态测试的概念和特点有?(1)概念:通常是指不执行程序代码而寻找代码中可能存在的错误或评估程序代码的过程。(2)特点:不必动态地运行程序。可以人工进行,充分发挥人的思维优势。不需要特别的条件,容易展开。对测试人员要求比较高。,2.静态测试的对象和内容有?(1)对象各种与软件相关的有必要进行测试的产物,比如各类文档、源代码等。(2)内容各阶段评审一般评审包括:培训评审、同行评审代码检查主要检查代码和设计的一致性、代码对标准的遵循、代码的可读性、代码的逻辑表达正确性,代码的合理性软件复杂性分析主要包括软件复杂性度量与控制,面向对象的软件复杂性度量。软件质量度量就是
20、从整体上对软件质量进行评测,用于软件开发中对软件进行质量控制,并最终对软件产品进行评价和验收,3.什么是同行评审?包含的内容有?同行评审是由开发软件产品作者以外的其他人检查工作产品,以发现缺陷并寻找改进的机会,评审方法是评审参与者通常采用一行一行仔细阅读被评审对象的形式发现被测对象中的缺陷,评审的时间点一般设在工作产品到达了一个完成的里程碑并即将进入下一个开发阶段时,4.同行评审几种类型的特点及区别?,八.动态测试,1.白盒测试的定义和特点(1)“白盒”测试又称为结构测试或逻辑驱动测试是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的一种测试方法。(2)特点可以构成测试数据使特定程序
21、部分得到测试可获得较多工具支持通常只用于单元测试,2.白盒测试采用的测试方法有哪些?具体说下这些方法。(1)逻辑覆盖定义:逻辑覆盖是以程序内部的逻辑结构为基础的测试方法。分类:语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合路径覆盖(2)路经测试定义:根据程序的逻辑控制所产生的路径进行测试用例设计的方法分类:基本路径测试 循环路径测试3.白盒测试和调试有什么区别?(1)白盒测试:由测试人员系统全面地发现问题(2)调试:由开发人员根据个人经验改正缺陷,4.黑盒测试采用的测试方法?具体说下每种方法的思想(1)定义:黑盒测试又称功能测试或数据驱动测试(2)方法:等价类划分法等价类,把所有可能的输入数据
22、,即程序的输入域划分成若干部分,从每一部分中选取少数有代表性的数据做为测试用例,代表性数据等同于该类中的其他值边界值分析法边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,稍高于其边界值及稍低于其边界值的一些特定情况,因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,该方法充分考虑了输入情况的各种组合及输入条件之间的相互制约关系。随机数法随机测试指测试输入数据是所有可能输入值中随机选取的,是一种基本的黑盒测试方法。猜错法猜错法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。,5.测试用例设计的一般步骤?,6.测试用例设计的原
23、则和包含的要素?(1)原则:基于测试方法(不同的测试方法)基于测试需求(单元、集成、配置项、系统)兼顾测试充分性和效率测试用例代表性测试结果的可判定性测试执行可再现性(2)要素:名称和标识测试追踪用例说明测试的初始化要求测试输入数据测试执行步骤测试预期结果评价测试结果的准前提和约束测试终止条件,7.测试用例优先级的含义?测试用例在执行时的优先程度以及用例的重要程度。8.单元测试、集成测试、系统测试概念?(1)单元测试是针对软件设计的最小单位(组件/模块)进行正确性检验的测试(2)集成测试是把已测试过的模块组装起来测试(3)系统测试是把通过确认测试的软件作为系统的一个元素,接入系统的实际运行环境
24、中,与系统的其他部分(硬件、系统、数据库、第三方数据等)结合起来进行测试。9.回归测试概念回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。,TestLink,1.定义:TestLink基于web的测试管理系统,属于B/S架构(C/S客户端服务器端架构),用于进行测试过程中的管理2.功能:(1)测试需求管理(2)测试用例管理(3)测试用例对测试需求的覆盖管理(4)测试计划的制定(5)测试用例的执行(6)大量测试数据的度量和统计功能,3.管理流程(1)创建测试项目(产品)创建项目创建角色(2)创建需求需
25、求规约建立需求(3)创建计划创建测试计划构建管理指派角色(4)创建测试用例创建测试用例集创建测试用例测试用例与需求关联(5)给计划添加测试用例(6)分配测试任务(7)执行测试/报告bug(8)查看分析结果,MantisBT,1.定义:Mantis是一个基于PHP技术的轻量级的开源缺陷跟踪系统,以Web操作的形式提供项目管理及缺陷跟踪服务。在功能上、实用性上足以满足中小型项目的管理及跟踪。更重要的是其开源,不需要负担任何费用。,2.主要操作步骤(1)管理员创建项目之后,项目经理 admin 对测试项目进行编辑(2)测试人员发现问题后提交问题,问题状态为“新建”(3)项目经理审查后,表示对该bug认可,将缺陷状态设置为“认可”,并将其分派给开发人员(4)开发人员发现分派给自己的问题,将问题解决后更新缺陷报告(说明缺陷已经被解决,并说明软件的现状),并更新缺陷状态为“已解决”(5)测试人员发现bug已经被修复,对该bug进行验证,若验证未通过,可以重启问题,若通过验证,不进行任何操作(6)项目经理发现问题被解决,且未被重启,将该问题关闭,3.常见缺陷状态说明,4.处理缺陷和改变缺陷状态的权限表,THANKS,