[发明专利]一种使用多函数契约测试JavaScript函数正确性的方法有效
申请号: | 201210216054.2 | 申请日: | 2012-06-27 |
公开(公告)号: | CN102768643A | 公开(公告)日: | 2012-11-07 |
发明(设计)人: | 吕嘉;吴明晖;金永霞 | 申请(专利权)人: | 河海大学常州校区 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 董建林 |
地址: | 213022 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 函数 契约 测试 javascript 正确性 方法 | ||
技术领域
本发明属于计算机软件测试领域,特别是涉及一种JavaScript函数正确性的测试设计、实现和运行方法。
背景技术
JavaScript语言是一种广泛应用于互联网应用程序的脚本语言,JavaScript语言具有很好的表达能力和灵活性,使用JavaScript语言可以提高软件系统的开发效率和开发速度,提高软件系统的可读性和可重用性。
函数是(function)是JavaScript语言的第一类对象,JavaScript程序由一组函数组成,如果能够测试JavaScript函数自身的正确性和JavaScript函数组合的正确性,就可以有效的测试JavaScript程序的正确性。
JavaScript语言支持动态类型(dynamical ly typed)和隐式类型转换(implied type conversion),这两个语法特征使得JavaScript函数的相关变量在运行时类型和行为不确定,影响JavaScript函数自身的正确性和函数组合的正确性。
现有的函数测试方法基于单一的函数契约,只能规约和测试类型确定的函数上下文,不能匹配JavaScript语言的动态类型和隐式类型转换的语法特征,无法有效测试JavaScript函数的正确性。
发明内容
本发明的目的之一是通过设计多个函数契约,匹配目标函数的相关变量在运行时的可能类型和可能值,解决由于动态类型和隐式类型转换引起的JavaScript函数测试困难问题。
本发明的目的之一是通过JavaScript语言的运行时求解函数(eval)将提出的多个函数契约转换为普通的JavaScript程序代码,在不改变现有JavaScript语言语法的前提下,生成相应的测试代码。
本发明的目的之一是使用JavaScript语言的面向方面扩展库jQuery-AOP监控目标JavaScript函数的运行,生成JavaScript函数的运行时监控代码。
本发明的目的之一针对提出的函数契约设计、提出的函数契约测试代码和提出的运行时监控代码,提出一个函数契约检测算法,当目标JavaScript函数被调用时,按照一定的步骤对目标JavaScript函数的正确性进行测试。
为了实现上述目的,本发明所采取的技术方案是:
一种使用多函数契约测试JavaScript函数正确性的方法,其特征在于:包括以下步骤:
步骤S01:根据目标JavaScript函数的函数上下文中相关变量在运行时的可能类型和可能值设计多个函数契约,对于目标函数的类型正确性和行为正确性分别进行规约,
步骤S02:将步骤S01设计得到的多个函数契约转换为普通的JavaScript对象数组,并生成对目标函数运行时的监控代码,
步骤S03:当目标JavaScript函数被调用时,运行时监控代码 根据提出的契约检测算法测试目标JavaScript函数的正确性,在发现特定类型的错误时抛出相应的异常。
前述一种使用多函数契约测试JavaScript函数正确性的方法,其特征在于:步骤S01目标函数设计多个函数契约的具体步骤为:每一个函数契约包含函数名称、类型约束和行为约束三个组成部分,类型约束对目标函数的相关变量的可能类型进行规约,行为约束对目标函数的可能行为进行规约,类型约束和行为约束必须是匹配的。
前述一种使用多函数契约测试JavaScript函数正确性的方法,其特征在于:所述类型约束包含两个部分:类型约束的前置条件和类型约束的后置条件,类型约束的前置条件对目标函数执行前的相关变量的可能类型进行规约,类型约束的后置条件对目标函数执行后的相关变量的可能类型进行规约。
前述一种使用多函数契约测试JavaScript函数正确性的方法,其特征在于:行为约束包括两个部分:行为约束的前置条件和行为约束的后置条件,行为约束的前置条件对目标函数执行前的程序状态进行规约,行为约束的后置条件对目标函数执行后的程序状态进行规约。
前述一种使用多函数契约测试JavaScript函数正确性的方法,其特征在于:步骤S02生成对目标函数运行时的监控代码的具体步骤为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学常州校区,未经河海大学常州校区许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210216054.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种利用分子碘可见光降解氯苯酚的方法
- 下一篇:双移动体同步移动装置