JTest
Jtest实现了自动化的解决方案,排除了Java开发人员技术应用上的障碍,使得开发人员能够顺利地采用这些技术。
Jtest的测试生成系统专利技术,开发人员提供了一种省时有效的白盒测试方法。Jtest通过自动生成和执行能够全面测试类代码的测试用例,使白盒测试完全自动化。Jtest使用一个符号化的虚拟机执行类,并搜寻未捕获的运行时异常。对于检测到的每个未捕获的运行时异常,Jtest报告一个错误,并提供导致错误的栈轨迹和调用序列。Jtest的先进技术保证它能够自动测试类的所有代码分支,从而彻底检查被测类的结构。
换句话说,Jtest自动生成高质量的测试用例集合,发现尽可能多的结构性错误,而且:
不需要用户写一点测试脚本语言或测试用例。
不需要用户写测试驱动程序。
不修改源代码。
不要求完整的应用。
Jtest报告下列未捕获的运行时异常:
行为错误的方法:这些方法对于某些特定输入不会产生异常。必须修改这些代码。
非预期参数:这一问题出现在当某方法遇到非预期的输入(不知任何处理)而产生一个异常。这些问题的修正可以通过检查输入并产生一个IllegalArgumentException (IAE)(假如该输入是非法的)。改正这类问题可以使代码更清晰更易维护。
行为正确的方法:这时,方法的正确输出是产生一个异常。在这种情形下,建议开发人员修改代码,将这类异常的产生置于方法的throw子句中。这会得到更清晰的代码并易于维护。
为开发人员使用的方法:在这种情况下,这些方法"不被假设"成处理Jtest生成的输入,开发人员是这些方法的唯一使用者,并且不传递这些输入参数。最好的办法是修改这些代码,让它产生一个IAE.这将带来额外的好处,使代码更易阅读。
总之,通过执行自动白盒测试,并提示上述类型的问题,Jtest能够为开发人员节省大量的时间并防止了错误。由于能够自动执行白盒测试的各个步骤,Jtest对开发人员来说是非常实用的,为了保证质量可以经常执行这一综合性测试。更进一步,使用测试生成系统技术产生的测试输入,Jtest使得白盒测试比手工测试更精确更有效。
白盒(构造)测试验证对一个类的非预期输入不会导致程序的崩溃。为执行白盒测试,您需要设计和执行根据类的内部结构编写的测试输入,检查是否存在会导致类运行失败的任何可能的对类的使用,以及是否存在某些编程缺陷可能会导致代码更容易出错。白盒测试能否成功的关键取决于测试输入的能力,是否能够尽可能全面地覆盖类的方法,并找出引起未捕捉到的运行时异常的输入。
文章来源于领测软件测试网 https://www.ltesting.net/