精准测试白皮书-2019最新版

精准测试诞生的背景

  现代社会是创建在各类以计算机为基石的软件技术基础之上的。随着突飞猛进的需求变化,软件系统愈来愈复杂。不少人以为软件开发才是重要环节,但实际上,没法对大型软件进行有效的质量把控,就没法真正构建与维护大型软件。——系统中任何一个错误均可能致使整个系统的崩溃,形成没法弥补的损失,系统的任何一个微小的修改均可能引入新的缺陷致使维护困难重重。前端

  然而,如何从极端庞大复杂的系统中迅速及时地找到故障所在,倒是行业的一大难点。目前国内软件测试基本处于两种状态:一是绝大多数企业采用功能(黑盒)测试,二是部分对软件产品有高可靠性要求的关键软件,企业会使用代码级的白盒测试工具,但这两种传统的测试办法在目前的软件智能化趋势下,更像是用竹竿打怪兽,彻底没办法应付的。   功能(黑盒)测试,测试者看不到程序内部逻辑结构,这种办法对软件可靠性要求不高的应用来说问题不是很大,可是对于大型金融保险、工业软件、航天军工等关键系统就意味着时刻携带隐形的巨大风险。为此,功能测试后期须要极高的人力投入才能完成复杂逻辑的用例分析和设计。然而对于黑盒测试来讲,因为咱们没法获知内部的逻辑构造,程序越大,杀虫剂效应越明显。而行业内看成银弹的自动化测试,当自动化程序自己规模扩大之后,它的维护自己就存在了很严重的问题。   代码级(白盒)测试工具通常重点应用在研发阶段的单元测试上,知足了客户的部分高可靠性需求,但因为其价格高昂、技术老化,仅适合于小规模迭代瀑布式开发的软件,没法完成复杂的系统级别的测试以及分布式基于云的测试,更没法适应敏捷迭代的开发模式。并且值得一提的是,目前白盒测试工具基本都是国外产品,一般这些产品没法完成深度的定制化功能以及快速的用户响应,代码安全也是一个较大的问题。   随着国内军民各项大型核心软件系统的上马,研发一种面向高复杂度大型软件、自主可控的高性能智能精准测试平台,显得迫在眉睫。正是在这种时代背景下,2012年初,星云测试团队开始心无旁骛的研发征程。精准测试是个交叉学科,里面涉及到编译器、测试分析、图形技术、高性能通讯与存储,软件的研发等多项底层技术。经历无数个不眠之夜对技术难点突破的煎熬与最佳解决方案的反复推敲,星云精准测试产品在诸多方面率先实现了重大技术创新,成功突破了白盒测试使用难度大、价格高昂的桎梏,有效消弭了国外高端测试产品垄断的壁垒。星云精准测试产品更偏向于软件测试业界的“灰盒测试”,即用简单的黑盒操做办法,能够同时获得单元级和系统级的精准测试数据。   “星云精准测试”在众多性能上大幅超越国外进口高端白盒测试工具产品,并在数据追溯、覆盖率可视化、智能回归、智能缺陷定位、分布式数据穿透与追踪等特性上有突出贡献。“星云精准测试VIP大企业离线版云平台”在总体测试功能上的优异特性,成功得到了一批重要大型企业的高度承认及产品采购。   星云精准测试的首发版本为:穿线测试ThreadingTest,2014年6月6日上线,侧重于系统级白盒测试技术,测试用例和代码逻辑的双向追溯技术,测试示波器技术,覆盖率可视化技术。2015年8月6日,“穿线测试”正式改名为“星云精准测试”。在继承穿线测试总体技术上,星云精准测试加强了回归测试用例的自动选取技术,缺陷最后执行时序分析、智能缺陷定位、敏捷环境下多版本白盒测试数据的聚合、聚类分析、结合代码结构与动态数据的测试漏洞检出、代码安全特性,全面的测试管理特性等几十种优秀功能。目前有“星云精准测试VIP大企业离线版云平台”、“星云精准测试PASS在线云平台www.teststars.cc“、“全自动测试用例驱动生成系统Wings”等多种工具产品。   星云精准测试旗下产品平台有Horn、Paw、Shell、Wings等系列产品。适用语言和平台暂为:Java、Object-C、C8九、C9九、C++0X十一、C#等;适用平台:Android、J2EE(、Web)、Java Desktop、iOS、MacOS、Linux(X8六、X6四、mips、arm、powerpc、UNIX(AIX)、VXworks、Windows(visualstudio.net)、Windows操做系统、WinCE嵌入式平台等。为响应广大用户的需求,目前正在进一步扩展适应的语言和平台覆盖面。   经过精准测试,即继承了传统功能测试前期的高效率运行区间,又能在后期经过系统的数据,让开发、测试充分协同,完成全程高效的测试。web

(1)将测试团队的价值放大,可以将开发与测试更加紧密的链接起来,互为支撑。算法

(2)采用精准、可信测试技术,测试管理的难度大幅度下降。spring

(3)下降企业对人员的过分依赖,经过系统适应人员的变动。浏览器

               图1-1 精准测试在大型系统的效率运行分析安全

星云精准测试,既保证了传统功能测试前期的高效率运行区间,又能在后期经过系统的数据,让开发、测试充分协同,完成全程高效的自动化精准测试。服务器

第二章 精准测试的定义

