对软件系统进行测试的方法和装置的制作方法

文档序号:6484234阅读:137来源:国知局
专利名称:对软件系统进行测试的方法和装置的制作方法
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种对软件系统进行测试的 方法和装置。
背景技术
一个网络应用系统(比如QQMail系统)的源程序主要包括基础数据 库、应用程序,模板文件(template)和脚本文件。上述应用程序主要包括 CGI (common gateway interface,通用网管接口 )程序,ASP (Active Server Page,动态服务器页面)程序等,上述脚本文件主要包括JavaScipt 文件、VBscript文件等。
在用户终端上显示的web页面的生成过程主要包括先由应用程序从基础 数据库中提取用户数据,并将该用户数据填充到模板文件中,形成web页面的 静态显示部分。然后,再将上述模板文件对应的脚本文件也填充到模板文件 中,该脚本文件将构成web页面的客户端数据验证等动态效果部分。最后,将 完整的web页面显示给用户终端。
目前,在对网^^应用系统编写测试用例时,完成依靠测试人员的手工编 写,并且测试用例的覆盖范围也需要尽可能全面,测试用例的数量非常庞 大,因此,测试人员的重复工作量巨大,容易使测试人员陷入匮乏的体力劳 动中,造成整个测试工作的效率4氐下。

发明内容
5本发明的实施例提供了 一种对软件系统进行测试的方法和装置,以解决 现有4支术测试工作的效率^f氐下的问题。
一种对软件系统进行测试的方法,包括
获取并保存软件系统的源程序中的各个文件之间的调用关系信息; 根据所述源程序中的待测文件查询所述各个文件之间的调用关系信息,
关系信息生成与所述待测文件和其他文件相关的测试用例;
利用所述测试用例对所述專欠件系统进^f测试。 一种对软件系统进行测试的装置,包括
调用关系信息获取模块,用于获取并保存软件系统的源程序中的各个文 件之间的调用关系信息;
测试用例生成模块,用于根据所述源程序中的待测文件查询所述各个文 件之间的调用关系信息,获:f又所述待测文件与源程序中的其他文件之间的调 用关系信息,根据该调用关系信息生成与所述待测文件和其他文件相关的测 试用例;
测试处理模块,用于利用所述测试用例生成模块所生成的测试用例对所 述软件系统进行测试。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例可以使 测试人员利用文件之间的调用关系信息,快速地编写一个具体的应用程序、 才莫板文件或脚本文件相关的测试用例。


