论文部分内容阅读
随着社会的不断进步和计算机科学技术的飞速发展,计算机及软件渗透到了人类社会的各个角落,成为国民经济、国防和社会日常生活中必不可少的重要组成部分。作为计算机的灵魂,软件的作用和地位越发显得重要。因此,软件的质量问题日益成为人们关注的焦点。许多计算机科学家在展望21世纪计算机科学发展方向和策略时,将提高软件质量放在优先于提高软件功能和性能的地位。缺陷(错误)是物品的固有属性,软件也不例外。由于软件自身的特点,决定了它存在错误的必然性和查找、纠正错误的复杂性。在目前形式化方法和程序正确性证明技术还无望成为实用性方法的情况下,软件测试在将来相当一段时间内仍然是软件质量保证的有效手段。软件测试/调试的质量将最终决定软件产品的质量。软件测试与调试是两个密切联系的过程,软件测试的目的是为了发现错误,软件调试的目的是定位错误、纠正错误。 本文系统地论述了软件测试/调试技术的一般原理和方法,结合作者的软件开发经验和测试实践,对软件测试的原则、软件测试的认识、适合与不适合对软件进行自动化测试的情形以及自动测试的优缺点进行了认真、仔细的分析和说明。通过进行具体的程序(脚本)设计,讨论了两种模式的软件自动测试的实现方法。一种是通过传统的编程对被测程序进行“改造”,使其执行时能自动地从测试用例文件中读取数据,将运行结果存于结果文件中,通过实际运行结果与预期运行结果的比较来说明程序是否通过测试。这种方法适用于有具体的输入/输出的程序的测试。第二种是通过设计脚本,借助自动测试工具,实现对具有抽象输入/输出的程序的测试。关于软件调试技术,主要研究了一种基于程序切片技术的调试方法。通过对程序按测试结果的分析选择合适的切片变量进行程序切片,从给定的切片变量和语句编号处向前回溯,找出所有直接或间接影响切片变量值的语句,将其组成一个切片。若切片变量的值错误,则出错范围必在其切片内,这样可以缩小定位错误的范围,提高调试效率。由于对程序进行切片也是一项重脑力劳动,尤其对于大规模程序更是如此,因此实现对程序的自动切片势在必行。为此,以C语言源程序为例,使用VFP语言设计了一个对其进行自动切片辅助程序,通过该程序的设计,详细论述了程序自动切片的基本思想和实现方法。最后,对程序自动切片算法的实现做了客观的评价。