精准测试:是一种国际独创的软件测试技术,旨在创建大型软件系统的测试数据与源代码之间高度的可视化追溯机制,实现精准缺陷预防及定位。它有力的打破了软件开发、测试、维护及管理人员等之间的数据交流屏障,支持超大型应用从开发、迭代、维护全流程的可视化精准测试跟踪和测试分析。即便是初级测试人员也能易于学习掌握,用黑盒测试的方法实现精准化测试。   精准测试使软件测试从彻底依赖人工记录、验证,转换为机器智能的全过程精准、可视、可信的全新检测模式。精准测试数据和黑盒测试优雅对接,在不改变常规测试流程的状况下,就能够得到大量的精准分析数据,并直接引导用户进行高效的后续测试与质量风险评估。用户手动“点测“或者与自动化对接被测试应用的同时,能够快速记录对应的代码执行逻辑并实施同步运算和分析,给出被测试应用的质量诊断报告。例如测试过程当中的关键模块漏测分析、测试充分度度量、代码静态质量分析以及崩溃的代码级的捕获和分析等。   精准测试有着超强的数据追溯机制,经过创建用例和代码运行时数据的映射关系,可以很好的协同开发和测试工做;它适用于当前流行的敏捷开发、测试体系,在版本迭代中,可以准确的计算出因为版本迭代影响和波及的测试用例,快速给出测试复杂度报告并核肯定测试范围优先级,极大减小上线风险。在团队管理上,精准测试亦产出数十张过程及管理的不一样剖面报表,以知足各级管理需求。cookie

   第三章 精准测试的基础架构介绍

3.1 精准测试的技术架构

  星云精准测试的技术架构:经过对源代码的插装分析出代码的静态结构信息,运行插装后的代码,测试工程师经过人工或自动化的执行用例,软件示波器经过采集到的这些数据,进行相关密集运算,获得测试数据。结合以前已有的代码静态结构信息,在星云客户端可实现用例与函数直接的互相追溯,再经过星云测试工具的企业项功能,缺陷定位、用例聚类分析、回归测试用例和最小测试用例集获得相应的测试数据,星云测试经过报表的形式展现测试数据,导出批量测试报告。    精准测试从某个层面来说,是赋予了测试用例真正的生命力,传统的测试用例仅仅是一些只可以依赖人去理解和分析的文本文件而已,在计算机和算法层面则没有存在乎义和价值。下图是精准测试的总体架构图:架构

                               图3-1-1 精准测试的整体架构图   你们首先可能会比较好奇,“用例魔方”的概念是怎么来的?测试用例魔方是在精准测试的设计、开发和商业实践中天然产生的功能集合的一个统称。当咱们把精准测试的和用例分析相关的功能画成架构图形表示的时候,它天然而然地看起来就像魔方,所谓“魔”则是精准测试核心算法所赋予的超能力。
上图是星云精准测试系统的整体结构图,“测试魔方”即分布在左上角区域。你们知道精准测试的核心技术是测试用例与代码的追溯关系的创建,而在此之上就能够构建测试魔方的核心功能区。以下:                       图3-1-2 精准测试的测试魔方并发

所谓“方”其实是表明测试用例的集合,每一个测试用例用一个小方块标识,全部测试用例的集合用一个大方块。精准测试体系中,测试用例对应的代码逻辑均可以实现全自动的追溯和存储,所以测试用例就具有了进行深刻分析的基础。在精准测试的用例魔方中,目前存在三个面(随着后续功能的增长,将增长分析的面),即回归测试用例选取、测试用例聚类分析、测试用最小化,同时辅之以智能缺陷定位技术。下面对精准测试的功能作详细的说明。

3.2 软件示波器

   精准测试采集到的测试数据在软件示波器页面,经过可视化的窗口展现,实时展现采集到的块、条件和函数信息,在下方列表实时展现函数调用信息。软件示波器采集到的测试数据,完美实现了用例与代码的自动关联。经过测试数据的反向追溯分析,开发人员可进行一致性修改,避免修改引入新的缺陷,经过正向追溯结果,开发可对用例的执行进行全面掌握,可用于快速修复缺陷和详细实现确认。   用例与代码的在追溯是精准测试的基础功能,后面的高级算法都在这个基础上展开,用例和代码的追溯就像一个全景的调试器,只要功能由测试人员进过运行,全部的内部代码执行逻辑瞬间就能够展现出来。   软件示波器中的测试用例能够从现有的测试管理系统导入进来,当准备开始执行一个用例的时候,选中用例点击开始,而后驱动被测试系统运行,那么软件示波器就会采集到程序内部运行逻辑对应的波形信息,当用例执行结束,点击中止。这个用例运行阶段的数据,经过开始和结束的边界就记录下来了。   软件示波器主要起到有效的可视化测试过程的做用。在执行用例过程当中,若是没有采集到测试数据或者程序出现崩溃的状况,软件示波器就像人的心脏并无跳动同样,一根横线拉直。正常采集到数据,将有持续的波形展现出来,高效而精准地监控到程序细微的运行情况。它能够精密捕获每一个软件单元任何微小的运行波动和行为改变,并支持屡次运行数据的比对。   同时软件示波器也提供一个辅助的等价类划分的功能,它将一个用例从开始到结束所执行的路径信息终值,完整记录下来。若是两个用例终值不同,就能够肯定为不是等价类。对于不少从功能表面很难界定是否等价类的测试用例,软件示波器能够给出精确结果。   经过软件示波器高速采集程序数据:

