图的 第九章开发过程与程序质量保证 程序设计首先是一个过程,分为问题建模 算法设计、编写代码和编译调试等阶段。即 使是一个比较简单的程序,我们也应该养成 先分析,再下手,最后调试的习惯,严格遵 循程序设计过程 本章介绍软件的开发过程及过程的实施管理, 从程序质量保证的高度讨论了程序的调试与 测试,重点讲述了]ava程序的调试方法、程 序中的异常处理以及单元测试方法
第九章 开发过程与程序质量保证 程序设计首先是一个过程,分为问题建模、 算法设计、编写代码和编译调试等阶段。即 使是一个比较简单的程序,我们也应该养成 先分析,再下手,最后调试的习惯,严格遵 循程序设计过程。 本章介绍软件的开发过程及过程的实施管理, 从程序质量保证的高度讨论了程序的调试与 测试,重点讲述了Java程序的调试方法、程 序中的异常处理以及单元测试方法
图的 9.1软件开发过程概述 ■软件生命周期 软件开发过程 ■软件质量与测试
9.1 软件开发过程概述 n 软件生命周期 n 软件开发过程 n 软件质量与测试
图的 9.1.1软件生命周期 计算机软件开发有它 设计 们自己的周期,称为 系统 系统开发生命周期 问题 陈述 解决方 案描述 (SDLC)。SDLC分「分析 创建 需求 系统 为多个阶段,包括: 分析需求、设计系统、 问题 软件和硬 发现 件实现 创建系统、运行系统 系统 维护系统。每个阶段 还仃 还行 系统 系统 包括有许多任务
9.1.1 软件生命周期 计算机软件开发有它 们自己的周期,称为 系统开发生命周期 (SDLC)。SDLC分 为多个阶段,包括: 分析需求、设计系统、 创建系统、运行系统、 维护系统。每个阶段 包括有许多任务。 分析 需求 维护 系统 运行 系统 创建 系统 设计 系统 问题 发现 系统 运行 问题 陈述 解决方 案描述 软件和硬 件实现
图的 9.1.2软件开发过程 !开发一个软件系统的参与者包括:系统所有者、使用 者、分析者、设计者、构建者以及IT供货商和顾问这 6类。他们的共同目标是创建符合需要的软件系统 ■软件开发的项目管理是和软件开发的基本过程紧密结 合的 ■通常软件开发过程可以分为若干个不同的开发阶段实 施,每个阶段都由不同角色的开发人员担当,并产生 可交付的软件制品 一个典型的软件系统开发过程包含了定义边界、问题 分析、需求分析、系统分析、系统设计、构造实现、 测试和发布等7个阶段
9.1.2 软件开发过程 n 开发一个软件系统的参与者包括:系统所有者、使用 者、分析者、设计者、构建者以及IT供货商和顾问这 6类。他们的共同目标是创建符合需要的软件系统。 n 软件开发的项目管理是和软件开发的基本过程紧密结 合的。 n 通常软件开发过程可以分为若干个不同的开发阶段实 施,每个阶段都由不同角色的开发人员担当,并产生 可交付的软件制品。 n 一个典型的软件系统开发过程包含了定义边界、问题 分析、需求分析、系统分析、系统设计、构造实现、 测试和发布等7个阶段
图的 9.1.3软件质量与测试 优质软件的定义是:软件能 编程计划 QA计划 够满足用户显式或隐式的需 求,文档齐全,符合规定的 操作标准,在其开发使用的 编写用例—测试用例 硬件上高效运行。 编码结束 软件测试是软件质量的首要 用例升级 保证。测试应包括黑盒测试 将测试用例转成自动测试 测试用 和白盒测试。 编程人员测试 例升级 准备集成 一般来说,软件测试可分为 QA部门测试 三种测试,即程序测试、系 统测试和用户测试 集成测试
9.1.3 软件质量与测试 n 优质软件的定义是:软件能 够满足用户显式或隐式的需 求,文档齐全,符合规定的 操作标准,在其开发使用的 硬件上高效运行。 n 软件测试是软件质量的首要 保证。测试应包括黑盒测试 和白盒测试。 n 一般来说,软件测试可分为 三种测试,即程序测试、系 统测试和用户测试
图的 9.2程序调试 ■程序是软件的本体,又是软件研究的对象。 ■程序的质量决定软件的质量 ■在软件开发过程中,程序编码、调试、测试 是一个持续的循环过程,只有在对程序进行 了彻底地调试与测试后才能交付最终用户使 用
9.2 程序调试 n 程序是软件的本体,又是软件研究的对象。 n 程序的质量决定软件的质量。 n 在软件开发过程中,程序编码、调试、测试 是一个持续的循环过程,只有在对程序进行 了彻底地调试与测试后才能交付最终用户使 用
图的 9.2.1程序调试的概念 ■在程序在编译通过以后,仍然可能会出现以下两类错误 口运行时刻错误 口逻辑错误 ■对于这两类错误,调试器都可以帮助我们快速定位错误, 并通过对程序运行的跟踪和对变量值的监视帮助我们找 到错误的真正原因和解决错误的途径。 ■程序调试的主要内容可以概括为如下的几方面: 口调试的准备和开始 口控制程序的执行 口断点的使用 口监视和检査数据的值
9.2.1 程序调试的概念 n 在程序在编译通过以后,仍然可能会出现以下两类错误: o 运行时刻错误 o 逻辑错误 n 对于这两类错误,调试器都可以帮助我们快速定位错误, 并通过对程序运行的跟踪和对变量值的监视帮助我们找 到错误的真正原因和解决错误的途径。 n 程序调试的主要内容可以概括为如下的几方面: o 调试的准备和开始 o 控制程序的执行 o 断点的使用 o 监视和检查数据的值
图的 9.2.1程序调试的概念 文件G)编辑(E)视图生成(B)运行)重构()版本()工具①窗口(M帮助出 单击选定代码行 B学曲的口Pa事a目 昌回36539 左边的空白,设 文件 置调试断点 源包 6 wordwnner Reader dataReader=new FileReader (vordrileNane) 通过“窗口”-“调 BufferedReader inStream:= new BufferedReader( dataReader):/打开文件流 菜单项打开各种调试 显示当前程序执 ManPan while (line != null) 行到的位置 将英中词汇对解析成英文、中文单词 “调用栈”窗口列出了 /例如 爱”解析成:“1me和爱 int poscoloneline, indexer( 程序最近的函数调用 在“监视”窗口 if ( poscoleno) I 中监视当前表达 式运行中的值 dsEnglish, add(e) wordsChinese add(c) 调 屙部变辈 Wordwinner (debug) 调试器控制台 othis 正在侦听1160 HO wordfileNarme sm e俄的文档单词库E4r 用户程序正在运行 令 dataReader 程 DVT-EventQueu-0在 er+insTream #170 局部变量”窗口 abandon=丢弃:放弃,抛弃 显示局部变量的值 用户程序正在运行 星AEw停止于hiu3 string 用户程序正在运行 Mt丢弃,放弃,抛弃 线程 AWT-EventQueue0停止于 MainPanel java196 NetBeans ide的调试环境
9.2.1 程序调试的概念 通过“窗口”->“调试” 菜单项打开各种调试 窗口。 在“监视”窗口 中监视当前表达 式运行中的值。 单击选定代码行 左边的空白,设 置调试断点。 “调用栈”窗口列出了 程序最近的函数调用。 显示当前程序执 行到的位置。 “局部变量”窗口 显示局部变量的值。 NetBeans IDE的调试环境
图的 9.2.2使用断点 ■设置断点 ■察看断点 图到建斯点 断点类型(,法 设置 包名) wordwinner 类名 断点 名称 已启用 行 Double Times java.15 行 MainPanel java195 口口口回回 行 MainPanel java308 打印文本工)线程( threadName在( className] methodName)中的{ lineNumber行上遇到方法断点 确定取消
9.2.2 使用断点 n 设置断点 n 察看断点
图的 9.2.3监视和检查数据的值 ■观察局部变量: 打开“局部变量”窗口(AIt- Shift-1)或“监 视”窗口(Alt- Shift-2)。右键单击某个变量 或监视,然后选择“创建固定监视” ■跟踪变量或表达式值的变化: 通过选择“窗口”->"调试”->监视”菜单可 以打开“监视”窗 1察看调用栈: 可以随时选择“窗口”->"调试”->调用栈” (At- Shift-3)来打开“调用栈”窗口
9.2.3 监视和检查数据的值 n 观察局部变量 : 打开“局部变量”窗口(Alt-Shift-1)或“监 视”窗口(Alt-Shift-2)。右键单击某个变量 或监视,然后选择“创建固定监视” 。 n 跟踪变量或表达式值的变化: 通过选择“窗口”->“调试”->“监视”菜单可 以打开“监视”窗口。 n 察看调用栈 : 可以随时选择“窗口”->“调试”->“调用栈” (Alt -Shift-3)来打开“调用栈”窗口