JavaScript代码的合约驱动测试与AspectJ通知的延迟绑定
1. JavaScript代码测试相关
在软件开发中,代码测试至关重要。对于JavaScript代码测试,有多种方法和工具。
1.1 手动测试的局限性
手动测试本身不能保证任何覆盖标准,其有效性高度依赖测试人员的经验和所选测试方法的体系。所以,手动测试需要其他类型的测试来辅助。
1.2 随机测试及其相关工具
随机测试是一种有前途的方法,虽然它不能保证覆盖,但有许多支持随机测试并提高覆盖率的工具和方法。
- JCrasher :是Java编程语言的黑盒随机测试工具。它分析一组类,目标是找到涉及这些类方法的崩溃程序片段。它通过将随机参数的方法应用于随机构造的对象,然后使用这些对象作为基础随机生成更多方法调用来构造片段。其失败标准是程序崩溃,不需要额外的合约规范。
- JSConTest :可以针对用户指定的合约进行测试,还能进行运行时监控。它通过从代码中收集常量进行有限的白盒测试来提高覆盖率。与JCrasher不同,它能测试用户指定的合约。
- QuickCheck :是Haskell的纯函数式编程语言库,能声明程序构造的属性并自动测试。测试用例从属性中变量的类型随机生成,程序员也可以指定自己的生成器。与JSConTest不同,它是纯黑盒测试,而JSConTest结合了程序分析信息,接近白盒测试。
- DoubleCheck :是QuickCheck在ACL2语言中的改编,用于生
超级会员免费看
订阅专栏 解锁全文
3790

被折叠的 条评论
为什么被折叠?