(1)只要测试开始执行,便可以透明方式采集功能运行过程当中对应的程序的运行逻辑。

(2)在系统高速运转下采集,可保证对原有应用无干扰,超过1500w/s的采集速率。

(3)可采集程序的条件,执行路径,执行参数,内存使用等动态运行数据。   软件示波器的采集速度极快,目前最高能够每秒钟采集1500万条测试数据,对被测试程序的性能影响很是小。  

                图3-2-1 软件示波器

为了方便客户在对测试时的实时数据监测,数据实时动态刷新的时候可以方便看到数据,星云作出了实时数据监测的悬浮窗,这样就能在运行项目的时候就能更方便的看出数据的变化

               图3-2-2 软件示波器悬浮窗

只要将鼠标移至悬浮窗就能够看到这条测试用例的ID和名称

悬浮窗的块,条件和函数就是动态实时监测界面的块块,条件和函数

悬浮窗的额绿色按钮表示开始,中间的红色按钮表示暂停,后面的按钮表示通知

后面的圆圈分别表示了块,条件和函数的消息数,中间的圆圈表示了测试用例运行时间

1位置:鼠标点击能够收放左侧的数据块

2位置:点击鼠标左键开始接收当前用例的运行的数据 快捷键:Space

3位置:点击鼠标左键暂停当前接收 快捷键:Ctrl+Shift+Space

4位置:点击鼠标左键中止当前用例的数据接收 快捷键Space

5位置:类/块数据类型切换[视图切换] 快捷键:Ctrl+Shift+Q

3.3精准测试的双向追溯

精准测试提出了测试用例和代码的双向追溯,它也是精准测试核心技术之一。即运行一个测试用例之后,精准测试能够经过程序自动的记录和显示这个测试用例执行的代码。若是测试人员关注某一些代码行,它能够追溯出哪些测试用例在运行过程当中运行过这段代码。经过这个技术特性,测试工程师的每一个测试用例均可以进行量化分析和统计,这些量化数据既能够用来对测试工程师进行工做的考量,也能够提供开发人员和测试人员之间进行信息化的交流。    双向追溯技术记录了每一个测试用例对应的程序内部的执行细节,细致到每一个条件、分支、语句块的执行状况。开发人员能够经过双向追溯的结果去理解程序逻辑,进行软件维护以及进行可一致性的修改。开发和测试能够顺利交流,增长测试和开发的交流效率。     

双向追溯技术正向追溯

将测试用例和代码执行信息自动关联,可到函数级别及代码块级别;经过正向追溯可直接在代码级定位测试现场故障和缺陷逻辑,并提供最后运行的时序数据;经过正向追溯自动记录产生功能对应的详细设计实现,辅助软件解耦和架构分析。

            图3.3-1 双向追溯(正向)-测试用例追溯到代码

           图3.3-2 双向追溯(正向)-测试用例追溯到代码

双向追溯技术反向追溯

将代码执行、函数、代码块级别和测试用例执行信息自动关联,经过反向追溯可直接在观察代码变更所影响的测试范围,帮助开发人员代码修改影响功能范围评估与测试人员对代码修改部分所影响的测试用例进行评估。

              图3.3-3 双向追溯(反向)-代码追溯到测试用例

             图3.3-4 双向追溯(反向)-代码追溯到测试用例

数据追溯技术-追溯测试用例的全景调用

  精准测试经过正向追溯把测试用例运行的代码执行进行了全景绘制,在全景图中,测试人员能够有效的观察到函数之间的总体的调用与走向,观察出被测模块与上层之间的调用关系

             图3.3-5 测试用例运行的代码总体调用

数据追溯技术-针对多系统多模块(微服务)的追溯

  对于系统之间或模块之间每每经过HTTP、HTTPS、等通讯协议进行,而星云测试经过agent技术,把测试用例进行过的多个系统或多个模块之间的调用进行了记录并绘制成展现图,测试人员能够很直观的观察出测试用例从起始点到进行的各系统或各模块之间的调用关系图。

            图3.3-5 多业务模块数据穿透之间的调用

3.4 分布式结构下的数据穿透

微服务是一个新兴的软件架构,它把一个大型的单个应用程序和服务拆分为数十个的支持微服务,独立部署、互相隔离,经过扩展组件来处理功能瓶颈问题,比传统的应用程序更能有效利用计算资源。微服务之间无需关心对方的模型,它经过事先约定好的接口进行数据流转,使业务能够高效响应市场变化。但微服务一个明显的表象就是随着服务的增多,传统的测试模式受到很大制约,没法有效进行下去,威胁到总体系统质量。

星云测试(www.teststars.cc)发布分布式微服务精准测试解决方案,是目前市场上惟一可达到在复杂分布式系统中跨多个服务器进行代码白盒级分析,并实现请求分布式追踪的测试平台。其中产品内的穿透模块,能够支持各类主流微服务通讯架构,例如httpclient,springcloud以及消息队列,将并发访问场景下跨多个服务多组代码逻辑分离并重建追踪出来。实现了业务逻辑的代码在开发层面经过微服务离散后,在测试阶段则能够反向复原整个完整代码执行视图。精准测试里面的穿线概念(Threadingtest)增长了第三层含义,即针对的分布式服务的穿透能力。

