知识体系:1开发技术1.分析1.SRS:软件需求规格说明2.设计(1)概要设计(HLD):在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;(2)详细设计(LLD):对每个模块要完成的工作进行具体的描述。(3)DB:数据库基本设计;(4)GUI图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面设计3.调试调试:软件调试是在进行了成功的软件测试后才开始的工作。调试是通过现象,找出原因的一个思维分析的过程。软件调试与软件测试不同,测试的主要工作是找缺陷,而调试的目的是为了解决缺陷。2测试技术单元测试(UT执行):一个测试用例的测试执行;(主要是白盒测试)集成测试(IT执行):一个测试用例集的测试执行;(主要是灰盒测试)系统测试(ST执行):不同测试阶段的测试执行。(主要是黑盒测试)2.1白盒测试基于程序结构的逻辑驱动测试,又可以被称为结构化测试、逻辑驱动测试。动态和静态测试的分类依据在于:被测对象是否运行起来。2.1.1静态分析(1)控制流分析控制流相关概念:程序元素、控制流关系、控制流图、控制流矩阵。控制流分析能发现的问题:转向并不存在的标号;没有用的语句标号;从程序入口进入后无法达到的语句;不能达到停机语句的语句。(2)数据流分析数据流相关概念:数据的定义;数据的引用。数据流分析的左右:分析代码中关于数据定义和引用方面的错误;进行代码化。(赋值语句运算效率高)(3)信息流分析:信息流分析:输入变量和语句关系;语句和输出变量关系;输入和输出变量管理。2.1.2动态分析一.逻辑覆盖测试(分支测试、路径测试等)(1)语句覆盖。程序里的每条可执行的语句都要至少执行一次。(2)判定覆盖。每个判断的真假分支至少执行一次,就是真要至少取一次,假要至少取一次。(3)条件覆盖。每个判定中的每个条件可能至少满足一次,也就是每个条件至少要取一次真的,再取一次假的。(4)判定条件覆盖。它要求判断中的每个条件所有可能至少出现一次,并且每个判定本身的判定结果也要出现一次。(5)条件组合覆盖。每个判定中条件的各种可能组合至少满足一次。(6)路径覆盖。程序中每一条可能的路径至少执行一次。白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。二.程序插装它使被测试程序在保持原有逻辑完整性基础上在程序中插入一些探针&又称为G探测仪通过探针的执行并抛出程序的运行特征数据/基于这些特征数据分析,可以获得程序的控制流及数据流信息进而得到逻辑覆盖等动态信息2.1.3白盒测试的特点(1)测试人员需要了解软件的实现;(2)可以检测代码中的每条分支和路径;(3)解释隐藏在代码中的错误;(4)对代码的测试比较彻底;(5)实现代码结构上的优化;(6)白盒测试投入较大,成本高;(7)白盒测试不验证规格的正确性。2.2黑盒测试2.2.1黑盒测试概述黑盒测试:黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现;黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。又可以被称为基于规格的测试。常见的黑盒测试类型:功能性测试;容量测试;负载测试;恢复性测试。2.2.2黑盒测试用例设计方法(1)等价类划分等价类划分是把程序输入域划分成若干子集,然后从子集中选取少数具有代表性的数据进行测试。在子集集合中,各个输入数据对于揭露程序中的错误是等价的。等价类分为有效等价类和无效等价类。(2)边界值分析法由于需求界定不准确、设计不严密、程序书写手误等等原因,对于这些数据范围边界的判断是软件极容易出错的地方。边界值适用场景:1)输入(输出)条件规定了取值范围;2)输入(输出)条件规定了值的个数;3)程序规格说明书中提到的输入或输出是一个有序的集合;4)程序中使用了一个内部数据结构(3)输入域测试法1、极端测试:需要选择测试数据覆盖输入域的极端情况2、中间范围测试:选择域内部的数据进行测试3、特殊值测试:根据要计算的功能特性的基础来选择测试数据。尤其适用于数学计算。例:Sin()函数的周期(4)输出域覆盖法1、前提:对业务一定要非常熟悉2、分析各输出的等价类,通过选择那些会导致各个输出的等价类被达到的输入点来执行测试期望达到输出域等价类的覆盖;3、分析各输出的边界,通过选择那些会导致各个输出的边界值被达到的输入点来执行测试。这保证了系统功能已经被检查了最大和最小的输出条件,并且如果可能的话,所有错误信息的分类都已经产生过了。(5)因果图考虑到输入组合的情况有3个部分:因=输入条件;中间结点=输出值必须的前提条件;果=输出条件有4种符号:1.恒等,即因=1,果=1;因=0,果=0。即果跟随因的变化而变2.非,即因=1,果=0;因=0,果=1。即因和果是对立的,永远不会统一3.或,即有N个因中有1个因=1(至少有2个因),即果=1。即只要有一个因达到规定的需求,果就能出现4.与,即有N个因中(至少有2个因),每因都必须=1,果才会出现。即只有全部的因都符合条件了,果才会出现4种约束条件:1.E(互斥),相当于“非”2.I(包含),相当于“或”3.O(惟一),表示a和b当中必须有一个成立,且只有一个成立4.R(要求),相当于“恒等”(6)判定表判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,因果图与判定表的关系:因果图法是找出因和果,通过因果图转换为判定表(7)正交试验法正交试验设计方法是从大量的试验数据中挑选适量的、有代表性的点,即使用已经造好的表格“—”正交表来安排试验并进行数据分析(8)流程分析法流程分析法主要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,这是从白盒测试中的路径覆盖分析法借鉴过来的一种十分重要的方法。重点在测试的流程,因此每个测试用例验证即可,流程没有问题并不代表系统功能没问题了,还要针对单个功能进行测试,只有两者都测试到了才算充分。主要的用途:业务流程的测试安装流程的测试。方法:主要分为基本流和备注流。基本流就是在正常情况下走的流程,备注流是一些异常情况下才走的(9)状态迁移法主要关注各种状态之间的转换,也就是说在一个整个流程来看是否能够很好的切换状态,只能将测试的状态转换测试到主要的用途:业务流程的测试,安装流程的测试(10)错误推断法错误推断法一般基于以往的测试经验和直觉,参照以往的软件系统出现的错误,推测程序中可能存在的各种错误,列出程序中所有可能有的错误和容易发生错误的情况,有针对性的设计测试用例。2.2.3黑盒测试的优点(1)对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高;(2)测试人员不需要了解实现的细节,包括特定的编程语言;(3)从用户的视角进行测试,很容易被大家理解和接受;(4)有助于暴露任何规格不一致或有歧义的问题。3流程3.1瀑布模型用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。3.2螺旋模型(第九页见图)3.3RUP模型(第十页见图)RUP(RationalUnifiedProcess)是Rational公司提出的一套开发过程模型,它是一个面向对象软件工程的通用业务流程。它描述了一系列相关的软件工程流程,它们具有相同的结构,即相同的流程构架。RUP为在开发组织中分配任务和职责提供了一种规范方法,其目标是确保在可预计的时间安排和预算内开发出满足最终用户需求的高品质的软件。RUP具有两个轴,一个轴是时间轴,这是动态的。另一个轴是工作流轴,这是静态的。在时间轴上,RUP划分了四个阶段:初始阶段、细化阶段、构造阶段和发布阶段。每个阶段都使用了迭代的概念。在工作流轴上,RUP设计了六个核心工作流程和三个核心支撑工作流程,核心工作流轴包括:业务建模工作流、需求工作流、分析设计工作流、实现工作流、测试工作流和发布工作流。核心支撑工作流包括:环境工作流、项目管理工作流和配置与变更管理工作流。RUP汇集现代软件开发中多方面的最佳经验,并为适应各种项目及组织的需要提供了灵活的形式。作为一个商业模型,它具有非常详细的过程指导和模板。但是同样由于该模型比较复杂,因此在模型的掌握上需要花费比较大的成本。尤其对项目管理者提出了比较高的要求。3.4IPD模型(集成产品开发过程)它利用现代信息技术,把传统的产品开发过程中相对独立的阶段、活动及信息有效地结合起来,并重新划分产品开发阶段。采用系统化的研究方法,在原有的分析基础上着眼于对开发活动进行综合。集成产品开发过程的实质就是对现有的产品开发过程进行改造(Reengineering),改造的方式就是集成化。这种改造要求从一开始就考虑到产品整个生命周期的所有要素,以确保开发出的产品满足顾客要求,实现质量目标,并以预期的成本加快产品上市。3.5V&V模型V&V模型(测试过程)1.验证与确认V&V:验证(VERIFICATION)强调过程;确认(VALIDATION)强调结果。2.V&V告诉我们:尽早测试(尽早准备、尽早执行);全面测试(文档、代码);全过程测试(测试参与到开发过程中、对测试过程全称跟踪);测试是独立的、迭代的系统测试执行集成测试执行单元测试执行代码审查需求分析SRS评审SRS基线化概要设计HLD评审HLD基线化详细设计LLD评审LLD基线化CODE系统测试计划系统测试方案设计系统测试用例设计集成测试计划集成测试方案设计集成测试用例设计单元测试计划单元测试方案设计单元测试用例设计4组织5质量体系5.1ISO9001ISO9001:标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一进补充。5.2CMMCMM(capabilltyMaturityMoelel):软件能力成熟度模型CMM(提唱过程决定质量)持续改进过程可预测的过程管理变更标准.一致的过程产品过程质量纪律的过程集成工程过程项目管理CMM1级特点:(个人英雄主义)A项目的成功依赖于一个非常优秀的项目经理的团队。B无法重复以往成功的实践。C缺乏基本配置管理1初始级initial不可预测并且缺控制2可重复级Repeatable可重复以前的主要经验3已定义级Definded过程被描述,并得到良好理解4已管理级Managed过程被描述,并得到良好理解5优化级关注过程改进可视度:整个过程不可预测,不可见,不可控。(过程管理非常混乱)CMM2级特点:(有纪律)能够重复以前成功的经验和实践。引入合理需求变更(需求管理)测试与开发分离,整个过程能力可概为有纪律的。可视度原始需求——需求分析——设计——编码——测试——产品CMM3级特点:(有过程,经过同行评审)组织中有一个专门负责组织的标准软件过程。(SEPG)可视度同CMM2但整个过程是标准和一致的。CMM4级特点:(量化管理)过程能力是可预防的,因为过程是已测量的并在可测的范围内运行。组织能定量地预测过程和产品质量方面趋势。软件产品具有可预测的高质量。可视度同CMM3但整个过程是可预测的。CMM5级特点:(改进过程本身)通过缺陷来发现过程的不足。新的开发技术触使改进过程。可视度同CMM¥级整个是以改进的。CMM的用途:a.评估组用来识别组织中的强处和弱处;b.评价组用来识别选择不同的业务承包商的风险和监督合同;c.管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需进行的活动;d.技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程。ISO9001和CMM的关系:相似点:强调管理、过程、规范化和文档化;不同点:CMM把焦点对