1、1、程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。2、程序调试的基本步骤:(1)错误定位;(2)修改设计和代码,以排除错误;(3)进行回归测试,防止引进新的错误。3、程序调试可分为静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的调试手段,而动态调试是辅助静态调试。主要调试方法有:(1)强行排错法;(2)回溯法;(3)原因排除法。真题分析【真题 1】软件调试的目的是_。(2007 年 9月)A)改善软件的性能B)验证软件的正确性C)发现错误D)改正错误解析:软件调试的任务是诊断和改正程序中的错误。程序调试活动由两部分组成,一是根据错误的迹象确定程序中
2、错误的确切性质、原因和位置;二是对程序进行修改,排除这个错误。答案:D【真题 2】软件_【2】_阶段的任务是诊断和改正程序中的错误。(2006 年 9月)解析:软件测试的目的是发现程序中的错误,而调试的目的是确定程序中错误的位置和引起错误的原因,并加以改正。换句话说,调试的目的就是诊断和改正程序中的错误。调试不是测试,但是它总是发生在测试之后。答案:调试【真题 3】下列叙述中正确的是_。(2006 年 4月)A)软件维护只包括对程序代码的维护B)三种说法都不对-50-C)软件测试应该由程序开发者来完成D)程序经调试后一般不需要再测试解析:本题考核软件测试、软件调试和软件维护的概念。软件测试具有
3、挑剔性,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。调试也称排错,目的是发现错误的位置,并改正错误,经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误。软件维护通常有四类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善
4、性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。答案:B【真题 4】诊断和改正程序中错误的工作通常称为软件_【3】_。(2005 年 4月)解析:调试也称排错,调试的目的是发现错误的位置,并改正错误。一般的调试过程分为错误检查、错误诊断和改正错误。答案:调试【真题 5】软件(程序)调试的任务是_。(2010 年 3月)A)发现并改正程序中的所有错误B)确定程序中错误的性质C)诊断和改正程序中的错误D)尽可能多地发现程序中的
5、错误解析:调试也称排错或纠错。它与成功的测试形影相随,测试成功的标志是发现错误。根据错误迹象,诊断错误的原因和位置,进而改正程序中的错误,这就是调试的任务。答案:C【真题 6】下列叙述中正确的是_。(2005 年 9月)A)软件交付使用后其生命周期就结束B)软件维护是指修复程序中被破坏的指令C)软件交付使用后还需要进行维护D)软件一旦交付使用就不需要再进行维护解析:本题考核软件维护的概念。维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段,在软件交付使用后,还需要进行维护。软件维护通常有以下四类:1、为纠正使用中出现的错误而进行的改正性维护;2、为适应环境变化而进行的适应性
6、维护;3、为改进原有软件而进行的完善性维护;4、为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。答案:C1、软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。2、软件测试的目的:软件测试是为了发现错误而执行程序的过程。3、软件测试的准则:所有测试都应追溯到需求;严格执行测试计划,排除测试的随意性;充分注意测试中的群集现象;程序员应避免检查自己的程序;穷举测试不可能。4、软件测试的方法和技术分类:从是否需要执行被测试软件的角度,分为静态测试和动态测试方法;按照功能划分,分为
7、白盒测试和黑盒测试方法。5、静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行;动态测试是基本计算机的测试,主要包括白盒测试方法和黑盒测试方法。6、白盒测试:在程序内部进行,主要用于完成软件内部操作的验证。主要方法有逻辑覆盖、基本路径测试。黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据率访问错误、性能错误、初始化和终止条件错,用于软件确认。主要方法有等价类划分法、边界值分析法、错误推测法、因果图等。7、软件测试过程一般按四个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。(1)单元测试:是对软件设计的最小单位(模块)进行正确性检验的
8、测试,目的是发现各模块内部可能存在的各种错误。依据是详细设计说明书和源程序。采用的技术有表静态分析和动态测试。对动态测试以白盒测试为主,辅助以黑盒测试。单元测试的内容包括:模块接口测试,局部数据结构测试,重要的执行路径的检查,出错处理测试,影响以上各点及其相关点的边界条件测试。单元测试需要辅助模块:驱动模块和桩模块。驱动模块相当于被测试模块的主程序,桩模块是主程序调用的其他模块。(2)集成测试:是把模块在按照设计要求组装起来的同时进行测试,主要目的是发现与接口有关的错误,依据是概要设计说明书。集成测试所涉及的内容包括:软件单元的接口测试,全局数据结构测试,边界条件和非法输入的测试。集成测试将模
9、块组装成程序通常采用:非增量方式和增量方式组装。增量方式包括自顶向下,自底向上,自顶向下和自向上相结合。(3)确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中确定的各种需求,主要依据的是软件需求规格说明书。确认测试主要运用黑盒测试法。(4)系统测试的目的是在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方。系统测试的具体实施一般包括:功能测试,性能测试,操作测试,配置测试,外部接口测试,安全测试等。真题分析【真题 1】软件测试可分为白盒测试和黑盒测试。基本路径测试属于_【2】_测试。(2009 年 3月)解析:软件测试按照功能可以分为白盒测
10、试和黑盒测试,白盒测试方法也称为结构测试或逻辑驱动测试,其主要方法有逻辑覆盖、基本路径测试等。答案:白盒【真题 2】下面叙述中错误的是_。(2009 年 3月)A)程序调试通常也称为 DebugB)软件测试应严格执行测试计划,排除测试的随意性C)软件测试的目的是发现错误并改正错误D)对被调试的程序进行“错误定位”是程序调试的必要步骤解析:软件测试是为了发现错误而执行程序的过程。软件调试的目的是发现错误并改正错误。软件测试要严格执行测试计划,排除测试的随意性。程序调试通常也称 Debug,对被调试的程序进行“错误定位”是程序调试的必要步骤。答案:C【真题 3】按照软件测试的一般步骤,集成测试应在
11、_【2】_测试之后进行。(2008年 9月)解析:软件测试过程分 4个步骤,即单元测试、集成测试、验收测试和系统测试。所以集成测试在单元测试之后。答案:单元【真题 4】测试用例包括输入值集与_【1】_值集。(2008 年 4月)解析:测试用例由测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。答案:输出【真题 5】在两种基本测试方法中,_【2】_测试的原则之一是保证所测试模块中每一个独立路径至少要执行一次。(2007 年 9月)解析:白盒测试的基本原则是:保证所测模块中每一个独立路径至少执行一次;保证所测模块所有判断的每一个分支至少执行一次;保证所测模块每一条循环都在边界
12、条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。按照白盒测试的基本原则,“白盒”法是穷举路径测试。答案:白盒【真题 6】下列叙述中正确的是_。(2007 年 3月)A)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作B)软件测试是证明软件没有错误C)软件测试的主要目的是发现程序中的错误D)软件测试的主要目的是确定程序中错误的位置解析:软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指尽可能地找到迄今为止尚未发现的错误的用例;一个成功的测试是指发现了至今尚未发现的错误的测试。为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自己的程序
13、。答案:C【真题 7】软件测试分为白盒测试和黑盒测试。等价类划分法属于_【2】_测试。(2007 年 3月)解析:黑盒测试也称功能测试或数据驱动测试。它是对软件已经实现的功能是否满足需求进行测试和验证。黑箱测试完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。黑箱测试方法主要有等价类划分法、边界值分析法、错误推测法、因果图等,主要用于软件确认测试。答案:黑盒【真题 8】程序测试分为静态分析和动态测试。其中_【4】_是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(2006 年 4月)解析:程序测试分为静
14、态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。答案:静态分析【真题 9】下列叙述中正确的是_。(2005 年 9月)A)程序经调试改错后还应进行再测试B)程序经调试改错后不必进行再测试C)程序设计就是编制程序D)程序的测试必须由程序员自己去完成解析:软件测试仍然是保证软件可靠性的主要手段,测试的目的是要尽量发现程序中的错误,调试主要是推断错误的原因,从而进一步改正错误。测试和调试是软件测试阶段的两个密切相关的过程,通常是交替进行的。答案:A【真题 10】在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块
15、(桩模块)。其中_【3】_模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(2005 年 9月)解析:由于模块不是一个独立的程序,不能单独运行,因此,在进行模块测试时,还应为每个被测试的模块另外设计两类模块:驱动模块和承接模块。由于模块不是一个独立的程序,不能单独运行,因此,在进行模块测试时,还应为每个被测试的模块另外设计两类模块:驱动模块和承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是模拟被测试模块的下层模块。通常,承接模块有多个。答案:驱动【真题 11】下列对于软件测试的描述中正确的是_。(2005 年 4
16、月)A)软件测试的目的是尽可以多地发现程序中的错误B)软件测试的目的是使程序符合结构化原则C)软件测试的目的是证明程序是否正确D)软件测试的目的是使程序运行结果正确解析:1、软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。2、软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。3、测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。答案:A【真题 12】软件测试的目的是_。(2010 年 9月)A)改正程序中的错误B)发现程序中的错误C)评估软件可靠性D)发现并改正程序中的
17、错误解析:软件测试的目的是尽可能多的发现程序中的错误,而不是为了单纯的改正程序中的错误。答案:B1、数据库设计是数据应用的核心。数据库设计的两种方法:(1)面向数据:以信息需求为主,兼顾处理需求;(2)面向过程:以处理需求为主,兼顾信息需求。2、数据库的生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。3、数据库设计包括:需求分析、概念设计、逻辑设计、物理设计。(1)需求分析:常用结构分析方法和面向对象的方法。结构化分析(简称 SA)方法用自顶向下、逐层分解的方式分析系统。用数据流图表达数据和处理过程的关系。对数据库设计来讲,数据字
18、典是进行详细的数据收集和数据分析所获得的主要结果。数据字典是各类数据描述的集合,包括 5个部分:数据项、数据结构、数据流(可以是数据项,也可以是数据结构)、数据存储、处理过程。(2)数据库概念设计的目的是分析数据间内在语义关联,并建立数据的抽象模型。设计的方法有两种:集中式模式设计法(适用于小型或并不复杂的单位或部门);视图集成设计法。常见的方法有:E-R 模型与视图集成。视图设计一般有三种设计次序:自顶向下、由底向上、由内向外。视图集成的实质是将所有的局部视图统一与合并成一个完整的数据模式,常见的几种局部设计的冲突:命名冲突、概念冲突、域冲突、约束冲突。(3)数据库的逻辑设计主要工作是将 E
19、-R图转换成 RDBMS中的关系模式。逻辑设计的另一个重要内容是关系视图的设计,又称为外模式设计。关系视图设计:关系视图的设计又称外模式设计。关系视图的主要作用:提供数据逻辑独立性:使应用程序不爱逻辑模式变化的影响。能适应用户对数据的不同需求;有一定数据保密功能。(4)数据库的物理设计主要目标是对数据内部物理结构做调整并选择合理的存取路径,以提高数据库访问速度有效利用存储空间。一般 RDBMS中留给用户参与物理设计的内容大致有索引设计、集成簇设计和分区设计。4、数据库管理的内容:(1)数据库的建立;(2)数据库的调整;(3)数据库的重组;(4)数据库安全性与完整性控制;(5)数据库的故障恢复;
20、(6)数据库监控。真题分析【真题 1】数据库应用系统中的核心问题是_。(2009 年 3月)A)数据库维护B)数据库管理员培训C)数据库设计D)数据库系统设计解析:在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。所以数据库设计是数据库应用的核心。答案:C【真题 2】数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和_。(2006 年 9月)A)运行阶段B)物理设计C)编码设计D)测试阶段解析:数据库的生命周期可以分为两个阶段:一是数据库设计阶段;二是数据库实现阶段。数据库的设计阶段又分为如下四个子阶段:即需求分析、概念设计、逻辑设计和物理设计
21、。答案:B【真题 3】在数据库系统中,用户所见的数据模式为_。(2006 年 9月)A)内模式B)物理模式C)概念模式D)外模式解析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。数据库管理系统的三级模式结构由外模式、模式和内模式组成。1、外模式也称子模式或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。2、模式也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。3、内模式也称存储模式或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方法的描述。答案:D【真题 4】数据库设计包括概念设计、_【4】_设
22、计和物理设计。(2008 年 9月)解析:数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。它们是需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段和进一步修改阶段。在数据库设计中采用前 4个阶段。答案:逻辑【真题 5】在数据库设计中,将 E-R图转换成关系数据模型的过程属于_。(2008 年 4月)A)逻辑设计阶段B)物理设计阶段C)需求分析阶段D)概念设计阶段解析:数据库的设计阶段包括需要分析、概念设计、逻辑设计和物理设计,其中将 E-R图转换成关系数据模型的过程属于逻辑设计阶段。答案:A【真题 6】数据库设计中,用
23、E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(2010 年 3月)A)概念设计阶段B)物理设计阶段C)需求分析阶段D)逻辑设计阶段解析:E-R 图是概念模式,在第二阶段概念设计阶段构造。答案:A【真题 7】数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和_【5】_。(2010 年 9月)解析:数据库的设计包括需求分析、概念设计、逻辑设计和物理设计四个阶段。答案:物理设计1、软件设计是软件工程的重要阶段,是一个把软件需求持换为软件表示的过程。软件设计的基本目标是用比较抽象慨括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。(1)需求分析主
24、要解决“做什么”问题,软件设计解决“怎么做”的问题。从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。结构设计:定义软件系统各主要部件之间的关系。数据设计:将分析时创建的模型转化为数据结构的定义。接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。过程设计:把系统结构部件转换成软件的过程描述。(2)从工程管理角度来看,软件设计包括:概要设计和详细设计。2、软件设计中应该遵循的基本原理和与软件设计有关的概念(1)抽象:就是把事物本质的共同特征提取出来而不考虑其他细节。(2)模块化:是指把一个待开发的软件分解成若干小的简单的部分。但划分模块不是越多越好。(3)
25、信息隐蔽:是指在一个模块中包含的信息,对于不需求这些信息的其他模块来说是不能访问的。(4)模块独立性:每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。这是评价设计好坏的重要度量标准。3、衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准:(1)内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚是从功能角度来度量模块内的联系。(2)耦合性:耦合性是模块间互相连接的紧密程度的度量。耦合性的强弱取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚、低耦合。4、软件概要设计(1)概要设计的基
26、本任务是:设计软件系统结构;数据结构及数据库设计;编写概要设计文档;概要设计文档评审。(2)结构图(SC),是概要设计阶段的工具。其图形元素为:矩形表示一般模块。箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。用带实心圆的箭头表示传递的是控制信息。空心圆箭心表示传递的是数据。结构图的基本形式:基本形式、顺序形式、重复形式、选择形式。结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。结构图的形态特征:包括深度、宽度、扇出、扇入。深度:表示控制的层数宽度:表示整体控制跨度扇入:调用一个给定模块的模块个数。扇出:一个模块直接调用的其他模块数。(3
27、)面向数据流的设计方法:典型的数据流类型有两种:变换型和事务型。变换型系统结构图由输入、中心变换、输出三部分组成。事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。5、软件详细设计(1)是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。(2)常见的过程设计工具有:图形工具:程序流程图(PDF),N-S,PAD(问题分析图),HIPO表格工具:判定表语言工具:PDL(伪码)真题分析【真题 1】软件详细设计产生图如下:软件详细设计产生图如下:该图是_。(2009 年 9月)A)程序流程图B)E-R 图-38-C)N-S 图D)PAD 图解析:程序流程图是一种传统的、应用,广泛的软件过程设计表示工具,通常也称为程序框图。答案:A【真题 2】程序流程图中带有箭头的线段表示的是_。(2008 年 4月)A)控制流B)调用关系C)图元关系D)数据流解析:程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形表示逻辑条件。答案:A【真题 3】在软件开发中,需求分析阶段产生的主要文档是_。(2008 年 4月)A)概要设计说明书B)集成测试计划C)可行性分析报告D)软件需求规格说明书