星云测试针对复杂的分布式系统中跨多个服务器(好比启动多个spring boot)进行代码白盒级分析提供分析,实现请求分布式追踪,产品内的穿透模块,能够支持各类主流微服务通讯架构,例如httpclient,springcloud、dubbo以及消息队列等。

星云测试将多个用户并发执行测试用例场景下跨多个服务多组代码逻辑分离并重建追踪出来。

默认状况用户标识采用浏览器的cookie值,测试前端浏览器设置。

微服务支持如下协议:

h:HTTP3,HTTP4,OKHTTP,org.springframework.http.client,cn.hutool.http,dubbo,feign客户端

**图3.4 微服务**

第四章 精准测试的核心组件与功能

精准测试的核心组件与功能包含:软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系。

精准测试系统的本质是一套强大的计算机开发与测试系统,实现数据可视化联动的辅助分析系统,它的关键技术是测试用例和代码的双向追溯技术。在这项技术的基础上,不少高级测试算法得以应用同时将测试和开发进行很是紧密的链接。精准测试系统并无取代人工设计用例、执行用例的过程,可是经过对该过程深刻到代码层的分析,能够至关大的程度改进人工测试所产生的各类问题。

接下来将从风险控制、工做协同、敏捷迭代、团队管理、知识库累积五个方面详细解析精准测试的核心组件与其功能。

4.1 风险控制

4.1.1 七种测试覆盖率

星云精准测试提供7种测试覆盖率:分别为:SC0语句块覆盖率、Ture覆盖率、Both覆盖率、CDC覆盖率、Branch覆盖率、MC/DC覆盖率。

精准测试支持查看一个模块的范围内的覆盖率,以及把一些代码排除出计算范围从新进行计算等高级功能,也能够查看到新增代码部分的覆盖率状况。经过对这些覆盖率数据的分析,能够将风险控制到最低。

                    图4-1.1-1 七种测试覆盖率

MC/DC覆盖率可视化

星云精准测试覆盖可视化技术使每种覆盖率如何计算、分子分母分别对应程序的哪些单元,展现的很是清晰。

星云测试提供MC/DC覆盖率,即修正断定条件覆盖,该覆盖率数据 MC/DC是DO-178B Level A认证标准中规定的,欧美民用航空器强制要求遵照该标准。对于金融系统的一些关键模块,也能够采用这个覆盖率标准,MC/DC覆盖率能够基本保证被测试软件不存在缺陷。

MC/DC覆盖是指全部符合条件中的子条件,在保持其余子条件不变的状况下,它本身的真假变化就会引发整个条件结果的变化,若是符合条件中的每一个子条件都知足了,那么整个条件的MC/DC就知足了。星云精准测试提供相关的条件组合的结果展现,直接分析MC/DC覆盖率的知足状况。

                图4-1.1-2 MC/DC覆盖率可视化

4.1.2 新增代码覆盖率

  敏捷模式下迭代频繁,测试人员每每被要求对本次变更或者新增的功能进行回归,但实际过程当中新版本的代码常常由不少开发进行修改,容易出现彼此不知道或遇到有代码洁癖的,改了别人的代码,你们都不知道。一般状况是,要么测试范围定小了,遗漏了;要么测试范围过大,付出过多代价,而精准测试经过新版本与老版本之间的差别进行比对,给出变更和新增的代码的范围,帮助测试人员对本次要求的变更代码和新增代码进行针对性的覆盖率统计展现。

 

                 图4.1.2 新增代码覆盖率

4.1.3测试覆盖率范围筛选与再统计

   在作精准测试或统计覆盖率时,每每测试管理者、开发人员、测试人员为了保证测试覆盖率的正确性,会对某个方法、类进行查看或在统计中把代码中一些废弃的函数或特殊测试不到代码进行移除,从而让测试代码覆盖统计率达到更加准确。星云精准测试在设计中,经过多种搜索、方法、类、模块过滤等功能把须要统计的范围进行缩小或不须要的统计的进行去除,并根据用户的选择进行覆盖率再统计展现。

 

                图4.1.3 测试覆盖率范围筛选与再统计 4.2 工做协同

4.2.1 打通开发与测试的隔阂

  精准测试打通开发与测试的协同工做通道,使得开发与测试可以更好的沟通,提升工做效率。传统模式下,开发人员关注的是代码,测试人员关注的是业务角度的测试用例,他们没有直接关联。开发和测试的沟通,基本就是采用天然语言、Excel表格、内部系统沟通,存在大量的问题。例如测试工程师发现一个缺陷,提交到缺陷系统,开发须要花费大量时间理解、准备数据、复现、调试,直到最后的修正。由于业务上的功能执行和代码并无明确的关系,一般测试工程师执行完功能测试用例后,让开发人员帮助评审也很是困难。

若测试工程师提供的测试结果都是比较模糊的功能逻辑描述,重现缺陷须要花费大量的时间。开发人员修改代码后,对于变动描述,以及变动引发的关联问题描述一般也都很模糊,致使测试又出现新问题。

企业采用精准测试技术后,经过执行用例能够直接追溯到对应执行的程序代码块,这样的数据化沟通,将使开发人员和测试人员之间的协同工做效率大大提升。

                 图4.2.1 协同模式

4.2.2 源码动静态数据的统一

  星云精准测试经过插装获得的项目静态结构信息,结合测试后采集到的测试数据,可以精准记录测试的过程,经过这些静态数据和动态数据视图,便于开发人员基于图形化结果进行快速分析。

