软件测试学习体会Vol.doc_第1页
软件测试学习体会Vol.doc_第2页
软件测试学习体会Vol.doc_第3页
软件测试学习体会Vol.doc_第4页
软件测试学习体会Vol.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

软件测试学习体会Vol 8如何做好回归测试从执行方法的角度看,回归测试大多要通过两种方式去执行:一类借助于工具完成的自动化测试,一类是手动完成。从回归测试的计划和策略上讲,一般有以下两种方法:一、基于风险的这是一个比较简单和常用的方法,顾名思义,就是在分析出改动所带来的风险以后,在易出错的地方进行回归测试以保证原有的功能没有被新的变化影响。这么看,对于新的改动的分析风险能力很重要。如何准确的获得风险列表呢?大家最头疼的地方,也许就是风险所在这可以从以往和dev以及product owner等人的会议及email的讨论中获得。新功能的测试计划在编写测试用例和写测试计划的时候,因为比较系统和全面的了解新功能,所以可以同时把可能有的风险列出来,以供日后的回归测试来进行双重保证。商业价值说白了,就是最赚钱的地方,客户最在意的地方。因为这些地方的一点点小错误都可能引来客户的抱怨和不满,所以这些地方就尤其重要。相反,商业价值比较小的地方,有点错误也无伤大雅。那么,测试重点就该有所先后。权重计算影响产品质量的权重参数很多,我们可以估计和预测的有以下方面:1.项目架构,包括功能之间的依赖关系、功能的复杂度以及需求变更等2.大小,多少人开发多少人测试3.开发人员的能力,这个常常被忽略的因素往往起到很大的作用。我们可以从开发人员的薄弱环节,或是某个能力稍差的开发人员做的模块下手,找到bug是在情理之中的。二、矩阵法这种方法虽然麻烦,但是却最高效,也是目前看来最佳的办法。但是这个方法的执行需要QA manager有很强的执行能力以及一个沟通比较通畅的团队。以下为这种方法执行的具体步骤:首先,创建一个影响回归的功能特性矩阵(regression impact matrix)列出所有的特征和功能,例如X表示新特性将对已有功能造成直接影响;R表示新特性对已有功能存在间接影响。其次,创建一个影响测试的列表(Test Impact Checklist)这个列表可以有以下部分组成:1、影响范围2、对影响的描述3、影响所影响的特定情节4、代码变化部分,以及所影响的功能5、开发人员所推荐的回归,我想研发过程中,养成dev在改动代码的时候向测试人员提供回归测试推荐的习惯实在是必要的。6、对有依赖关系的特性的影响由于要达成某种改动的目的,也许需要其他特性做相应修改。策略执行回归测试,分为以下三个主要类型,也相应的分为以下三个阶段:第一阶段:提供被新功能或有依赖关系的改动直接影响的区域。这些区域至少要完成一组小的覆盖全部特性的基本功能的测试用例。第二阶段:把上个开发阶段(previous release)重复发现的问题列出来-这些信息可以从上个阶段的最终测试报告中找到。(也就是说每个阶段的测试报告需要包括重复发现的问题)同时,把客户关系和敏感的特性列出来-例如付费等。第三阶段:a、Hot-spot suite这是基于前两个阶段发现的比较多的问题区域。因为,缺陷往往在比较容易发生缺陷的地方隐藏更多,所以,这样的地方是要增加人手测试的。b、额外增加的测试,这些测试往往是由于晚期check-in代码,或者有依赖关系的特性改动。这个测试范围的定位需要再次使用影响测试列表Test Impact Checklist。c、Sanity Test,这是在产品发布给客户之前做的clean-run测试,类似于monkey test。=分割线=分割线=如何评估自动化测试工作量一切有组织的活动,都可以看做是项目,如果我们把自动化测试看作是一个项目来管理的话,就会发现,其中有许多规律可循。现代项目越来越朝着大型化、复杂化的方向发展,大大提高了项目测试的难度。自动化测试已经是不可缺少的测试管理之一。如何把自动化测试与项目管理更加紧密地结合起来,是当今测试管理研究的主要课题之一。工作分解结构方法是现代项目管理中的一个先进、有效的方法,是基于系统原理的方法,是测试计划、控制的基础。运用WBS(WBS:Work Breakdown Structure)即工作分解结构方法,可以很好地将自动化测试、更为有效地运用到项目管理中,对项目实行自动化测试管理,提高测试效率。一、测试项目的分解项目分解的主要目的是为项目测试控制确定具体的控制对象以及相应的控制目标。项目目标系统中的工期、费用和质量是项目控制中的主要控制目标。1、分解机构(WBS)项目的分解结构(WBS)可以将项目分解成可以管理的工作单元-工作包,从而能够更容易也更为准确地确定这些单元的费用和进度,明确定义及质量要求。WBS方法是一种全面地、系统地分析项目的有效方法,也是项目管理的基础性工作。在项目中应将项目系统分解成可管理的活动。分解的结果被称为项目分解机构,即WBS。关于WBS的定义,最早可从美国国防部国防系统开发工作的手册中得到解释:即工作分解结构(WBS)是一个以产品为中心的层次体系,由硬件、软件、服务和资料组成。它完全确定了一个项目。在确定的产品单元时,系统项目起着关键性的作用。WBS显示并确定了要研制或生产的产品,并将要完成的工作单元与最终的产品联系起来。具体可分为纲要性WBS、项目纲要性WBS、合同WBS和项目WBS等四类。WBS作为项目管理的基础性工作,它的建立必须体现项目本身的特点和项目管理组织的特点,必须遵守整体性、系统性和可追溯性的原则。在对一个具体的项目的WBS设计时,要注意其三个基本要素的设计,即结构、测试代码和测试报告的设计。2、工作包模型工作包模型的基本构成单元是不作包。而工作包则是用项目分解结构对项目分解后,在分解结果的基础上形成的。该模型的主要思路是将工作包作为项目控制的具体的基本对象。每一个工作包的基本内容是由一项或几项项目活动或分项项目构成。工作包能作为工期控制的基本单元,同时将费用控制体系的控制帐户和质量控制体系的基本单元也建立在工作包上,这样每个工作包就能够作为项目控制项目中各单元控制的共同的具体控制对象,并为项目进展情况综合信息(工期、质量、费用信息)的采集、传递提供了共同的基础,保证了控制过程所需的信息来源的单一性和集成性。由于每个工作包具有上述属性,因而由其组成的层次结构体系便不仅能反映项目的整个生产过程,而且能反映其所有特性,内部相互关系和控制目标要求,从而成为项目总体控制对象体系,并能支持项目控制的全过程。工作包模型建立后,就可以对各工作包进行测试,利用数据库技术对项目进行集成化管理。项目的分类和测试是否适合,对计算机能否在项目管理中得到广泛应用,显得尤为重要。二、项目信息的分类体系信息分类体系是建立一个合适的WBS基础。由于不同的项目参与者都是从自己所从事的行业出发,理解项目并制定信息分类体系,而这些信息分类体系所对应的测试体系一般各不相同,参与方会按自己的一套测试体系来测试WBS,这就影响了项目参与各方的信息交流,严重影响了自动化测试的应用。WBS与传统进度计划的主要区别在于,WBS是项目所有工作的集合,而传统进度计划一般不包含项目管理元素。最通俗的讲,WBS就是把一个项目的所有工作任务按照层次(树型结构)进行排列,从树状结构逐步到分面结构,再到树状与分面结构的混合方式。这种变化反映了项目测试管理所涉及的内容正逐步增加。可以一目了然项目的范围,以及任务之间的关系这种分类体系基本上采用了ISO技术报告的框架,并在其基础上进行了细化。这种分解体系最大的特点是层次清晰,简单明了,突出重点,按照不同的重要级别划分项目,有利于对项目的控制,且包含了所有的软件项目,适应于WBS的编制。WBS按照这种方式分解,并在此基础上形成测试体系,便于具体项目的应用。自动化测试的内容与方式自动化测试的主要内容包括对项目分解体系的测试,从时间上对项目实施全过程进行分解的测试,对不同的功能模块、数据库、系统架构等进行测试。自动化测试可采用需求分析、场景分析、流程分析、案例生成、执行测试、测试报告等组合流程。简单的测试如树状结构,这种结构有利于信息的汇总,上一级的测试是下一级所有测试的汇总,但这种分类方法存在着扩展性欠佳的问题。比较复杂的测试方式如分面结构,把测试分成不同的部分,如同积木,各个部分结合起来才有完整的意义。这种结构具有可扩展性。第三种测试方式是前两种的混合,即在同一面保持树状结构,改善汇总功能;但仍采取不同面的组合方式,以增加其扩展性。但项目的具体测试形式是随项目的类型和特点而定的,具体情况应具体对待。上面几种测试方式都已出现在不同国家和地区的项目测试体系中。随着测试水平的提高,目前国际上的研究倾向于采用第二种测试体系,都须具备稳定性,兼容性和灵活性的原则。三、运行wbs可解决传统测试遇到的问题自动化测试。通过工作包模型,在测试与项目管理之间架起一道桥梁,把它们紧密地联系在一起,极大地提高了项目测试的效率,和传统测试相比发生了质的飞跃。=分割线=分割线=关于软件测试的一些基本知识(一)软件测试方法:分为两类(1)静态测试:不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试(2)动态测试:通过输入一组预先按照一定的测试准则构造的实例数据动态运行程序,而达到发现程序错误的过程,特点如下:必须生成测试数据来运行被测试程序,取得程序运行的真实情况、动态情况,进而进行分析测试质量依赖于测试数据生成测试数据,分析测试结果的工作量大,使开展测试工作费时、费力、费人动态测试中涉及多方面工作,人员多,设备多,数据多,要求有较好的管理和工作规程一、概述1.定义也称结构测试或逻辑驱动测试,按照程序内部的结构对程序进行测试,通过测试来检查产品内部动作是否按照设计规格说明书的规定正常进行,检查程序中的每条通路是否能按照预定要求正确工作2.测试内容把测试对象看成是一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序的所有逻辑路径进行测试,通过不同点检查程序的状态,确定实际的状态与预期的状态一致3.测试基本技术(1)词法分析与语法分析(2)静态错误分析(3)程序插桩技术4.测试方法(1)代码检查法(2)静态结构分析法(3)静态质量度量法(4)逻辑覆盖法(5)基本路径测试法(6)域测试(7)符号测试(8)Z路径覆盖(8)程序变异5.黑盒测试与白盒测试黑盒测试白盒测试不涉及程序结构考查程序逻辑结构用软件规格说明书生成测试用例用程序结构信息生成测试用例可适用于从单元测试到系统联调适用于单元测试和集成测试某些代码段得不到测试对所有逻辑路径进行测试二、白盒测试基本技术1.词法和语法分析(1)获取信息可以获取软件组成的重要基本因数,如变量标识符、过程标识符、常量等组合获取的基本因数,可以得到软件的基本信息,如:v标号交叉引用表:列出各模块中出现的全部标号及标号的属性,模块以外的全局、计算标号v变量交叉引用表:列出变量定义及引用信息,变量的属性,变量类型(全局、局部)v子程序、宏和函数表:列出各个子程序、宏及函数的属性,输入、输出参数信息v等价表:列出在等价语句和等值语句中出现的全部变量和标号v常数表:列出全部数字常数和字符常数(2)作用直接从表中查出说明/使用错误,如标号交叉引用表、变量交叉引用表为用户提供辅助信息,如子程序、宏和函数表、等价表、常数表用来做错误预测和程序复杂度计算,如操作符和操作数的统计表2.静态错误分析用于确定在源程序中是否有某类错误或危险结构,包括以下几种:(1)类型和单位分析对源程序的类型进行检查,为了强化检查效果,扩充一些新的数据类型,进行静态预处理程序,分析程序中的类型错误(2)引用分析对程序中变量的引用进行检查,发现引用异常错误(如变量在定义前被引用,变量定义后未被引用)。采用深度优选的方法遍历程序流图的每一条路径建立引用异常的探测工具,包括变量定义表和变量引用表(3)表达式分析对表达式进行分析,以发现和纠正在表达式出现的错误,如:在表达式中不正确的使用了括号造成错误数组下标越界错误除数为零浮点数计算的误差(最复杂)(4)接口分析接口一致性是程序的静态错误分析和设计分析共同研究的题目,接口分析主要对下内容时进行一致性的分析:各模块之间接口一致性模块与外部数据库的接口一致性形参与实参在类型,数量,顺序,维数,使用上的一致性全局变量和公共数据区在使用上的一致性3.程序插桩技术(1)概述在动态测试中,是一种基本的测试手段,有广泛的应用主要借助向程序中插入操作,来实现测试目的的方法(即向源程序中添加一些语句(也称探测器),实现对程序语句的执行、变量的变化等情况进行检查)(2)设计时考虑的问题明确要探测哪些信息在程序的什么部位设置探测点需要设计多少个探测点(3)探测点设置位置(以Fortran为例)程序块的第一个可执行语句之前entry语句的前后有标号的可执行语句处循环语句之后条件语句之后logical if语句之后call语句之后go to语句之后(4)断言语句在程序中的特定部位插入某些用以判断变量特性的语句,使得程序执行中这些语句得以证实,从而使程序的运行特性得到证实,我们把这些插入的语句称为断言语句。三、白盒测试方法-静态测试1.代码检查法(1)目的通过桌面检查,代码审查和走查方式,对以下内容进行检查检查代码和设计的一致性代码对标准的遵循、可读性代码逻辑表达的正确性代码结构的合理性程序编写与编写标准的符合性程序中不安全、不明确和模糊的部分编程风格问题等(2)代码检查方式方式名称执行人员检查内容检查过程桌面检查程序员对源程序代码进行分析、检验,并补充相关的文档,发现程序中的错误代码审查程序员和测试员组成的审查小组通过阅读、讨论和争议,以程序进行静态分析的过程第一步:小组成员提前阅读设计规格书、程序文本等相关文档第二步:召开程序审查会,开发人员读程序,审查小组讨论、发现、解决问题走查程序员和测试员组成的审查小组通过逻辑运行程序,发现问题第一步:小组成员提前阅读设计规格书、程序文本等相关文档第二步:利用测试用例,使程序逻辑运行,记录程序的踪迹,发现、讨论、解决问题(3)代码检查项目(采用分析技术)检查变量的交叉引用表:检查未说明的变量和违反了类型规定的变量,变量的引用和使用情况检查标号的交叉引用表:验证所有标号的正确性检查子程序、宏、函数:验证每次调用与所调用位置是否正确,调用的子程序、宏、函数是否存在,参数是否一致等价性检查:检查全部等价变量的类型的一致性常量检查:确认常量的取值和数制、数据类型标准检:检查程序中是否违反标准的问题风格检查:检查程序的设计风格比较控制流:比较设计控制流图和实际程序生成的控制流图的差异选择、激活路径:在设计控制流图中选择某条路径,到实际的程序中激活这条路径,如果不能激活,则程序可能有错对照程序的规格说明,详细阅读源代码,比较实际的代码,从差异中发现程序的问题和错误补充文档根据以上检查项目,可以编制代码规则,规范和检查表等作为测试用例(4)编码规范程序编写过程中必须遵守的规则,规定代码的语法格式、语法规则,如排版、注释、标识符命名、可读性、变量、函数、过程、可测性、程序效率、质量保证、代码编辑、编译、审查、代码测试、维护、宏等各方面的编码要求(5)代码检查规则对程序逻辑结构检查时,所规定的规则,形成(6)缺陷检查表主要包括一些容易出错的地方和在以往工作中遇到的典型错误,形成表格形式重要性审查项结论文件结构重要头文件和定义文件的名称是否合理2.静态结构分析法在静态结构分析中,测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形图表,清晰地标识整个软件的组成结构,便于理解,通过分析这些图表,检查软件有没有存在缺陷或错误;包括控制流分析、数据据流分析、接口分析、表达式分析(1)函数调用关系图:通过应用程序各函数之间的调用关系展示了系统的结构。列出所有函数,用连线表示调用关系,作用:可以检查函数的调用关系是否正确是否存在孤立的函数而没有被调用明确函数被调用的频繁度,对调用频繁的函数可以重点检查(2)模块控制流图:由许多结点和连接

温馨提示

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

评论

0/150

提交评论