第15章温序 本章的学习要点 ●错误的类型 ●调试工具和调试方法 ●软件测试的方法与技术
第15章 程序调试与软件测试 本章的学习要点 错误的类型 调试工具和调试方法 软件测试的方法与技术
151错误类型 程序调试就是对程序进行测试并査找出错误所在。 Visual basic的错误类型可以分为语法错误、编译 错误、运行错误和逻辑错误, 语法错误 通常是由于不正确书写代码而产生的。例如:多写、 漏写、关键字写错,标点符号使用不当等。对于这种 错误,用 Visual basic中提供的自动语法检查功能就 可解决。当输入一行代码并回车后, Visua.1 Basic系 统就立即检测出错误,出错的那一行变成红色,出错 部分被高亮显示并弹出消息对话框指出错误的原因, 对通过基本语法检查的语句,会自动将对象、常数等 首字母变为大写,自动调整各单词之间的空格等
15.1 错误类型 程序调试就是对程序进行测试并查找出错误所在。 Visual Basic的错误类型可以分为语法错误、编译 错误、运行错误和逻辑错误。 1.语法错误 通常是由于不正确书写代码而产生的。例如:多写、 漏写、关键字写错,标点符号使用不当等。对于这种 错误,用Visual Basic中提供的自动语法检查功能就 可解决。当输入一行代码并回车后,Visual Basic系 统就立即检测出错误,出错的那一行变成红色,出错 部分被高亮显示并弹出消息对话框指出错误的原因, 对通过基本语法检查的语句,会自动将对象、常数等 首字母变为大写,自动调整各单词之间的空格等
151错误类型 2.编译错误 编译错误是指单击了“启动”按钮,VB开始运行 程序前,先编译执行的程序段首产生的错误。此类错 误是由于用户未定义变量、遗漏关键字等原因而产生 的。这时VB也弹出一个对话框,提示错误信息。出错 的那行被高亮显示,同时VB停止编译。这时,用户必 须单击“确定”按钮,关闭出错提示对话框,然后对 出错行进行修改
15.1 错误类型 2.编译错误 编译错误是指单击了“启动”按钮,VB开始运行 程序前,先编译执行的程序段首产生的错误。此类错 误是由于用户未定义变量、遗漏关键字等原因而产生 的。这时VB也弹出一个对话框,提示错误信息。出错 的那行被高亮显示,同时VB停止编译。这时,用户必 须单击“确定”按钮,关闭出错提示对话框,然后对 出错行进行修改
151错误类型 3.运行错误 运行时的错误是W在编译通过后,运行代码时发生 的错误。这类错误往往是由指令代码执行了非法操作 引起的。 例如,除法运算中除数为零,类型不匹配,访问文 件时文件夹或文件找不到等。 4.逻辑错误 逻辑错误是指程序能正常运行但是没有得到预期结 果的错误。 例如,运算符使用不正确,语句的次序不对,循环 语句的起始、终值不正确。通常,逻辑错误不会产生 错误提示信息,故错误较难排除,需要程序员仔细阅 读分析程序,并具有调试程序的经验
15.1 错误类型 3.运行错误 运行时的错误是VB在编译通过后,运行代码时发生 的错误。这类错误往往是由指令代码执行了非法操作 引起的。 例如,除法运算中除数为零,类型不匹配,访问文 件时文件夹或文件找不到等。 4.逻辑错误 逻辑错误是指程序能正常运行但是没有得到预期结 果的错误。 例如,运算符使用不正确,语句的次序不对,循环 语句的起始、终值不正确。通常,逻辑错误不会产生 错误提示信息,故错误较难排除,需要程序员仔细阅 读分析程序,并具有调试程序的经验
152调试与排错 VB虽不能诊断或更正错误,但是提供了一些非常有用 的工具,帮助分析运行是如何从过程的一部分流动到另 一部分,分析变量和属性是如何随着语句的执行而改变 的。使用调试工具,可以能深入到应用程序内部去观察, 从而确定产生错误的原因。 15.2.1调试工具 Visual basic6.0提供了强大的调试工具,可以在 “调试”菜单中找到,也可以在“调试”工具栏中找到 通过它们可以便捷有效地检测出程序中逻辑错误地点和 原因
15.2 调试与排错 VB虽不能诊断或更正错误,但是提供了一些非常有用 的工具,帮助分析运行是如何从过程的一部分流动到另 一部分,分析变量和属性是如何随着语句的执行而改变 的。使用调试工具,可以能深入到应用程序内部去观察, 从而确定产生错误的原因。 15.2.1 调试工具 Visual Basic 6.0提供了强大的调试工具,可以在 “调试”菜单中找到,也可以在“调试”工具栏中找到。 通过它们可以便捷有效地检测出程序中逻辑错误地点和 原因
“调试”工具 “调试”工具用途 运行 从设计模式切换到运行模式或从中断模式切换到运行模式 中断 从运行模式切换到中断模式 结束 从中断模式或运行模式切换到设计模式 切换断点 程序会连续运行到光标所在行后转入中断模式,暂停应用程序的执 行 逐语句 程序逐条语句执行,每执行一条语句后转入中断模式 逐过程 程序将整个函数或过程作为一条语句来执行 跳出 程序将连续执行完该过程的其余部分,返回调用过程的下一条语句 并转入中断模式 本地窗口 显示当前过程中变量的值 立即窗口 当应用程序处于中断模式时,允许运行代码或查询变量值 监视窗口 显示选定表达式的值 快速窗口 当应用程序处于中断模式时,列出表达式的当前值 调用堆栈 在中断模式中,显示一个对话框,其中列出所有被调用且未完成运 行的过程
“调试”工具 “调试”工具用途 运行 从设计模式切换到运行模式或从中断模式切换到运行模式 中断 从运行模式切换到中断模式 结束 从中断模式或运行模式切换到设计模式 切换断点 程序会连续运行到光标所在行后转入中断模式,暂停应用程序的执 行 逐语句 程序逐条语句执行,每执行一条语句后转入中断模式 逐过程 程序将整个函数或过程作为一条语句来执行 跳出 程序将连续执行完该过程的其余部分,返回调用过程的下一条语句 并转入中断模式 本地窗口 显示当前过程中变量的值 立即窗口 当应用程序处于中断模式时,允许运行代码或查询变量值 监视窗口 显示选定表达式的值 快速窗口 当应用程序处于中断模式时,列出表达式的当前值 调用堆栈 在中断模式中,显示一个对话框,其中列出所有被调用且未完成运 行的过程
152调试与排错 15.2.2调试方法 Visual basic6.0提供了强大的调试工具, 可以在“调试”菜单中找到,也可以在“调试” 工具栏中找到。通过它们可以便捷有效地检测出 程序中逻辑错误地点和原因 1.使用断点 断点是一行加有标记的语句,程序执行到该 行时会暂停下来(断点语句并未被执行),这时 可进行各种调试工作。在程序调试过程中,不仅 需要设置断点,而且需要变换断点的位置,清除 前面设置的断点。断点的设置既可以在设计时完 成,也可以在中断模式下切换
15.2 调试与排错 15.2.2 调试方法 Visual Basic 6.0提供了强大的调试工具, 可以在“调试”菜单中找到,也可以在“调试” 工具栏中找到。通过它们可以便捷有效地检测出 程序中逻辑错误地点和原因。 1.使用断点 断点是一行加有标记的语句,程序执行到该 行时会暂停下来(断点语句并未被执行),这时 可进行各种调试工作。在程序调试过程中,不仅 需要设置断点,而且需要变换断点的位置,清除 前面设置的断点。断点的设置既可以在设计时完 成,也可以在中断模式下切换
152调试与排错 (1)设置断点 在代码窗口中将光标移动到欲设置断点的语句行 按F9键或单击语句行首的灰色标记区,也可以通过执 行【调试】→【切换断点】命令完成断点的设置 (2)取消断点 单击语句行首的灰色标记区中的断点标记,也可以 将光标移动到断点所在的行后,执行“调试”菜单中 的“切换断点”命令或按F9键,就可以将该断点清除 掉。如果希望清除程序中设置的所有断点,可以按 Ctrl+ Shift+F9键或执行“调试”→“清除所有断点” 命令
15.2 调试与排错 (1)设置断点 在代码窗口中将光标移动到欲设置断点的语句行, 按F9键或单击语句行首的灰色标记区,也可以通过执 行【调试】→【切换断点】命令完成断点的设置。 (2)取消断点 单击语句行首的灰色标记区中的断点标记,也可以 将光标移动到断点所在的行后,执行“调试”菜单中 的“切换断点”命令或按F9键,就可以将该断点清除 掉。如果希望清除程序中设置的所有断点,可以按 Ctrl+Shift+F9键或执行“调试”→“清除所有断点” 命令
152调试与排错 2.跟踪执行轨迹 当已经知道某行语句存在问题时,使用断点查找错 误是个有效的方法,但通常程序出错的具体位置并不 容易确定,只能够猜测到在某个范围内可能存在问题, 这需要在此范围内跟踪程序的执行结果,一条条地单 步执行语句,这种方式称为“跟踪”。 VB提供了4种跟踪方式:逐语句、逐过程、跳出、 和运行到光标处 注意:这4种方式都只能在中断模式下使用
15.2 调试与排错 2.跟踪执行轨迹 当已经知道某行语句存在问题时,使用断点查找错 误是个有效的方法,但通常程序出错的具体位置并不 容易确定,只能够猜测到在某个范围内可能存在问题, 这需要在此范围内跟踪程序的执行结果,一条条地单 步执行语句,这种方式称为“跟踪”。 VB提供了4种跟踪方式:逐语句、逐过程、跳出、 和运行到光标处。 注意:这4种方式都只能在中断模式下使用
152调试与排错 (1)还语句 逐语句执行又称为单步执行,一次执行一条语句(不包括说 明性语句和注释行),每执行完一条语句后就转入中断模式。 在逐语句调试下,用户可以使用调试工具栏或F8键进入“逐 语句”跟踪方式。继续逐语句执行 (2)逐过程 在执行一般代码语句时,“逐过程”与“逐语句”相似,只 有在当前的语句含有一个对过程的调用时,两者才会有差异。 “逐语句”将进入被调用的过程,并在该过程中执行一个语句, 与它不同的是,“逐过程”把被调用的过程视为一个基本单位 来执行,然后转回到当前过程的语包要使代码按这种方 式执行,单击“调试”工具栏上的“逐过程按钮 在现实调试中,一般可以交替使用“逐语句”和“逐过程”。 通过“逐过程”,可以跳过不想测试的过程代码,缩短调试时 间;而通过“还语句”,则可以详细测试可能出现错误的代码。 用户可以使用调试工具栏或 Shift+F8键进入“逐过程”跟踪 方式
15.2 调试与排错 (1)逐语句 逐语句执行又称为单步执行,一次执行一条语句(不包括说 明性语句和注释行),每执行完一条语句后就转入中断模式。 在逐语句调试下,用户可以使用调试工具栏或F8键进入“逐 语句”跟踪方式。继续逐语句执行。 (2)逐过程 在执行一般代码语句时,“逐过程”与“逐语句”相似,只 有在当前的语句含有一个对过程的调用时,两者才会有差异。 “逐语句”将进入被调用的过程,并在该过程中执行一个语句, 与它不同的是,“逐过程”把被调用的过程视为一个基本单位 来执行,然后转回到当前过程的下一语句。要使代码按这种方 式执行,单击“调试”工具栏上的“逐过程”按钮。 在现实调试中,一般可以交替使用“逐语句”和“逐过程”。 通过“逐过程”,可以跳过不想测试的过程代码,缩短调试时 间;而通过“逐语句”,则可以详细测试可能出现错误的代码。 用户可以使用调试工具栏或Shift+F8键进入“逐过程”跟踪 方式