The present disclosure relates to methods and devices for testing applications. The methods for testing applications according to the present disclosure include: dividing applications into foreground execution module and background logic module, and foreground execution module calls back-end logic module; determining the weight of functions in the background logic module; dividing the foreground execution module into code blocks and forming execution path; and determining Persistence Based on the weight of functions in the determined background logic module. The weight of the line path; test case generation based on the weight of the determined execution path; and application testing using the generated test cases. According to the technology of the disclosure, the most important test cases can be obtained, thereby improving the test efficiency of the application and reducing the test cost.
【技术实现步骤摘要】
测试应用的方法和装置
本公开涉及测试应用的方法和装置。特别地,本公开涉及适用于对牵涉在区块链上运行的智能合约的应用进行测试的方法和装置。
技术介绍
区块链技术起源于比特币。区块链可被视为一种以去中心化方式进行操作的分布式数据库。区块链技术通过使用数据加密、时间戳、分布式共识和经济激励等手段,在分布式系统中的交易节点无需互相信任的情况下,实现基于去中心化的点对点交易、协调与协作,从而解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题。随着近年来比特币的发展和普及,区块链作为一种新形式的具有普适性的分布式底层架构,可以应用于金融、经济、科技甚至政治等各个领域。智能合约是存储在区块链上的脚本代码,它们可以被区块链上的交易所触发,触发后,这段代码可以从区块链读取数据或者向区块链写入数据。目前,智能合约得到越来越多的关注,已被众多研究人员引入到涉及区块链的应用中。这类应用通常被成为去中心化应用(DecentralizeApplication,DApp)。然而,DApp的测试是极为困难的。首先,DApp通常包含智能合约和调用智能合约的前端源码。如上文所述,智能合约存储在区块链上,而前端源码通常存储在客户端上,导致对DApp的测试涉及存储在不同位置代码,因而测试是困难的。再者,智能合约通常涉及众多的商业行为,当智能合约被存储到区块链上并且为区块链上的所有节点所接受时,难以对智能合约进行修改。在这一点上,智能合约中的极小的错误也可能造成难以估量的损失。此外,由于区块链是基于点对点(peertopeer)的分布式网络而构建的,因而每次交易必须经过分布式网络中的全体 ...
【技术保护点】
1.一种用于测试应用的方法,所述方法包括:将所述应用分解为前台执行模块和后台逻辑模块,所述前台执行模块调用所述后台逻辑模块;确定所述后台逻辑模块中的函数的权重;将所述前台执行模块分解成代码块,所述代码块形成执行路径;基于所确定的所述后台逻辑模块中的函数的权重来确定所述执行路径的权重;基于所确定的执行路径的权重生成测试用例;以及使用所生成的测试用例对所述应用进行测试。
【技术特征摘要】
1.一种用于测试应用的方法,所述方法包括:将所述应用分解为前台执行模块和后台逻辑模块,所述前台执行模块调用所述后台逻辑模块;确定所述后台逻辑模块中的函数的权重;将所述前台执行模块分解成代码块,所述代码块形成执行路径;基于所确定的所述后台逻辑模块中的函数的权重来确定所述执行路径的权重;基于所确定的执行路径的权重生成测试用例;以及使用所生成的测试用例对所述应用进行测试。2.根据权利要求1所述的方法,其中确定所述后台逻辑模块中的函数的权重包括:基于所述后台逻辑模块中的函数和变量之间的关系来计算函数的权重。3.根据权利要求2所述的方法,其中确定所述后台逻辑模块中的函数的权重包括:确定所述后台逻辑模块中的函数之间的调用关系和调用频次以及函数对变量的读写操作关系和读写频次;基于所述调用关系和调用频次以及读写操作关系和读写频次来确定函数和变量的初始权重;通过对函数和变量的初始权重进行迭代和归一化来确定函数的权重。4.根据权利要求3所述的方法,其中函数对变量的读写操作包括赋值操作、修改操作、删除操作和读取操作中的至少之一,其中赋值操作、修改操作、删除操作和读取操作分别具有不同的权重。5.根据权利要求1所述的方法,其中将所述前台执行模块分解成代码块包括:通过对所述前台执行模块的伪代码进行分析来...
【专利技术属性】
技术研发人员:华松,皮冰锋,孙俊,
申请(专利权)人:富士通株式会社,
类型:发明
国别省市:日本,JP
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。