对于不懂开发的测试工程师,经过程序控制流程图的图形以及经过颜色表示的覆盖信息,能够直接看到程序内部漏测的逻辑是什么,也能够经过这些结果直接与开发沟通,进行辅助用例和逻辑的补充。

由于内部逻辑可以图形化的打开和看到,能够有力保证黑盒测试后期,开发快速理解和介入瓶颈问题,保持全程测试的高效执行。

          图4.2.2-1 源码静态结构与动态测试数据统一图(函数调用图)  

          图4.2.2-2 源码静态结构与动态测试数据统一图(控制流程图)  

          图4.2.2-3 源码静态结构与动态测试数据统一图(简易流程图)   下图展现的是一个函数的静态结构,与动态测试数据结合的流程图,如图框架是静态结构,绿色显示部分是覆盖到的代码块。  

           图 4.2.2-4源码静态结构与动态测试数据统一视图  

4.2.3 缺陷最后执行时序分析

  星云测试采集数据时,可自动捕获缺陷或崩溃发生时以前程序执行的详细路径信息。当缺陷发生后,开发人员可以直接看到缺陷出现时,代码执行的时序和路径信息,直接定位缺陷和排查问题,节省大量的沟通以及复现和调试的时间成本。

IT工程师可直接观察到程序出现缺陷后,最后执行的50个代码块、条件、判断的执行信息。配合示波器来观察,当功能执行发现缺陷或崩溃时,示波器能够设置成手动或者自动中止,清晰记录最后执行的50个代码序列的相关详细信息,以供查询和分析。

自动记录崩溃发生时刻以前程序执行的详细路径信息,捕获难以重现的缺陷并快速解决:

最后50个代码块。最后50个条件。最后50个断定执行。

除了在研发环境内,也能够在用户现场精准定位缺陷,而无需再用户现场部署任何代码。

              图4.2.3 缺陷最后执行时序分析

4.2.4 智能缺陷定位

  星云测试对企业级用户提供缺陷定位功能。经过测试人员标记用例执行状态和软件示波器自动记录的程序,可自动分析缺陷出现的可疑代码块。

传统测试仅仅可以发现缺陷,没法帮助开发提供有价值的代码层级的数据。经过智能缺陷定位技术,测试工程师经过几组用例,例若有的正确,有的失败,尤为是输入差异不大,让被测程序表现为正确和失败的状况。精准测试经过功能上的状态以及用例对应的内部执行代码逻辑的差别分析,能够直接分析出现问题的代码,随后按照可疑度进行排序。如图:

经过测试人员在功能测试阶段标记的用例执行状态,以及软件示波器自动记录的程序 运行频谱,自动分析缺陷的出现的代码块。

(1)对于同类测试用例,通过多组测试可给出很是有效的结果。

(2)列出的可疑代码,可直接经过测试过程给出,提高测试的价值及产出。

          图4.2.4-1 经过功能测试频谱法分析进行智能缺陷定位

选择可疑度算法、获得可疑度高的代码块,关联源码后,可根据代码可视化查看具体位置。可疑度计算有一个公式,并不复杂,一般每一个代码块有2个变量,四种状态值。分别是:是否执行、是否经过,这样每代码块都有一个可疑度值。

星云精准测试提供3种经常使用计算公式,供你们参考。  

其中aep表示经过且覆盖到该块的测试用例的个数、anp表示经过且未覆盖到该块的测试用例的个数、aef表示未经过且覆盖到该块的测试用例的个数、anf表示未经过且覆盖到该块的测试用例的个数。结果表示该块的可疑度。

             图4.2.4-2 智能缺陷定位展现

4.3 敏捷迭代

 

4.3.1 敏捷迭代下多版本白盒测试数据的聚合

  白盒覆盖数据一般与代码先关,而敏捷环境下代码天天都会发布几个版本,代码变动后白盒数据就无效了。

星云测试结合目前快速迭代的开发模式,经过分析代码增量,结合不一样版本覆盖率,支持累计的合并计算,将多个敏捷局部测试的数据汇总到最新代码视图上统一展现。

星云精准测试的“敏捷环境下多版本白盒测试数据的聚合”功能,能够经过内部累加一个测试周期内的整体覆盖,并在最新代码视图上投影。用户能够看到在一个敏捷周期内的整体覆盖状况,虽然每一个敏捷版本可能只是关注某一部分功能。例如一个函数若是一直从某个版本后一直未发生代码变化,那么从变化点之后的覆盖率就能够累加而以前就丢弃掉。

星云精准测试-敏捷环境下多版本白盒测试数据的聚合如图所示。

            图4.3.1-1敏捷环境下多版本白盒测试数据的聚合   精准测试全部数据分析结果都特别考虑了快速迭代的开发模式。

(1)全部版本的测试数据,支持累计的合并计算,将多个敏捷局部测试的数据汇总到最新代码视图上统一展现。

(2)能够任意选择版本合并,观察任什么时候间节点的累计数据。  

**图4.3.1-2敏捷环境下多版本白盒测试数据的报表**

 

4.3.2 聚类分析

  星云精准测试提供的聚类分析功能,根据测试用例的函数执行剖面的向量化信息,对测试用例进行精确的空间距离计算后执行聚类分析。聚类结果能够分析被错误执行的用例,例如不相关的功能点聚类到一块儿,则说明其测试执行可能存在错误。

