[发明专利]一种软件动态测试运行数据提取方法在审
申请号: | 201510698545.9 | 申请日: | 2015-10-24 |
公开(公告)号: | CN105159834A | 公开(公告)日: | 2015-12-16 |
发明(设计)人: | 康一梅;张浩中 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 动态 测试 运行 数据 提取 方法 | ||
技术领域
本发明属于计算机软件测试领域,尤其涉及嵌入式系统中软件动态测试所需运行数据的提取方法。
背景技术
软件动态测试中,程序运行数据的提取方法一般可分为三类,它们分别是纯硬件提取方式、纯软件提取方式和软硬件相结合提取方式。其中,纯硬件方式由于通常采用采样的方式获取程序运行数据,不可避免地会丢失一些重要信号,而且其分析范围也很有限,因此在实际应用时很难得到满意测试结果。纯软件方式一般采用的是软件插桩技术,通过在被测程序中插入探针,利用探针来完成运行数据的提取。由于大量存在的探针代码的存在,使得被测程序的代码规模大大增长,对系统运行效率影响颇大,从而置被测程序于非真实运行环境下,这种情况下获得的测试结果必然无法精确地描述被测程序的相关功能和性能。以CodeTest为代表的软硬件相结合的运行数据提取方式吸取了纯软件和纯硬件提取方式的优点,对插入探针和采样触发机制进行优化,实现了运行数据精确提取的目标。但由于这种数据提取方式严重依赖于硬件,对不同硬件平台,需要定制不同的信号捕获探头,使得这种提取方式的灵活性和移植性都较差。
因此,较为理想的运行数据提取方法应该是一种既不会增加被测程序代码规模,不会影响被测程序运行效率,也不依赖于硬件的数据提取方法。而本发明提出的软件动态测试运行数据提取方法正是具备上述这三个属性的方法。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种既不会增加被测程序代码规模,不会影响程序运行效率,也不依赖于硬件的运行数据提取方式,以便为软件动态测试提供必要的测试过程数据。
本发明的核心思想是:由一个驻守系统的进程来对被测程序的运行状态进行监控,当被测程序运行到预置数据监测点时,保存现场后挂起被测程序,接着利用一种类似中断的数据获取处理例程查找和调用机制实现被测程序运行数据的提取操作。由于数据获取处理例程只包含简单的系统调用指令,其运行时间对整个被测程序的运行时间影响很小,可以确保被测程序在极其接近于真实的环境下运行,因此通过这种方法获取到的数据实时、准确。通过在数据监测点设置多种数据获取信号,从而触发驻守进程调用不同的数据获取处理例程获取不同类别的运行数据,使得本发明公开的数据提取方法可提取的数据类型多样化。
本发明提供的检测方法包括以下步骤,如图1所示:
步骤101,驻守进程通过系统调用启动被测程序。
驻守进程作为被测程序的父进程,运行于系统后台,通过系统调用接口,直接读写被测程序的进程空间来实现对被测程序运行状态的监控。被测程序指指的是软件动态测试的对象被测程序的运行状态包括启动、挂起、恢复运行和终止运行四种。
步骤102,当被测程序运行至预置的数据监测点时,向驻守进程发送信号。
根据测试业务需求,在被测程序运行前设置若干个数据监测点,这些监测点对应于被测程序源代码特定文件的文件名和行号。当被测程序运行至监测点时,可以利用后续处理例程获取被测程序当前的运行时数据,从而作为基础数据提供给测试业务模块使用。
被测程序运行至预置的数据监测点时,会向驻守进程发送一个特定的信号。该信号指明了当前数据监测点所需获取的数据类型,不同测试业务需求可以有不同类型的数据需求。
步骤103,所述驻守进程保护现场后,挂起被测程序,并根据接收到的信号类型在数据获取处理例程向量表中查找处理例程。
驻守进程接收到被测程序发送的获取数据信号后,会先保存当前被测程序的运行现场,然后将被测程序挂起,使之暂停运行。接着,驻守进程根据接收到的信号类型再数据获取处理例程向量表中查找对应的数据获取处理例程。
此处的数据获取处理例程指的是直接获取所述被测程序运行数据的子程序,该处理例程只包含简单的系统调用指令,运行时间短,对被测程序的运行时间的影响甚小,能够使被测程序在非常接近于真实环境下运行,以保证最终测试结果的准确性和实时性。
为了最大可能减少驻守进程查找与接收到的信号类型相匹配的数据获取处理例程的耗时,特别设置数据获取处理例程向量表,将所有数据获取处理例程的入口地址与其对应的信号类型一起存储。这一举措能够将被测程序因数据获取处理例程所中断的时间进一步压缩,进一步提高了最终测试结果的实时性。
步骤104,查找到的处理例程由驻守进程调用,在获取当前位置特定运行数据后,向驻守进程发送获取数据完毕信号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510698545.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:访问内存的方法及计算机系统
- 下一篇:无级变速器