为了更清楚地说明本发明实施例的4支术方案,下面将对实施例描述中所 需要使用的附图作筒单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的 前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的 一种对软件系统进行测试的方法的处理流程
图2为本发明实施例一提供的一种软件系统的调用关系嵌套图; 图3为实施例二提供的一种对软件系统进行测试的装置的具体实现结构图。
具体实施例方式
在本发明实施例中,获取并保存软件系统的源程序中的各个文件之间的 调用关系信息,根据所述源程序中的待测文件查询所述各个文件之间的调用
根据该调用关系信息生成与所述待测文件和其他文件相关的测试用例。然 后,利用所述测试用例对所述软件系统进行测试。
进一步地,获取软件系统的源程序中的各个文件,按照预定的时间间 隔,对所述源程序进行更新;利用扫描算法,生成所述源程序中的各个文件 的两两之间的调用关系,该调用关系包括一个文件在其它文件中的出现位置 和次数信息。
进一步地,以一个基本文件作为关4建字,在作为相关文件的其它文件中
从第一行开始进行遍历,所述关键字每出现一次,便记录相应的行数,在遍
历结束后,获取所述基本文件在所述相关文件中总共的出现位置和次数信 自
进一步地,根据所述调用关系表生成树型的调用关系嵌套图,该调用关 系嵌套图显示了所述软件系统中的每个文件分别和其它那些文件有调用关系。进一步地,所述的软件系统的源程序中的各个文件包括应用程序、模 板文件或脚本文件。
进一步地,当需要编写一个^f寺测文件的相关测试用例时,以该;降测文件 为索引,查询所述调用关系表,获取该待测文件对应的所有调用关系信息, 其中包括各个相关文件信息,以及该待测文件在各个相关文件中的出现位置 与次数信息;根据所述待测文件对应的所有的调用关系信息,以及具体的测 试要求,生成与所述^f寺测文件和相关文件相关的测试用例。
进一步地,分别生成与所述待测文件和每一个相关文件相关的测试用 例;或者,生成与所述待测文件和多个相关文件相关的测试用例。
为^f更于对本发明实施例的理解,下面将结合附图以几个具体实施例为例 啦文进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。 实施例一
该实施例提供的一种对软件系统进行测试的方法的处理流程如图1所示, 包括如下处理步骤
步骤11、获取并保存网络应用系统的源程序,并对该源程序进行及时更新。
测试人员需要获取并保存网络应用系统(比如QQMail系统)的源程序, 其中包括基础数据库、应用程序,模板文件和脚本文件。按照预定的时间 间隔,对该源程序进行及时更新,在更新过程中,最好保留各个版本的源程 序。
在实际应用中,测试人员可以每天对上述源程序更新一次,将源程序保 存在以每天天时间命名的文件夹中。
步骤12、生成源程序中的应用程序、模板文件和脚本文件的两两之间的 调用关系表和调用关系嵌套图,并对该调用关系表、调用关系嵌套图进行及时更新。
利用扫描算法,生成上述源程序中的应用程序、模板文件和脚本文件的 两两之间的调用关系,该调用关系主要包括一个文件在另外一个文件中的出 现位置和次数。
下面以上述应用程序为CGI程序,脚本文件为JavaScipt文件为例来说明
本发明实施例。
一个CGI程序A.cpp在一个模板文件B.html中的调用关系的生成过程如 下以A.cpp为关键字,在B.html的源代码中从第一行开始进行遍历,关键字
A. cpp每出现一次,便记录相应的行数。遍历结束后,获得上述A.cpp分别在
B. html的第150行和893行各出现一次。然后,将上述A.cpp在一个模板文件 B.html中的调用关系保存在如下述表1所示的调用关系表中。
表1:调用关系表
源程序相关文件类型相关文件出现位置与次数
A.cpptemplateB.html2(150,893)
C.htmlJsD.js3 (23,580,784)
在实际应用中,当上述源程序发生了更新后,上述调用关系表中相应文 件之间的调用关系信息也需要进行相应的更新。
根据上述调用关系表可以生成一个树型的调用关系嵌套图,该调用关系 嵌套图可以直观地体现网络应用系统中的每个应用程序、才莫板文件和脚本文 件分别和其它那些文件有调用关系。
比如, 一个软件系统的调用关系嵌套图可以如图2所示,其中,
9addr—done文件为 一个节点,该节点有三个子节点addr—clonepage.html 、 pop—finpage.html禾口 addr—clone.html , 于是,addr—clone文 <牛分另'J和 addr_clonepage.html、 pop—finpage.html和addr—done.html有调用关系。
在实际应用中,当上述调用关系表发生了更新后,上述调用关系嵌套图 中相应文件之间的调用关系信息也需要进行相应的更新。
步骤13、根据上述调用关系表和调用关系嵌套图,生成和具体的应用程 序、冲莫板文件或脚本文件相关的测试用例。
当需要编写一个具体的作为待测文件的应用程序、模板文件或脚本文件 相关的测试用例时,可以以该待测文件为索引,查询上述调用关系表,获耳又 该应用程序、模板文件或脚本文件对应的所有的调用关系信息,其中包括各 个相关文件类型、相关文件和出现位置与次数信息。
然后,测试人员根据上述调用关系信息,以及具体的测试要求,生成上 述待测文件与每个相关文件之间的相关测试用例,并将该相关测试用例进行 保存。
上述相关测试用例可以挂在上述调用关系嵌套图中的相应子节点下,这 样每生成的 一条测试用例即与具体的文件调用关系联系起来。
比如,在上述图2所示的调用关系嵌套图中,addr—done文件后面的 (1)表示该文件目前总共对应一个测试用例,addr—clonepage.html后面的 (1 )表示addr—clone文件和addr—clonepage.html文件之间对应一个测试用
例。而图2中的addr—clonepage.html后面的(0)表示该文件目前没有对应测
试用例。
之后,当测试人员需要获取上述待测文件的相关测试用例时,可以根据 该待测文件查询上述调用关系嵌套图,获取已经创建的相关测试用例,从而 避免了测试人员重复创造测试用例。在实际应用中,还可以根据需要生成上述待测文件同时与多个相关文件 之间的相关测试用例,即生成多个文件之间的相关测试用例。
当上述源程序中部分文件有更新时,例如当前有A.cpp和B.html这两个文 件有修改,测试人员以A.cpp和B.html做为查询条件,查询上述调用关系表, 获取A.cpp和B.html的相关调用关系信息,只需要对该相关调用关系信息进行 相应的更新。然后,根据更新后的上述相关调用关系信息,重新生成A.cpp和 B.html的相关测试用例,并且对上述调用关系嵌套图中的和A.cpp和B.html相 关的部分进行更新。
在实际应用中,可以根据上述保留的各个版本的源程序,获取同一个文 件在不同时间段内的区别特征,例如,查询A.cpp在090201与090210的区 别,可以生成diff (代码差异化)文件。测试人员可以利用该区别特征进行相 关的分析。
步骤14、利用上述生成的测试用例对软件系统进行测试。
在获取了上述测试用例后,便可以按照测试用例上的执行步骤与检查 点,逐一对软件系统进行测试。
实施例二
本发明实施例还提供了 一种对软件系统进行测试的装置,其具体结构如 图3所示,包括如下模块
调用关系信息获取模块31 ,用于获取并保存软件系统的源程序中的各个 文件之间的调用关系信息;
测试用例生成模块32,用于根据所述源程序中的待测文件查询所述各个 文件之间的调用关系信息,获取所述待测文件与源程序中的其他文件之间的 调用关系信息,根据该调用关系信息生成与所述待测文件和其他文件相关的测试用例;
测试处理模块33,用于利用所述测试用例生成模块所生成的测试用例对
所述软件系统进行测试。
所述的调用关系信息获取模块31具体包括
源程序获取模块311,用于获取软件系统的源程序,该源程序中包括应 用程序,模板文件和脚本文件,按照预定的时间间隔,对所述源程序进行更 新;
调用关系信息生成模块312,用于利用扫描算法,生成所述源程序中的各 个文件的两两之间的调用关系,该调用关系主要包括一个文件在其它文件中 的出现位置和次数。
所述的测试用例生成模块32包括
调用关系信息查询模块321,用于当需要编写一个待测文件的相关测试用 例时,以该待测文件为索引,查询所述调用关系表,获取该待测文件对应的 所有的调用关系信息,其中包括各个相关文件信息,以及该待测文件在各个 相关文件中的出现位置与次数信息;
测试用例获取模块322,用于根据所述待测文件对应的所有的调用关系信 息,以及具体的测试要求,生成与所述待测文件和相关文件相关的测试用例。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流 程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于 一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施
例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。综上所述,本发明实施例可以使测试人员利用文件之间的调用关系信 息,快速地编写一个具体的应用程序、模板文件或脚本文件相关的测试用 例。既保证了测试用例范围的有效性,也节省了大量无用的时间,真正做到 了事半功倍。
本发明实施例可以使测试人员根据待测的应用程序、模板文件或脚本文 件查询已经创建的相关测试用例,避免测试人员重复创造测试用例,可以理 解为测试用例创建是一次性才更入成本,完成一次即可。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
1、一种对软件系统进行测试的方法,其特征在于,包括获取并保存软件系统的源程序中的各个文件之间的调用关系信息;根据所述源程序中的待测文件查询所述各个文件之间的调用关系信息,获取所述待测文件与源程序中的其他文件之间的调用关系信息,根据该调用关系信息生成与所述待测文件和其他文件相关的测试用例;利用所述测试用例对所述软件系统进行测试。
2、 根据权利要求1所述的对软件系统进行测试的方法,其特征在于,所 述的获取并保存软件系统的源程序中的各个文件之间的调用关系信息,具体 包括获取软件系统的源程序中的各个文件,按照预定的时间间隔,对所述源 程序进行更新;利用扫描算法,生成所述源程序中的各个文件的两两之间的调用关系, 该调用关系包括一个文件在其它文件中的出现位置和次数信息。
3、 根据权利要求2所述的对软件系统进行测试的方法,其特征在于,所 述的利用扫描算法,生成所述源程序中的各个文件的两两之间的调用关系, 该调用关系包括一个文件在其它文件中的出现位置和次数信息,具体包括以一个基本文件作为关键字,在作为相关文件的其它文件中从第一行开 始进行遍历,所述关^t字每出现一次,1"更记录相应的行数,在遍历结束后, 获取所述基本文件在所述相关文件中总共的出现位置和次数信息。
4、 根据权利要求1所述的对软件系统进行测试的方法,其特征在于,所 述的方法还包括根据所述调用关系表生成树型的调用关系嵌套图,该调用关系嵌套图显示了所述软件系统中的每个文件分别和其它那些文件有调用关系。
5、 根据权利要求1所述的对软件系统进行测试的方法,其特征在于,所 述的软件系统的源程序中的各个文件包括应用程序、^t板文件或脚本文 件。
6、 根据权利要求1至5任一项所述的对软件系统进行测试的方法,其特征 在于,所述的根据所述源程序中的待测文件查询所述各个文件之间的调用关据该调用关系信息生成与所述待测文件和其他文件相关的测试用例,具体包 括当需要编写一个待测文件的相关测试用例时,以该待测文件为索引,查 询所述调用关系表,获取该待测文件对应的所有调用关系信息,其中包括各个相关文件信息,以及该待测文件在各个相关文件中的出现位置与次数信 自 根据所述待测文件对应的所有的调用关系信息,以及具体的测试要求, 生成与所述待测文件和相关文件相关的测试用例。
7、 根据权利要求6所述的对软件系统进行测试的方法,其特征在于,所 述的生成与所述待测文件和相关文件相关的测试用例,具体包括分别生成与所述待测文件和每一个相关文件相关的测试用例;或者,生成与所述待测文件和多个相关文件相关的测试用例。
8、 一种对软件系统进行测试的装置,其特征在于,包括调用关系信息获取模块,用于获取并保存软件系统的源程序中的各个文 件之间的调用关系信息;测试用例生成模块,用于根据所述源程序中的待测文件查询所述各个文 件之间的调用关系信息,获取所述待测文件与源程序中的其他文件之间的调 用关系信息,根据该调用关系信息生成与所述待测文件和其他文件相关的测试用例;测试处理模块,用于利用所述测试用例生成模块所生成的测试用例对所 述软件系统进行测试。
9、 根据权利要求8所述的对软件系统进行测试的装置,其特征在于,所 述的调用关系信息获取i^莫块包括源程序获取模块,用于获取软件系统的源程序中的各个文件,按照预定 的时间间隔,对所述源程序进行更新;调用关系信息生成模块,用于利用扫描算法,生成所述源程序中的各个 文件的两两之间的调用关系,该调用关系主要包括一个文件在其它文件中的 出现位置和次数。
10、 根据权利要求8或9所述的对软件系统进行测试的装置,其特征在 于,所述的测试用例生成;^莫块包括调用关系信息查询模块,用于当需要编写一个待测文件的相关测试用例 时,以该待测文件为索引,查询所述调用关系表,获取该待测文件对应的所 有调用关系信息,其中包括各个相关文件信息,以及该待测文件在各个相关 文件中的出现位置与次凄t信息;测试用例获取模块,用于根据所述待测文件对应的所有的调用关系信 息,以及具体的测试要求,生成与所述待测文件和相关文件相关的测试用例。
全文摘要
本发明提供了一种对软件系统进行测试的方法和装置。该方法主要包括获取并保存软件系统的源程序中的各个文件之间的调用关系信息,根据所述源程序中的待测文件查询所述各个文件之间的调用关系信息,获取所述待测文件与源程序中的其他文件之间的调用关系信息,根据该调用关系信息生成与所述待测文件和其他文件相关的测试用例。然后,利用所述测试用例对所述软件系统进行测试。
文档编号G06F11/36GK101515250SQ20091008150
公开日2009年8月26日 申请日期2009年4月9日 优先权日2009年4月9日
发明者母天石 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1