另外也能够辅助找到缺陷分布的密集区域。大部分状况下,缺陷分布会呈现2/8的汇集特性。在时间紧张的状况下,咱们能够经过聚类结果,每一个类选取中心点以及周边几个用例。若是没有问题,就能够去测试其余聚类,若是发现一个类缺陷几率高,那么这个类就须要进行重点测试。经过聚类结果也能够分析测试用例的分布密度等信息,辅助进行测试决策。

星云精准测试-经过用例聚类分析识别缺陷密集分布区域

(1)经过聚类结果给出测试密度,聚类圈中的密度越高,则说明该功能模块测试越密集

               图4.3.2-1 测试密度   (2)聚类结果能够分析被错误执行的用例,例如不相关的功能点别聚类到一块儿,则说明其测试执行可能存在错误。

                图4.3.2-2 聚类分析   (3)从类中检出中心点测试用例以及随机的其余用例,能够快速肯定类中是否存在较多缺陷,快速定位缺陷的分布,并进行重点测试。  

4.3.3 漏洞检出

  星云精准测试,结合代码结构和动态数据综合分析,经过计算直接筛选出潜在的高危测试漏洞,能够在短时间内肯定高危漏测模块。针对性的解决方案,帮助用户快速找到严重缺陷。

当测试时间不充分的时候,首先能够先看测试漏洞列表。列表里将显示经过静态信息和动态信息计算,获得的最高风险的漏测点模块。咱们经过复杂度进行计算,复杂度高的模块。通常来说是重要模块而且逻辑复杂,若是动态覆盖比较低,将被筛选出来。

第二,处于调用和被调用中间的模块,由于属于中间关键模块,咱们也会计算它的扇入扇出和动态覆盖率信息。若是比率很高,也会被认为是高风险模块筛选、高亮标示出来。

从测试效率角度考量,咱们建议在基本的功能黑盒测试完成后,先看这些高危模块,补充他们的覆盖率。在时间不充分的时候,优先测试这些高危模块。星云精准测试-结合代码结构与动态数据的测试漏洞检出。

                 图4.3.3漏洞检测列表  

4.3.4 精准测试与自动化测试对接

  星云精准测试提供了一个通用的自动化接口调用包,为众多的自动化工具进行调用,能够无缝的对接各类主流的自动化工具,测试人员无需改变原有的测试脚本流程,便可执行原有的自动化并在星云精准测试软件示波器中自动创建测试用例而且与执行的代码进行相关联。

星云精准测试与自动化对接还能经过其精准测试的回归、新增代码覆盖率进行相结合使用达到新版本发布全自动的回归测试。

                 图4.3.4星云测试自动化流程  

4.3.5 最小测试用例集

  星云精准测试经过每一个测试用例对应的代码进行统计计算,给出测试用例之间的冗余部分,即知足当前代码覆盖率所须要的运行的最小测试用例集合,主要用于对项目后期大量增加的自动化测试用例进行评审操做,从而下降对自动化用例的维护成本。

                 图4.3.5星云测试最小测试用例集   4.4 团队管理

 

4.4.1 精准测试的企业私有云可信化报表

  星云测试提供云报表,来实时精准的追踪测试进度。星云测试web端的报表系统,当客户端录入测试用例并采集数据后,将在web端产生实时的、具有高可信度的测试状况报表。

该报表与普通的测试管理系统不一样:普通的测试管理系统有人为录入数据的状况,数据自己的真实性就没办法保证。精准测试提供的报表,底层数据来自于执行测试用例时候代码数据的采集,经过专用接口上传,彻底没法篡改和伪造。星云精准测试-企业私有云端实时、精准、可信质量跟踪。

(1)经过浏览器登陆测试系统,选择须要跟踪的项目,就能够实时的对整个测试的质量、进度、人员进行精准的分析和管理。

(2) 企业私有云端管理系统展现的数据基于精准测试数据的分析,全部数据原生精确,支持移动测试+本地测试。

(3) 测试团队、开发团队、甲方负责人等多种角色均可以登陆系统,从各个层面对测试、软件质量进行分析。

                 图4.4.1-1 项目汇总展现

星云精准测试项目汇总中,包含了项目信息、版本信息、测试汇总信息、测试过程监控趋势图、测试设备组成和分布图、各版本覆盖率汇总图、复杂度汇总图等。

从另一个角度来看,精准测试大企业版本也可让不一样区域、不一样时间的测试人员实现协同测试与协同管理,最终达到多人同地测试、多人异地测试、数据实时汇总共享与追踪、测试过程与完成度一目了然的管理目标。   项目信息

                  图4.4.1-3 测试信息汇总

测试用例经过率:无BUG的测试用例

BUG累计:测试用例运行完毕后提交的BUG数

当前版本覆盖率(SC0):(执行过可见段数/可见段数)*100%的比例

覆盖率增加:相比前一天的SC0增加差值

高复杂度预警函数个数:高复杂度的函数个数  

4.4.2 精准测试的企业私有云-测试效率的直观展现

  星云测试报告可直观分析天天的测试效率,经过代码模块和复杂度关系图,看到函数群落测试状况分布及趋势,可直观精准识别系统测试所处阶段。

例如经过每日增加覆盖,咱们能够看到整个团队的工做效率。通常系统都是在刚开始测试的时候覆盖率增加快,到了黑盒测试的瓶颈点,就上升很慢了。管理者能够经过报表,清晰的看到整个团队的效率趋势,并采起相关策略。

