《2022年软件测试理论知识总结.docx》由会员分享,可在线阅读,更多相关《2022年软件测试理论知识总结.docx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 测试基础软件测试的定义和目的1, 什么是软件测试aIEEE 定义为: 使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满意规定的需求或是弄清预期结果与实际结果之间的差别;bG.J.Myers认为: 1)程序测试是为了发觉错误而执行程序的过程;2)好的测试方案是极可能发觉迄今为止尚未发觉的错误的测试方案;未发觉的错误测试;3)胜利的测试是发觉了至今为止尚(注: 1)软件测试是一个过程,包含如干活动,运行软件进行测试只是活动之一;2)运行软件测试可以人工方式也可以借助于工具,3)进行软件测试可以运行软件也可以不运行软件; 4)软件
2、测试的目的不仅仅是为了发觉错误;)2, 软件测试的目的人们对软件测试的目的的熟悉也经受了一个过程:20 世纪 60 岁月 20世纪 70 岁月中期 20世纪 90 岁月证明检测预防说明软件能够工作发觉错误治理质量软件生命周期方案需求分析设计编码测试运行和爱护软件研发组织和流程常见项目组架构开发经理项目经理SQA 测试经理配置经理软件开发组软件测试组配置治理组1 名师归纳总结 - - - - - - -第 1 页,共 36 页精选学习资料 - - - - - - - - - 基本软件研发流程1) 瀑布模型2) 螺旋模型3) RUP(Rational United Press )模型 全部工作流在
3、各个阶段都有表达;(IBM 收购)4) IPD(Integred Product Design)模型 从整个产品角度动身,不仅仅针对研发;(IBM)软件中引入缺陷的缘由软件缺陷:既指静态存在于软件工作产品(文档,代码)中的错误,也指软件运行时由于这些错误被激发引起的和软件产品预期属性的偏离现象;Bug :代码中的缺陷;有时也被广泛指因软件产品内部的缺陷引起的软件产品最终运行时和预期属性的偏离;(注:软件错误、软件缺陷、Bug 在实际工作中可以认为是一样;)常见的引入缺陷的缘由1) 开发过程缺乏有效的沟通,或者没有进行沟通2) 软件复杂度越来越高3) 编程中产生的错误4) 需求不断变更5) 项目
4、进度的压力6) 不重视开发文档7) 软件开发工具本身隐匿的问题8) ;缺陷类型1) 遗漏:规定的或者预期的需求未表达在产品中(可能未将规格说明全面实现,也可能需求分析阶段就遗漏了需求)2) 错误:未将规格说明正的确现(可能设计错误、也可能编码错误)3) 额外的实现:规格说明并未规定的需求被纳入了产品,得到实现;(也可以用下面五种类型表示:a 产品未达到产品说明书中要求实现的功能b 产品显现了产品说明书中没有的功能c 产品没有实现产品说明书中虽未指明但要求实现的功能d 产品显现了说明书中明确规定不显现的功能e 测试人员或用户认为产品不应使用)2 名师归纳总结 - - - - - - -第 2 页
5、,共 36 页精选学习资料 - - - - - - - - - 测试过程测试阶段划分单元测试( Unit Testing)针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的测试工作;(检测软件模块对具体设计说明书(LLD )的符合度 );集成测试( Integration Testing)在单元测试的基础上,将全部模块依据概要设计组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作;(检测软件模块对 概要设计说明书 (HLD )的符合度)系统测试( System Testing)将已经集成好的软件系统,作为整个基于运算机系统的一个元素,与运算机硬件、 外设、某 些支持
6、软件、数据和人员等其他元素结合在一起,在实际运行(使用)环境下,对运算机系 统进行一系列的测试工作;( 通过与需求规格说明书(SRS)作比较,发觉软件与系统需 求定义不符合或之冲突的地方)单元、集成、系统测试的比较1) 测试方法不同 单元测试属于白盒测试范畴 集成测试属于灰盒测试范畴 系统测试属于黑盒测试范畴2) 考察范畴不同 单元测试主要测试单元内部的数据结构、规律结构、反常处理等 集成测试主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能 系统测试主要测试整个系统相对于需求的符合度 3) 评估基准不同 单元测试主要是规律掩盖率 集成测试主要是接口掩盖率 系统测试主要是测试用
7、例对需求规格的掩盖率回来测试( Regression Testing)目的:验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能;(注:回来测试可以发生在任何一个阶段)回来测试策略1) 完全重复测试重新执行全部在前期测试阶段建立的测试用例,局部影响性;3 来确认问题修改的正确性和修改的扩散名师归纳总结 - - - - - - -第 3 页,共 36 页精选学习资料 - - - - - - - - - 2) 挑选性重复测试即有挑选地重新执行部分在前期测试阶段建立的测试用例,来测试被修改的程序a 掩盖修改法b即针对被修改的部分,选取或重新构造测试用例验证没有错误再次发生的用例挑选方法周边影
8、响法该方法不但包含掩盖修改法确定的测试用例,仍需要分析修改的扩散影响,对那些受到修改间接影响的部分挑选测试用例验证它没有受到不良影响,该方法比掩盖修改法更充分一点;c 指标达成法这是一种类似于单元测试的方法,在重新执行测试前,先确定一个要达成的指标,如修改的部分代码100%的掩盖、与修改有关的接口60%的掩盖等,基于这种要求挑选一个最小的测试用例集合;回来测试流程(适用于单元测试,集成测试,系统测试)1) 在测试策略制定阶段,制定回来测试策略2) 确定需要回来测试的版本3) 回来测试版本发布,按回来测试策略执行回来测试4) 回来测试通过,关闭缺陷跟踪单(问题单)5) 回来测试不通过,缺陷跟踪单
9、返回开发人员,开发人员重新修改问题,再次提交测试人员回来测试(注:回来测试比较适合使用自动化工具)其他测试阶段1) 验收测试a 验收测试是以用户为主的测试,验收组应当由项目组成员,用户代表等组成b 在通过内部系统测试及软件配置审查后,就可以开头验收测试c 验收测试原就上在用户所在地进行,但经用户同意也可以在公司内模拟用户环境d 验收测试依据合同、 需求规格说明书或验收测试方案对产品进行验证e 结果两种(接受与不接受)2) Alpha 测试(属于验收测试)由用户在开发环境下进行的测试,进行的测试;也可以是开发机构内部的用户在模拟实际操作环境下目的主要是评判软件产品的 FLURPS(即功能、局域化
10、、可用性、牢靠性、性能和技术 支持等)3) Beta 测试(属于验收测试)由软件的多个用户在一个或多个用户的实际环境下进行测试 Alpha 测试和 Beta 测试的区分Alpha 测试过程可控,但是参加人数有限;测试过程模型测试过程阶段划分Beta 测试参加人数巨大,但是过程不行控;4 名师归纳总结 - - - - - - -第 4 页,共 36 页精选学习资料 - - - - - - - - - 1) 测试方案阶段:测试方案 2) 测试设计阶段:测试方案 3) 测试实现阶段:测试用例、测试规程 4) 测试执行阶段:测试报告主要测试文档测试方案:指明测试范畴、方法、资源、以及相应测试活动的时间
11、进度支配表的文档;测试方案:指明为完成软件或软件集成特性的测试而进行的设计测试方法的细节文档;测试用例:指明为完成一个测试项的测试输入、预期结果、测试执行条件等因素的文档;测试规程: 指明执行测试时测试活动序列的文档;(后执行用例的输入是先执行用例的输出)测试报告:指明执行测试结果的文档;(注: 1)将工作过程表现出来 2)说明个人对测试对 象的态度)测试日报:每天测试执行情形的记录和总结;常见的测试过程模型1) 瀑布模型 缺陷:a 测试介入太晚 b 工作效率低 c 成本巨大 2) H 模型测试就绪点测试预备测试执行测试流程其他流程(如设计流程)测试预备活动,包括测试需求分析、测试方案、测试设
12、计、测试编码、测试验证另一类是测试执行活动,包括测试运行、测试报告、测试结果分析等;优点:5 名师归纳总结 - - - - - - -第 5 页,共 36 页精选学习资料 - - - - - - - - - a 测试与其他流程并发的进行b 测试预备和测试执行分开3) V&V 模型需求分析系统测试方案、执行系统测试设计、实现概要设计集成测试方案、执行集成测试设计、实现具体设计单元测试方案、设计、实执行单元测试现编码 代码走查优点:a 测试与其他流程并发的进行b 测试预备和测试执行分开c 测试过程子阶段与开发过程子阶段一一对应;V&V 的含义验证( Verification )和确认( Valid
13、ation )验证:(“ Are we building the product right. ” )1) 验证是保证软件正确地实现特定功能的一系列活动2) 验证是检测每一阶段形成的工作产品是否与前一阶段定义的规格相一样确认:(“ Are we building the right product. ” )1) 确认是指保证所生产的软件可追溯到用户需求的一系列活动2) 确认是检测每一阶段的工作产品是否与最初定义的软件需求规格相一样测试过程规范CMM 关于过程的要素1) 角色( Roles):人2) 入口准就( Entry Criteria ):执行活动所必需满意的条件3) 输入( Inputs
14、):完成某活动所需要加工或参考的资料、原材料4) 活动( Activities ):流程由一系列有相互关系的活动组成5) 输出( Outputs):完成某活动后所提交的工作产品6) 出口准就( Exit Criteria ):完成或退出某活动所必需满意的条件7) 评审和审计( Reviews and Audits )8) 可治理和受控的工作产品(Work Products Managed and Controlled )6 名师归纳总结 - - - - - - -第 6 页,共 36 页精选学习资料 - - - - - - - - - 9) 测量 Measurements:客观指标(一组数据)
15、10)书面规程( Documented Procedures)11)培训( Training ):技术支持12)工具( Tools):帮助说明13)职责:权责定义14)模板:标准格式15)检查表( Checklist):要点列表7 名师归纳总结 - - - - - - -第 7 页,共 36 页精选学习资料 - - - - - - - - - 软件质量软件质量的定义质量:实体基于这些特性满意需求的程度;明显的和隐含的需求)(一个实体的所以特性,基于这些特性可以满意软件质量的三个层次: (需求的分层导致质量也分层)1) 符合需求规格:符合开发者明确定义的目标,即产品是不是在做让它做的事情;目标是
16、开发者定义的,并且是可以验证的;2) 符合用户显示需求(基于SRS):符合用户所明确说明的目标;目标是客户所定义的,符合目标即判定我们是不是在做我们需要做的事;3) 符合用户的实际需求:实际需求包括用户明确说明的和隐含的需求;影响软件质量的因素: (铁三角 )1) 流程 好处:将不行见的工作过程变得可见可控;使得整个工作过程有序并削减内耗,提高工 作效率;2) 技术(设计、开发、测试)企业技术负载于人(现有职工的技术;企业是否重视技术积存)技术与流程的关系:有技术,无流程不行能进行现代化的软件开发;有流程,无技术不 可能生产高质量的产品3) 组织(非直接的)通过对流程和技术产生作用而间接对产品
17、质量产生影响;组织对流程的影响(组织应当将流程制度化,规范化以保证其执行效率;当流程执行中 遇到阻碍时,组织应赐予处理,保证流程顺畅执行)组织对技术的影响(保证有才能的人去做合适的事情(资源调配);组织重视并组织技 术的积存,建立学问库(财宝库)软件质量治理体系1) ISO9000 ISO9000 族 2000 版标准主要由 2000 版的八项质量治理原就:ISO9000、ISO9001、ISO9004 三个核心标准组成;a 以客户为中心( 在同一组织内部,顾客的定义是下游环节的人员是上游环节人员的顾客 )b 领导作用( 1 个制定, 4 个确保, 1 个制造, 2 个打算, 1 个评审 )c
18、 全员参加d 过程方法e 治理的系统方法f 连续改进g 基于事实的决策方法h 互利的供方关系8 名师归纳总结 - - - - - - -第 8 页,共 36 页精选学习资料 - - - - - - - - - 八项质量治理原就的意义:a 是质量治理的理论基础b 用高度概括,易于懂得的语言所表述的质量治理的最基本、最通用的一般性规律c 为组织建立质量治理体系供应了理论依据d 是组织的领导者有效的实施质量治理工作必需遵循的原就;2) CMM (Capability Maturity Model)/CMMI (Capability Maturity Model Integration)评估软件承办商
19、才能;帮助软件组织改进过程,提高过程才能基本术语:a KPA (Key Process Area)关键过程域(过程域简洁的说就是做好一个事情的某个方面,对于软件开发而言就是做好软件开发的某个方面)b 假如该级别的全部 PA 达到要求了,就认为该级别达到了c 假如判定 PA 达到要求呢?(每个 PA 包含几个目标(Goal);假如这几个目标都达到要求了,就认为该 PA 达到要求了)d 如何判定 Goal 达到要求呢?(每个 Goal 包含几个实践(Practice);每个实践达到要求了,就认为该 Goal 达到要求了)CMM/CMMI 用途a 可以识别组织的特长和弱处b 评估组织用以来评判软件承
20、包商的才能和风险c 领导可以借此来进行过程改进,提高企业软件生产才能d 开发和技术人员参照 CMM/CMMI 进行执行过程改进CMM/CMMI 的挑选a 企业本身项目特点(软件开发用 CMM ;有软件开发且包括硬件和选购用 CMMI )b 考虑企业自身的才能成熟度c 企业对经费的预算d 如企业只想在某个方面(如过程)提高进行改进(使用 CMMI )e CMM 向 CMMI 的转型CMM/CMMI 区分a 降低了复杂度和规模;扩大了模型掩盖率;表达方式 (CMM :阶段式表示; CMMI :阶段式(初始级、可重复级、已定义级、已治理级、优化级)、连续式(治理类、支持类、项目类、过程类)b CMM
21、I 强调对需求的治理;加强对工程过程的重视,强调度量;加强了对风险的管理; CMM 中的“ 组间和谐” 在 CMMI 中作为“ 集成化项目治理”CMM 中的一个目标;中的 KPA“ 同行评审” 在 CMMI 中抽象为 KPA “ 验证” ;c CMM 是作为评估标准显现的,是“ 必要” 是才能保证评估的标准;CMMI 是作为改进模型显现的,排列了较多的正确实践,易于过程改进;d CMM 主要是针对软件的CMM/CMMI 的各级特点a 初始级( Initial )过程才能是不行猜测的,过程是无序的;b 可重复级( Repeatable)过程才能是有纪律的;c 已定义级( Defined )过程才
22、能为标准的和一样的;( SEPG 软件工程过程组)d 已治理级( Managed)过程才能为可猜测的;e 优化级( Optimizing )过程才能的基本特点是不断改进,不断改善其项目的过程性能;ISO9001 和 CMM 的关系9 名师归纳总结 - - - - - - -第 9 页,共 36 页精选学习资料 - - - - - - - - - a 最大的相像点(强调治理、过程、规范化和文档化)b不同点( CMM把焦点严格对准软件;ISO9001 的范畴包括硬件、软件、流程性材料和服务)c两者之间的联系(CMM2 和 ISO9001 强相关; CMM 的每个关键过程域至少按某种说明与 ISO9
23、001 弱相关)3) 六西格玛(本质是一个全面治理概念,而不仅仅是质量提高手段)六西格玛治理法是以质量作为主线,以客户为中心,利用对事实和数据的分析,改进提升一个组织的业务流程才能,从而增强企业竞争力,是一套敏捷的,综合性的治理方法体系;六西格玛治理法原就: (与 ISO9000 族 2000 版的八大原就进行比较)a 留意客户b 留意流程c 全员参加d 预防为主e 事实依据的打算f 连续和突破性改进六西格玛改进区域:a 周期时间(流程速度、回应才能)b 输出物的变差(产品或服务的直通率,缺陷成本降低,客户中意上升)c 营运效率(更低成本)六西格玛的实施模式(DMAIC )a 定义( Defi
24、ne )提出问题,确定目标b 测量( Measure)收集资料,查找缘由c 分析( Analysis )讨论资料,确定缘由d 改进( Improve )优化解决方案e 掌握( Control )推行掌握系统三大质量治理体系的区分:ISO9000 是不分行业的质量治理体系;CMM/CMMI只适用于软件行业的质量治理体系;六西格玛是考虑质量、成本、进程三方面的不分行业的质量治理体系;软件质量模型项目和产品的区分(依据需求来源不同):项目:由特定用户提出,以合同、契约为方式表现,企业需求人员获得;产品:由企业内部的市场人员进行对潜在客户群进行分析后得出;质量模型:一组特性及特性之间的关系,它供应规定
25、质量需求和评判质量的基础;a 内部质量: 从接收到用户的原始需求开头到产品交付用户之间的全部中间过程产品的质量(由开发与测试人员打算)(影响因素“ 铁三角” 流程最主要)b 外部质量:软件系统作为一个整体运行时所体系出来的特性(系统测试-测试人员打算)c 使用质量:用户评判软件质量模型1) 软件功能性(核心)当软件在指定条件下使用时,软件产品供应满意明确和隐含需求的功能的才能;10 名师归纳总结 - - - - - - -第 10 页,共 36 页精选学习资料 - - - - - - - - - a 适合性( Suitability ):软件产品为指定的任务和用户目标供应一组合适的功能的能力;
26、b 精确性(Accuracy ):软件产品供应具有所需精确的正确或相符的结果或成效的才能;c 互操作性( Interoperabiblity ):软件产品与一个或更多的规定系统进行交互的才能;d 保密安全性( Security):软件产品爱护信息和数据的才能,以使未授权的人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对它们的拜访;e 功能性的依从性2) 软件牢靠性在指定条件下使用时,软件产品爱护规定的性能级别的才能;a 成熟性( Maturity ):软件产品为防止由软件中错误而导致失效的才能;b 容错性( Fault Tolerance ):在软件显现故障或者违反指定接口的情
27、形下,软件产品爱护规定的性能级别的才能;c 易复原性( Recoverability ):在失效发生的情形下,软件产品重建规定的性能级别d并复原受直接影响的数据的才能;(MTTR 平均复原时间和复原业务的程序)牢靠性的依从性3) 软件易用性在指定条件下使用时,软件产品被懂得、学习、使用和吸引用户的才能a 易懂得性( Understandability ):软件产品使用用户能懂得软件是否合适以及如何能将软件用于特定的任务和使用环境的才能;b 易学性( Learnability ):软件产品使用户能学习其应用的才能;c 易操作性( Operability ):软件产品使用户能操作和掌握它的才能;d
28、 吸引性( Attractiveness ):软件产品吸引用户的才能;e 易用性的依从性4) 软件效率(性能测试重点)在规定条件下,相对于所用资源的数量,软件产品可供应适当性能的才能;a 时间特性( Time Behavior ):在规定条件下,软件产品执行其功能时,供应适当的响应和处理时间以及吞吐率的才能;(即完成用户的某个功能需要的响应时间(响应时间是从发起恳求到收到胜利提示信息)b 资源利用性( Resource Utilization ):在规定条件下,软件产品执行其功能时,使用合适的资源数量和类别的才能;c 效率依从性5) 软件爱护性软件产品可被修改(修正、改进或软件对环境、需求和功
29、能规格说明变化的适应)的能力;a 易分析性( Analyzability ):软件产品诊断软件中的缺陷或失效的缘由或识别待修改部分的才能;b 易转变性( Changeability ):软件产品使指定的修改可以被实现的才能;c 稳固性( Stability ):软件产品防止由于修改而造成意外结果的才能;d 易测试性( Testability ):软件产品使已修复软件能被确认的才能;e 爱护性的依从性6) 软件可移植性软件产品从一种环境迁移到另一种环境的才能;a 适应性( Adaptability ):软件产品无需采纳有别于为考虑该软件的目的而预备的活动或手段就可能适应不同的指定环境的才能;11
30、 名师归纳总结 - - - - - - -第 11 页,共 36 页精选学习资料 - - - - - - - - - b易安装性( Installability ):软件产品在指定环境中被安装的才能(安装测试);c 共存性( Co-existence):软件产品在公共环境中同与其共享公共资源的其他独立软件共存的才能;d 易替换性( Replaceablity):软件产品在同样环境下,替代另一个相同用途的指定软件产品的才能;e 可移植性的依从性软件质量活动(软件质量保证(SQA 和测试的关系:a SQA 从流程方面保证了软件的质量b 测试从技术方面保证了软件的质量SQA )和测试)c 只进行 S
31、QA 活动或者只进行测试活动不肯定能产生很好的软件质量;SQA 的主要工作范畴: (被称为老师,医生,警察)a 指导(指导项目成员执行过程,培训)并监督(过程的执行是否符合规范)项目安装过程实施b对项目进行度量(度量数据的采集,度量使得不行见的智力过程变得可见)、分析,增加项目的可视性c 审核(审计过程产品是否符合相关模块,审计问题产生缘由)工作产品,评判工作产品和过程质量目标的符合度d进行缺陷分析(提出过程改进看法给SEPG),缺陷活动预防,发觉过程的缺陷,供应决策的参考,促进过程的改进SQA 需要职能:a 软技能(个人素养、沟通才能)自我修炼b 把握项目治理c 熟知软件工程d 明白业务学问
32、e 娴熟把握过程改进体系质量治理 PDCA 循环(螺旋式上升逐步实现质量目标):Plan 方案:制定方案,明确目标;基于目标的方法步骤Do 执行:执行 Plan Check 检查:检查实际执行结果与方案中预期目标的差距(目标的实现程度,如存在差距,分析缘由)Act 改进:依据分析缘由给出明确方案并制定下一轮过程改进目标12 名师归纳总结 - - - - - - -第 12 页,共 36 页精选学习资料 - - - - - - - - - Act 改进Plan 方案订正措施 方案设计检查检测 实施执行Do 执行Check 检查软件度量的概念和目的:度量:对事物属性的量化表示软件度量: 是指运算机
33、软件中范畴广泛的测度,包括对软件系统、构件或生命周期过程具有的某个给定属性的度的一个定量测量目的:a 提高软件生产率,缩短产品研发周期,降低研发成本、爱护成本(对于开发商)b 提高软件产品质量,提高用户中意度(对用户)c 为组织连续改进供应量化的指标和反馈(对开发商长远)软件度量的作用:a 懂得b 猜测c 评估d 改进软件度量分类:四个基本度量项:a 规模( Size):软件产品的大小b 工作量( Effort ):完成各软件工作产品和活动所用人时(或人天等)c 进度( Schedule):各软件工作产品和活动开头和终止的时间d 质量( quality )-缺陷 defect:在各软件工作产品
34、和活动中产生的缺陷数其他度量指标:a缺陷密度:研发活动发觉缺陷密度;研发活动引入缺陷密度;工作产品缺陷密度KLOC/b生产率: SRS、HLD 、LLD阶段文档生产率:页/人天;编码阶段生产率:c人天; UT、IT 、ST 用例设计阶段生产率:用例/人天测试执行效率:执行用例数/人天d用例密度:用例数/KLOC e;13 名师归纳总结 - - - - - - -第 13 页,共 36 页精选学习资料 - - - - - - - - - 测试方法是否需要明白软件内部结构(黑盒测试和白盒测试)注灰盒测试 是否需要执行被测对象(静态测试和动态测试)是否需要借助自动化脚本或工具进行测试(人工测试和自动
35、化测试)黑盒测试和白盒测试什么是白盒测试(基于程序结构的规律驱动测试)?白盒测试是依据被测软件分析程序内部构造,并依据内部构造设计用例,来对内部掌握流程进行测试,可完全不顾程序的整体功能实现情形;(玻璃盒测试,透亮盒测试,开放盒测试,结构化测试,规律驱动测试)】为什么进行白盒测试?a 白盒测试一般在测试前期进行,通过达到肯定的规律掩盖率指标,使得软件内部规律控 制结构上的问题能基本得到排除b白盒测试能保证内部规律结构达到肯定的掩盖程度,能够赐予软件代码质量的更大保证c白盒测试发觉问题后解决问题的成本较低白盒测试的常用技术: (静态分析和动态分析)a 静态分析:掌握流分析、数据流分析、信息流分析
36、等;掌握流分析 1) 相关概念程序元素: 一个程序元素通常是一个条件,一个简洁的语句或者一块语句(多个连续语句)掌握流关系:一个程序的掌握流关系表达了程序元素和它们执行的次序之间的联系 掌握流图:对应于掌握流关系的图 掌握流矩阵:由掌握流图得到,反映相邻程序元素之间的先后次序关系 2) 掌握流分析步骤 确定全部程序元素;依据程序元素之间的相互关系得到掌握流图;将掌握流图转换成掌握流矩阵;通过数据结构的形式把掌握流矩阵表示出来;借助算法对掌握流进行分析,找出存在的问题;3) 掌握流分析可以发觉的问题 确保写出的程序不应包含:转向并不存在的标号;没有用的语句的标号;从程序入口进入后无法达到的语句;
37、不能达到停机语句的语句;数据流分析 1) 相关概念14 名师归纳总结 - - - - - - -第 14 页,共 36 页精选学习资料 - - - - - - - - - 数据流分析法关键是数据的定义和引用;数据的定义:假如程序中某一语句执行时能转变某程序变量V 的值,就称V 是被该语句定义的;数据的引用:假如一语句的执行引用了内存中变量V 的值,就说该语句引用变量V ;2) 数据流分析步骤 依据代码得到数据流表;分析数据流表找到以下两种错误:(变量未定义但被引用;变量定义但未被引用);依据分析结果对代码进行修正和优化;信息流分析b动态分析:规律掩盖测试(分支测试、路径测试等)、程序插装等;规
38、律掩盖测试(分支测试、路径测试等)程序插装借助往被测程序中插入操作来实现测试目的的方法;系的信息);白盒测试的特点:a 测试人员需要明白软件的实现;b 可以检测代码中的每条分支和路径;c 揭示隐匿在代码中的错误;d 对代码的测试比较完全;e 实现代码结构上的优化;f 白盒测试投入大,成本高;g 白盒测试不验证规格的正确性;什么是黑盒测试(基于规格的测试)?(比如:打印语句,打印我们最关黑盒测试把被测对象看成一个黑盒,只考虑其整体特点,不考虑其内部具体实现;黑盒测试针对的被测对象可以是一个系统,一个子系统,一个模块,一个子模块,一个函数等;常见的黑盒测试类型:a 功能性测试:一种是次序测试每个程
39、序特性或功能,另一种途径是一个模块一个模块的 测试,即每个功能在其最先调用的地方被测试;b 容量测试:检测软件在处理海量数据时的局限性,能发觉系统效率方面的问题;c 负载测试: 检测系统在一个很短时间内处理一个巨大的数据量或执行很多功能调用上的 才能;d 复原性测试:主要保证系统在崩溃后能够复原外部数据的才能;常用的黑盒测试的方法:等价类划分法;边界值分析法;因果图分析法;判定表法;状态迁移法;15 名师归纳总结 - - - - - - -第 15 页,共 36 页精选学习资料 - - - - - - - - - 黑盒测试的特点:a对于更大的代码单元来说(子系统甚至系统)比白盒测试效率更高;b
40、测试人员不需要明白实现的细节,包括特定的编程语言;c从用户的视角进行测试,很简洁被大家懂得和接受;d有助于暴露任何规格不一样或有歧义的问题;e没有清晰的和简明的规格,测试用例很难设计的;f不能掌握内部执行路径,会有很多内部程序路径没有被测试到;g不能直接针对特定的程序段,这些程序可能特别复杂(因此可能隐匿更多的问题)灰盒测试 利用被测对象的整体特性信息,采纳黑盒测试方法;利用被测对象的内部具体实现信息,采纳白盒测试方法;假如既使用被测对象的整体特性信息,又利用被测对象的内部具体实现信息,采纳灰盒测试方法;两种信息占的比例不同,相应的灰度就不同;静态测试和动态测试静态测试: 不运行被测试的软件系
41、统,而是采纳其他手段和技术对被测试软件进行检测的一 种测试技术; (代码走读、文档评审、程序分析等);静态测试常用技术静态分析技术:定义:一种不通过执行程序而分析程序执行的技术;功能: 检查软件的表示和描述是否一样,没有冲突或者没有歧义,它描述的是订正软件系统的描述、表示和规格上的错误,因此是任何进一步测试执行的前提;主要有三种不同的程序测试可能性:a 考虑程序是否满意编码规章,语法上是否具有一样性和完整性;b 考虑文档描述是否规范、精确、便于查阅;c 考虑程序和文档之间的一样性;静态分析技术结构正规检视手工走查静态验证自动符号执行器技术评审语法分析器手工静态分析 (最重要的手工技术是 依据同
42、行评审形式正规的程度分为:同行评审 (对象: 方案、 需求文档、 设计图、 代码等):a 正规检视:以某个方案的裁决为目的,形式比较严格,有固定的流程,多用于文档的评审;b 技术评审:以某个方案的裁决为目的,一般由企业高层技术人员和治理人员参加;c 走查:以发觉软件产品中的缺陷为目的,没有严格规定,比较随便;自动化静态分析16 名师归纳总结 - - - - - - -第 16 页,共 36 页精选学习资料 - - - - - - - - - 动态测试: 依据预先设计的数据和步骤去运行被测软件系统,的一种技术;动态测试常用技术动态分析技术:从而对被测软件系统进行检测定义:对软件系统运行行为进行分析,包含程序在受控的环境下使用特定的输入进行正式的 运行,和期望