【24h】

Using production grammars in software testing

机译:在软件测试中使用生产语法

获取原文
获取原文并翻译 | 示例

摘要

Extensible typesafe systems, such as Java, rely critically on a large and complex software base for their overall protection and integrity, and are therefore difficult to test and verify. Traditional testing techniques, such as manual test generation and formal verification, are too time consuming, expensive, and imprecise, or work only on abstract models of the implementation and are too simplistic. Consequently, commercial virtual machines deployed so far have exhibited numerous bugs and security holes.>In this paper, we discuss our experience with using production grammars in testing large, complex and safety-critical software systems. Specifically, we describe lava, a domain specific language we have developed for specifying production grammars, and relate our experience with using lava to generate effective test suites for the Java virtual machine. We demonstrate the effectiveness of production grammars in generating complex test cases that can, whencombined with comparative and variant testing techniques, achieve high code and value coverage. We also describe an extension to production grammars that enables concurrent generation of certificates for test cases. A certificate is a behavioral description that specifies the intended outcome of the generated test case, and therefore acts as an oracle by which the correctness of the tested system can be evaluated in isolation. We report the results of applying these testing techniques to commercial Java implementations. We conclude that the use of production grammars in combination with other automated testing techniques is a powerful and effective method for testing software systems, and is enabled by a special purpose language for specifying extended production grammars.
机译:可扩展的类型安全系统(例如Java)严重依赖大型复杂的软件库来提供整体保护和完整性,因此很难进行测试和验证。传统的测试技术(例如手动测试生成和形式验证)非常耗时,昂贵且不精确,或者只能在实现的抽象模型上工作,并且过于简单。因此,到目前为止部署的商用虚拟机都存在许多错误和安全漏洞。

在本文中,我们讨论了使用生产语法测试大型,复杂且对安全性至关重要的软件系统的经验。具体来说,我们描述 lava,我们已经开发出用于指定生产语法的领域特定语言,并将我们的经验与使用 lava 为Java虚拟机生成有效的测试套件相关联。我们证明了生产语法在生成复杂的测试用例中的有效性,当与比较测试和变体测试技术结合使用时,可以实现较高的代码和价值覆盖率。我们还描述了生产语法的扩展,该扩展允许并发生成测试用例的证书。证书是一种行为描述,用于指定生成的测试用例的预期结果,因此它是一种预言性文件,通过它可以单独评估被测系统的正确性。我们报告了将这些测试技术应用于商业Java实现的结果。我们得出的结论是,将生产语法与其他自动化测试技术结合使用是一种功能强大且有效的软件系统测试方法,并且可以通过用于指定扩展生产语法的专用语言来实现。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号