覆盖率和复杂度的关系图,能够很直观的看到测试的质量。若是测试不充分的时候,复杂度高的模块一般覆盖率都比较低,分布自一个左上角的区域,当测试深刻进行,这些点就会向右侧移动。管理者能够很是直观的看到系统测试的充分程度和上线的质量把握。

(黑盒效率换挡点+测试深度运动趋势)

(1)累计覆盖率增加视图直观分析天天的测试实效以及肯定从系统黑盒测试转换到精准测试的最佳时点。

(2)代码模块覆盖率和复杂度关系图,看到函数群落测试状况分布以及运动趋势,能够直观精确识别系统测试所处阶段。

             图4.4.2-1 覆盖率每日增加趋势图与黑盒测试瓶颈

             图4.4.2-2 测试效率换档点与测试深度趋势观察表

函数|类|文件复杂度和覆盖率关系图,以散点图的形式展现各类复杂度和覆盖率的关系,更清晰的掌握各类程度覆盖率的分布。

图中点:表明每一个函数,点击后能够看到相关信息。

纵向:表明复杂度不一样级别,取各类覆盖率值,点击自动进行切换到相应的复杂度

横向:表明覆盖率不一样级别,取各类覆盖率值,点击自动进行切换到相应的覆盖率

红圈62:表明当前版本所选的复杂度类型中最高复杂度值

篮圈100:表明当前版本所选的覆盖率类型中最高覆盖率值  

4.4.3 精准测试的企业私有云-测试用例排行图

  测试用例排行图,可直观展现参与测试工程师所执行的用例数、经过率和缺陷率,真实记录并分析每一个测试用例的实效性。星云精准测试-测试工程师实效精准分析系统,将参与的测试工程师所执行的用例从逻辑覆盖映射到代码覆盖,真实记录并分析每一个互联网测试参与者的工做实效。以逻辑覆盖为基准的而不是用例数量为考核标准。

 

                  图4.4.3 测试用例排行图

4.5 知识库累积

 

4.5.1 精准测试数据的价值

  星云测试采集的测试数据和插装后分析到的静态结构信息将做为大型企业系统大数据分析的基础数据。

星云精准测试-测试数据价值

(1)代码级的程序静态信息以及测试用例对应的海量动态测试的数据,这些多维度数据将做为大型企业系统大数据分析的基础数据。

(2)对本企业大量软件质量数据进行挖掘和分析,找到相关质量技术标准衡量的合理区间,避免常规错误。

(3)经过数据分析肯定优异的开发方法和技术构件。

(4)经过质量大数据的分析结果,选择更加合理的技术方法,在设计阶段避免已知的缺陷。

4.5.2 精准测试智能回归测试用例智能选取

经过对测试数据分析,星云精准测试可自动筛选测试用例。在回归测试时,大大减小回归测试的时间及风险,如图经过对版本a和版本b测试数据分析,经过历史数据的比对,可在版本c上全自动获得回归优先级高的用例。

              图4.5.2-1 精准测试智能回归测试用例的选取

  1. 适应快速的版本迭代周期,适应庞大的工程项目。

  2. (2)在回归测试时,自动筛选测试用例,大大减小了回归测试的时间以及风险。

  3. (3)下降了传统人工回归分析产生的测试盲点。

  4. (4)精确计算回归用例的权重,测试人员在时间有限的状况下能够重点回归受改动影响最大的用例。

             图4.5.2-2 回归测试用例选取界面

4.5.3 精准测试在回归测试中的性能评估

  回归性能,一般通常回归都是基于人对于系统的判断来作的,通常来说国际上的统计每修改6行代码就会引入一个未知的缺陷。由人来进行回归用例集的判断,随着时间的延续,记忆将不可逆转地发生损耗并丢失,加之原团队人员的不断变动,老的系统维护愈来愈难,修改引入新的缺陷要愈来愈难风险。

经过星云精准测试企业离线平台,内置程序将持续、高效地全自动记录本企业自有的各系统测试用例和代码的关系数据,不用人工干预和记录。使用一段时间后,企业会获得愈来愈精确的数据,若加以有效利用,将发挥相关元数据及大数据的爆发性的价值。

             图4.5.3 智能回归测试用例选取的性能评估

第五章 精准测试的管理报表分析

星云精准测试报表体系,是根据大型企业实际工做中的诉求而设计。报表涉及内容不少,包括项目信息、测试过程及总结信息、团队效率信息等,数字化展现企业分布式开发与测试过程、验收和维护全过程。它深度解决软件测试短板,数字化跟踪、追溯、输出开发与测试每一步信息。

它把原来不少须要人工录入的数据,由平台代为自动化机器处理,确保全部的数据都是可信的、不可篡改的。它自动把测试用例、测试设备、测试数据、测试人员、测试时间等信息进行关联分析,企业管理人员能够利用机器原生数据,对测试全过程进行精准的数字化管理。   5.1 项目指标

  此项中将展现项目中各个指标汇总信息,如:程序代码信息汇总,测试漏洞、程序覆盖率指标、代码违规统计、代码重复度、程度复杂度指标、程序Crash状况等。

               图5.1 项目指标汇总图

5.1.1 程序代码信息汇总

  程序代码信息汇总中显示当前代码基本信息、代码注释比例、代码可维护性。它能有效地检查出代码的总体情况,并指出相应的薄弱点。

             图5.1.1 程序代码信息汇总

