版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序界面设计1.1主界面设计图1界面:把项目导入平台,在编辑区域左边显示一个项目清单列表、右上部分显示与项目清单 列表下.xml .doc文件相对应的图形化结构(图1)、把测试用例下的测试函数用编程文本显 示出来且能够对其进行编辑、把源代码文件下的源程序显示出来并且提供源代码和结构图(见图2)两种显示方式(见下图3)。右下部分显示控制台信息、运行信息、属性信息和其 他相关信息。默认的显示:左边是项目清单列表,右上是源代码中文档的源代码和结构图, 右下是控制台,和运行信息。功能:在对项目清单上的文件进行操作时要触发对其文件相应的显示界面,这里涉及到事件 的分发和接受。例如项目清单下打开测试用例文
2、件夹下的函数时,在右上显示这个函数,同 时允许对其进行编辑,修改;还能够显示这个函数的图形结构。要保持函数和图形的一致性, 当对函数修改后,进行刷新,其图形结构也进行重新生成新的图形。源代码下的文件也是如 此。这里主要涉及到各种关系的同步问题。在现有软件中界面出现的问题有:对操作步骤提供撤销和返回,以方便在出现错误或要 返回到以前的位置时提供方便。嵌入式软件关联追遍平台支件日源代码刃支档洌试用例舶告I钧改:H图9F 垸鱼 硝项目活单列表液interface, c interface.h图医i 2$器软件需求说明书(GB856T8 I|电式简单计算器软件揖要设计说明二I|电嵌入式简单计算器软件揖
3、要设计说目I|电计食器软件需求说明书(GB856T I!电计食器软件需求说明书(GB856T +蹬刑试用例 -偿源代码09-06-11 callbacks, c09-06-12callbacks.ccallbacks, c callbacks, h callbacks. I5LFsupport, c=dr美联吼 窗口也 帮助田 编辑器菜单 宜1由|凰朋1回fl 21文件日 源代码为 文档田 刑试用例程序运行田 美联凶 窗口也 帮助田 编辑器菜单 金|娼蔚部I昭swl鹳存勒 盾药I勒目凰解|回fl盼 j )项目活单列表洋.avaExprLexer.java11-使厕试用例:岖Activator
4、Java驹 callbacks.xmlColurPlanager.java?,蛔 Expr.g?蛔 Expr.tokens,.电 ExprAnnotatiun.java土 ExprCLinFiguatiuri.java,.电 ExprCunteritAssistProcessLir.!,岫 ExprDoubleClickStrategy.javc 昭ExprParser.java|陷:蛔 ExprTcikeriScanner.java:电 ExprTripleClickStrategy.java:蛔 ExprViewer JaYa:,蛔 Expr.g:蛔 ICcilurCunstants.ja
5、vai,蛔 lExprTukens.iava?山己 lExprViewerCorifiguration. jax-:,电 ImageHelper Java:,电 Images.java昭 ITextTripleClickStrategy.java:珀 JTFAction.iava1.2项目清单树形结构在左边的项目清单透视图的树形结构中单击右键出现的静态代码分析、源程序插桩、结 构流程图、函数关联图、文件关联图、折叠全部、展开全部、更新等操作时,要实现其功能。 同时在右上部分要显示其相应的图形等。例如在项目清单的树形结构中右击源代码文件夹下 的函数时,可以对其函数进行上述静态代码分析、源程序插桩
6、、结构流程图等操作,在界面 的右上方应该做出相应的编辑区,或结构流程图等结果显示;当单击静态代码分析时,要能 够对该源函数做DD图结构分析,找出函数的支配树、蕴含树、控制流关系。根据先前的论 文(陈恩慧师兄的论文:程序分支覆盖方法的研究)中的理论找出函数中的关键分支,然后 进行标记。当点击源程序插桩时,要把插桩库的插桩函数(参照于全喜师兄的论文:在这里 要建插桩函数库,定义插桩规则)插到关键分支点上;当单击结构流程图时要把函数的结构 如调用关系等显示出来;当单击函数关联图时要把这个函数和项目中的其他函数的关系显示 出来如被其他函数调用或调用其他函数;文件关联图是把各个文件之间的关系表示出来如头
7、 文件与源文件的关系。对这些操作进行执行时,要及时更新与之相关的内容如对源代码修改 后要保证它的结构图也相应得到更新,这里就要对更新操作实现。见图41.3右上界面设计把在项目清单上的相应操作在右上部分表示出来。见下图-ini xi文件日源代码刃交档国厕试用例程序运行的美联出窗口如帮助E 编辑器菜单项目清单列表w-罅 55:响 perties+ 硝 TEMP-INF-跄交档:电2本器软件需求说明书I i 电式简单计篁器软件f ij 蛇嵌入式简单计算器软*i 电计食器软件需求说明彳 : 他计食器软件需求说明彳 +瑾删试用例 + ft源代码1.4右下部分界面设计显示相
8、应操作的控制台信息和程序的运行信息。这一部分透视图要固定在下面。2用户登录与退出在进入平台时先要求输入用户名和密码进行验证后,才能进行后续的平台运行。如果输入 出现错误,则提供帮助信息和返回到登录状态。这里选用基于Preferences的用户登录。登录的流程:用户双击图标运行程序,在基本配置完后,进入主界面之前。要求用户输入 用户名和密码在实现时要对用户的信息进行加密处理,进入系统时要把设定的主界面显示出 来;退出系统时,把当前打开的各个对象关闭后才完全退出程序。同时在平台中要提供用户的管理。类似登录界面如下图53各个菜单的功能分析3.1文件菜单新建与新建项目重叠,要删除一个。打开子菜单项功能
9、:能够打开word,txt等格式的文件。有一个向导窗口来寻找需要打开 文件的位置。导入项目子菜单功能:是导入一个已经存在的项目(在项目文件夹内会有一个.properties 格式的文件,选择这个文件即可)导出项目子菜单功能:是对新建的项目经过下图的处理后,生成一个独立的文件以便于 $3 ss:“岫 per-疆 TEMP-INFI二进制文件动态插桩执行结果静态分析+1砧+ &交档+砧测试用例+砧源代码保存 属性子菜单功能:显示整个系统的配置情况,可以参见Eclipse平台的属性菜单项。3.2源代码菜单源代码加载子菜单:源程序经过c编译器编译后会产生相应的源文件,把
10、此处所有的源 代码加载到平台中。并以树型方式将其呈现,并提供对这些文件的操作功能,主要操作功能 可以包括:在平台上打开文件、静态分析文件、查看文件的结构流图、查看文件函数、查看 与其它代码文件的静态关联关系等等。静态代码分析子菜单:是指对被测源代码进行词法语法分析,对关键路径节点进行标 识,已完成下一步对其插桩的过程。静态分析要从源程序中提取必要的数据(比如函数名、 用面向对象语言编写的类名、行号等信息),对源程序的控制流进行分析,为源程序划分块, 然后把得到的数据都保存到以XML格式的数据文件中。这些数据文件为实现图形化呈现作好 了准备。这一步主要是生成程序的DD图。以便后续进行寻找关键分支
11、。源代码插桩子菜单:是在源程序的适当位置插上编码人员需要知道的信息,由于编码人 员需要的信息千变万化,要想完全做到自动化是不现实的。插装模块主要是根据用户的需要, 把用户的需要变成模板化的插装代码,通过预编译条件控制语句来控制调试版本和发行版本 间的切换。用户需要告知程序插装模块需要做什么样的服务,比如需要知道某个变量在运行 中的值的变化,某个函数在某处被调用时的返回值和传入值等,程序插装模块在相应的位置 上插入相应的代码,并通过相关的机制把用户所需要的功能信息通知给用户。程序插装就是 要往源程序的特定位置中插入自己的代码,当插装后的可执行程序运行时就可以获取动态数 据。插装后的可执行程序为实
12、现覆盖分析自动化和动态跟踪自动化作好了准备。此模块主要 实现对源代码在标记分析的基础上进行对关键路径,关键程序结点的插桩,完成程序在运行 过程中对动态测试数据的获取和监控,生成测试结果数据。对程序的关键路径的计算(参考陈恩慧大论文):由源程序生成的DD图,找出图形中的 支配树DT,蕴含树IT。通过UE(G)=DTL(G)DITL(G),KB(G)= KB(G) U UE(G)找出非 约束关键分支,通过算法for (each eWDTL(G)-UE(G)if (e在支配树中与父结点非连续)continue; /*排除与父结点非连续的叶子结点*/获取e在DT(G)中祖先集合DTAncestor(e
13、);if (DTAncestor(e)HITL(G) )KB(G)=KB(G)Ue;找出图形中约束分支中的关键分支。所以通过上述的计算可以找到要测试程序的关键分支为:KB(G)。找到关键分支后,根据关键分支的不同特点,利用插桩库函数对关键分支进 行标记。(参考于全喜插桩方法)这里还关系到要建立一个基于C语言的插桩库(参见 20090527嵌入式软件双向关联追溯可视化平台设计说明书.doc: 5.2.2测试核心业务实现策 略)。3.3文档菜单文档加载子菜单:指将被测软件项目所包含的文档(需求文档、概要设计文档、设计文档) 引用到平台上。文档结构化子菜单:是指提取、标记软件文档的结构信息,并将其结
14、构信息以XML方式存 储起来,提取文档的结构信息并以树型方式将其呈现,并提供对这些文档的操作功能,例如: 文档的打开方式、关闭、保存、修改。文档索引库子菜单:对加载的文档能够根据关键词检索其内容所在的相关文件,提供显示出 来。3.4测试用例测试用例辅助设计子菜单:根据需求文档中的功能需求结合概要设计、详细设计、源代码来 设计测试用例。在设计测试用例是应该根据关键分支、语句覆盖、分支覆盖、数据流覆盖信 息设计测试用例,以便达到较高的覆盖准则。测试用例自动生成子菜单:把从测试用例辅助设计子菜单中设计好的测试用例,进行自动生 成测试脚本。测试用例脚本加载子菜单:把生成的测试用例脚本加载到源程序中,并
15、进行运行。3.5程序运行编译器设置:对被测项目所需的编译器参数进行设置源代码编译:对进行关键分支插桩后的代码进行编译(这里的编译环境由于是在linux系统 中进行的,所以考虑把gcc编译器集成到平台中)代码下载执行:源代码进行编译后下载到目标机上,执行测试用例。执行结果收集:运行测试用例后,收集程序在目标机上运行后的信息,然后传输到软件平台。 这里主要涉及到的对收集到的结果信息进行分析。由于主机收集到的是一定格式的二进制信息。在此要对这些二进制信息进行分析,以便获得测试信息。其数据处理过程如下:有效数据提取:数据解析处理从分离只读形式保存的*.out文件开始,解析处理中间 过程及规范结果的数据
16、全部存储为利于连续的提取分析的XML数据文档。首先逐行读取动 态跟踪数据记录,分离出数据接收时间及isl ;因为嵌入式系统一般集成了秒级的时钟芯片, 无法提取出准确的探针函数动态执行,系统设计采用数据接收时间模拟探针函数动态执行时 间,实现近似的性能测试。然后就要根据isl编码结构分离出以下结构体信息:基础数据存 储文件信息、测试用例信息、测试函数信息、探针定位及返回数据信息等。对每条记录结构 体信息为XML元素值,分离出的具体内容为各元素的属性值。格式规范处理:测试数据的规范化处理是降低成本的必然措施,得到的测试结果数据 表示要有利于测试平台中各个子系统调用测试结果数据完成各自的分析功能。有
17、效数据提取 过程仅得到的简单XML数据文档,只能说是对测试数据的简单的、非规范化描述,且属性 或元素信息全是用块划分编码表示,可读性和易分析性及差。格式规范处理的目的就是采用 dom4j技术规范测试结果,把提取的有效测试数据写入静态分析所的XML文档中,为测试 与维护平台提供标准的数据支持。对取得的信息进行分析,产生测试报告:报告中包含分析出的被测程序容易存在缺 陷的位置点、影响级别,指导纠正缺陷,同时指明进一步测试的方向。报告包含如下三点信 息:错误定位分析采用随机均匀路径生成法,构造实际执行路径。从测试数据文档中选取同条测试用例t 执行采集的测试数据,定位数据中代表实际经过(数据不为零)的
18、各个插桩位置,在BCFG图 邻接表中更改以上插桩位置点后一个程序块的节点元素信息域为1;然后深度搜索邻接表信 息域为1的节点程序块,按公式(2)要求构造实际执行路径p(t)。理论路径p(t)与p(t)分析 比较可定位软件缺陷:如果路径相同程序运行正常,如果不同采用如图3-5的操作定位软件 缺陷:测试覆盖率分析由于全面的软件插桩采集测试数据、计算分析软件缺陷是不现实的,即使对所有的理论 插桩点,也难以实现全面的测试,测试数据采集需要至少一个测试覆盖策略支持。覆盖策略 是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的,其中路径覆盖插桩策略明显, 能达到很高的测试覆盖率。测试报告制作测试总结报告应该包括测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 印染助剂生产工操作安全考核试卷含答案
- 催化剂处理工班组考核能力考核试卷含答案
- 余热余压利用系统操作工安全技能测试模拟考核试卷含答案
- 期末复习 专项二 语法练习课件(共27张) 2023-2024学年人教版英语七年级下册
- 职业培训师安全管理水平考核试卷含答案
- 5.5 分式方程 考点训练 2025-2026学年 浙教版七年级数学下册 教学设计
- 急性喉炎的口腔护理常规
- 2025年内蒙古自治区公需课学习-环境权益融资工具指引
- 2026年高校课程管理试题及答案
- 2026年二级医院评审护理考核试题及答案
- 促宫颈成熟和引产流程
- 摄影年度合作合同范本
- 2026年湖南环境生物职业技术学院单招职业技能考试题库必考题
- 【高考真题】2022年北京市高考《数学》试题(原卷版)
- 2025及未来5年中国半导体温差发电器件市场调查、数据监测研究报告
- 李清照介绍教学课件
- 2025年关爱留守儿童工作实施方案
- 2025-2030农用生物酵素生产工艺优化与废弃物资源化利用报告
- AI技术应用方案总结制定
- 脾切除术教学课件
- 化验室药品安全管理
评论
0/150
提交评论