上述指标,须要使用到如下数据并对应映射表来肯定:可分析性、可修改性、稳定性、可测试性的最终等级。  

5.1.2 程序覆盖率指标

  程序覆盖率指标:该值是程序测试过程当中代码段的覆盖率数值

             图5.1.2-1程序覆盖率指标

             图5.1.2-2覆盖率百分比

程序复杂度指标:给出程序复杂度相关信息,以及文件、类、函数三个级别复杂度分级柱状图。(基于CC0计算)CCO表示的是圈复杂度

              图5.1.2-3 程序复杂度指标

5.2测试用例-按日趋势图

                  图5.2 按日趋势图

5.2.1测试用例汇总信息

 

               图5.2.1 项目信息

5.2.2测试用例按日趋势图

折线图和柱形图能够在不一样的图形示例中切换,还原显示默认折线图

纵轴坐标:表明数量,取值范围为自动适应最高值

横轴坐标:表明日期时间

              图5.2.2测试用例按日趋势图

5.3测试用例-测试用例列表

 

            图5.3-1 测试用例列表的详细信息

显示制做的测试用例的详细信息,包括测试用例的名称、建立时间、执行时间、关联函数、覆盖率占比、运行状态、测试人员等

            图5.3-2 测试用例排行与贡献  

5.3.1 星云精准测试软件示波器(测试用例跟踪)

5.3.1.1 测试用例描述

  对选定测试用例表述其详细信息,包括测试用的所属模块、日期、录制人、执行时间等。

              图5.3.1.1 测试用例描述图  

5.3.1.2 录制记录

  记录示波器最后的接收的块、条件、函数的总信息,分最新一次和上一次,用于等价类测试比对。

     图5.3.1.2-1最新与上一次软件示波器接收信息对比

按时间倒序排列示波器接收到的函数,记录程序最后运行的函数情况,用于定位程序错误和测试用例运行过程当中的逻辑分析。

              图5.3.1.2-2 软件示波器接收函数图

5.4测试缺陷-Bug信息汇总

              图5.4Bug缺陷汇总

5.4.1 Bug按日趋势图和Bug类型分布组合

  Bug按日趋势图直观地反映Bug提交趋势。

点击折线图上的点会显示相应的Bug组成。

              图5.4.1 BUG按日趋势图

5.4.2 Bug提交排行榜

给出提交Bug的测试工程师的排行榜。

彩条图能够选择按照Bug级别显示,也能够选择按照Bug类型显示。

             图5.4.2BUG提交排行榜

5.5测试缺陷-Bug详细列表

               图5.5-1 bug详细列表

显示提交的BUG的详细信息、包括提交人、BUG类型、对应的测试用例等。

              图5.5-2BUG详细信息图

5.6覆盖率-按日增加趋势图

              图5.6 按日增加趋势图

5.6.1 覆盖率信息汇总

  能够查看当前版本覆盖率的信息,能够选择多种覆盖率进行查看以及各个测试模块占覆盖率的比。

             图5.6.1 覆盖率信息汇总图

5.6.2 覆盖率按日增加曲线图

覆盖率按日增加曲线图,让管理者更好的把握测试过程。

            图5.6.2 每日覆盖率增加曲线图

5.6.3 雷达图

  根据项目的须要,测试人员能够本身设置覆盖率的上限,经过雷达图展现是否达到预期。

覆盖率指标是否要每项都到100%才算测试结束?在覆盖率达标方面,用户能够按每一个应用的实际状况进行达标线设置。

给出数字化覆盖率展现的用意在于:让测试人员经过观察,能更好的补充完善测试用例。雷达图的目的,是为了当测试人员观察是否达到预期。

            图5.6.3 覆盖率总雷达图

5.6.4 函数|类|文件覆盖率统计

  分析汇总了函数、类、文件的各个覆盖率量度值,更清晰的掌握目标代码覆盖率。

图内容:显示当前版本的文件、类、函数在各个覆盖率之间的分布。

纵向:表明覆盖率的不一样级别,取各类覆盖率值,点击后自动进行切换到相应的覆盖率

横向:表明覆盖率%区间,取值0-20、20-40、40-60、60-80、80-100

总量:表明当前版本的函数总量

          图5.6.4 函数|类|文件覆盖率统计图

5.7覆盖率列表

             图5.7覆盖率列表

5.7.1 覆盖率列表与单函数的覆盖率、复杂度雷达图

  经过对单个函数的覆盖率的雷达图设置,用数字化的形式展现核心模块的测试充分度。

         图5.7.1盖率列表与单函数的覆盖率、复杂度雷达图

5.7.2 函数对应的调用关系图

选择函数列表的中的函数,对应展现该函数的调用关系,总3层。

           图5.7.2 选择单函数调用关系图

5.8复杂度-函数|类|包复杂度统计

           图5.8 函数/类/文件复杂度统计

5.8.1 复杂度统计信息

为了正对复杂度的风险,星云精准测试给出了预警报告表和复杂度详细列表。

对于安全系数高的客户,测试人员能够要求开发进行从新设计下降风险。

                图5.8.1 复杂度预警

5.8.2 复杂度列表

星云精准测试报表中,展现全部函数的复杂度信息。

点击某一函数,会在列表下方绘制对应的雷达统计图。

              图5.8.2复杂度列表

相关文章
相关标签/搜索