第8章习题 新闻发布系统软件的测试
1.填空题
1)静态测试包括代码审查和静态分析两种方法;动态测试有黑盒测试和白盒测试两种方法。 2)模块测试的主要内容有模块接口、局部数据结构、重要的执行路径、出错处理、边界测试。
2.简答题
(1)软件测试的目标是什么?软件测试的对象是什么?
?软件测试的目标:
(1)测试是为了发现程序中的错误而执行程序的过程。 (2)好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误测试。 (3)成功的测试是发现了迄今尚未发现的错误测试。 软件测试的基本目的就是要在软件产品投入生产性运用之前,尽可能多地发现软件产品中存在的各种错误,消除故障并保证软件的可靠性。即使通过了最严格的测试,仍然可能还有一些错误隐藏在程序中而未被发现。因此软件测试只能找到程序中存在的错误,而不能证明程序中没有错误。 ?软件测试的对象 软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括软件需求规格说明、软件概要设计规格说明、软件详细设计规格说明以及源程序,都应成为软件测试的对象。
(2)软件测试的原则有哪些?
为了能够设计出有效的测试方案,软件工程师必须充分理解并正确运用指导软件测试工作的基本原则。 (1)测试应以软件需求规格说明中的需求为标准。 (2)应该在测试工作真正开始前的较长时间就制订测试计划。一旦完成了需求分析。就可以着手制订测试计划,在确定了设计模型之后就可以立即开始设计详细的测试方案因此,在编码之前就可以对所有测试工作进行计划和设计。 (3)进行穷举测试是不可能的。 (4)应该由独立的第三方来从事测试工作。 (5)Pareto原则。测试所发现的错误中的80%很可能是由程序中20%的模块造成的。应该对发现错误集中的模块进行重点测试。 (6)测试应由小到大、由部分到整体逐步进行。 (7)测试具有可重复性。所使用的测试用例应该保存下来,供以后测试和维护使用
(3)简述语句覆盖、判定覆盖、条件覆盖、判定一条件覆盖、条件组合覆盖、路径覆盖、点覆盖和边覆盖的区别。
由于覆盖测试的目标不同,逻辑覆盖可分为语句覆盖、判定覆盖、条件覆盖、判断-条件覆盖、条件组合覆盖、路径覆盖、点覆盖和边覆盖。 语句覆盖:是指选择足够的测试用例,使得运行这些测试用例时,被测试程序中每个可执行语句至少执行一次。 判定覆盖:又称为分支覆盖,是指选择足够的测试用例,使得运行这些测试用例时,被测试程序中每个判定分支也至少执行一次(即真假分支均通过一次)。 条件覆盖:就是选择若干个测试用例,使得运行这些测试用例时,不仅被测试程序中的每个语句至少执行一次,而且每个判定的每个条件的所有可能取值至少执行一次。 判断-条件覆盖:是指选择若干个测试用例,使得运行这些测试用例时,被测试程序中每个判定的所有结果都至少执行一次,并且每个判定的每个条件的所有可能取值至少执行一次。 条件组合覆盖:是指选择足够的测试用例,使得运行这些测试用例的时候,被测试程序的每个判定条件中条件取值的所有可能组合都至少出现一次。 路径覆盖:是指选择足够的测试用例,使得运行这些测试用例的时候,被测试程序的每条可能路径至少执行一次(如果程序中包含环路,则要求每条环路至少通过一次)。 点覆盖:是指选择足够的测试用例,使得程序执行路径至少经过程序流程图中的每个节点一次。 边覆盖:选择足够多的测试用例,使得执行路径至少经过程序流程图中每边一次。
3.操作题
(1)设计目标系统测试用例,完成目标系统的测试工作。 (2)编写测试分析报告,以项目组为单位提交。参考《计算机软件文档编制规范》(GB/T 8567-2006)中的“测试分析报告”的编写提示。
4.名称解释
软件测试 程序测试 白测试 黑盒测试 模块测试 集成测试 验收测试 Alpha测试 Beta测试 等价类划分法 边界值分析法 软件测试:软件测试是对软件计划、软件设计和软件编码进行查错与纠错的活动,这个过程包括了代码执行活动和人工活动。测试的目的是找出软件开发整个生命周期中各个阶段的错误,分析错误的性质和位置并加以纠正。纠正的过程包括对文档和代码的修改。找错的活动称为测试,而纠错的过程称为调试。软件测试过程覆盖软件开发的整个阶段。 程序测试:程序测试是对编码阶段出现的语法错误、语义错误、运行错误进行查找的编码执行过程。通过查找编码错误和纠正编码错误来保证算法的正确实现。程序测试则仅限于编码阶段。 白盒测试:白盒测试(White Box Testing)又称结构测试,是把测试对象看作一个透明的盒子测试人员根据程序内部的逻辑结构和执行路径设计测试用例进行测试的过程。白盒测试主要用于对模块的测试,包括以下内容。 ①程序模块中的所有独立路径至少执行一次。 ②对所有逻辑判断的取值(“真”与“假”)都至少测试一次。 ③在上下边界及可操作范围内运行所有循环。 ④测试内部数据结构的有效性等。 黑盒测试:黑盒测试(Black Box Testing)又称功能测试,把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。它只检查程序功能是否能按照软件需求规格说明的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持。 模块测试:模块测试也称单元测试,是对每个模块进行单独测试而不需要考虑模块之间的相互关系。其目的是检查每个模块是否能独立、正确地运行。模块测试通常采用白盒测试,在程序设计时由程序编写者根据设计描述进行测试。在该测试阶段所发现的错误通常是编码和详细设计的错误。 集成测试:集成测试又叫接口测试、组装测试。将经过测试的单元模块按照一定的顺序组装成系统,同时进行测试。集成测试的重点是对各个模块之间的接口,以及各个模块之间的协调和通信进行测试。 验收测试:验收测试时程序交接前的最后一道工序,检验程序是否齐全完整。 Alpha测试:Alpha测试是在开发者的场所进行的,是用户在开发者的指导下进行的测试。 Beta测试:Beta测试是软件的最终用户在一个或多个用户场所进行的,与Alpha测试不同,开发者通常不在测试现场。 等价类划分法:等价类划分法属于黑盒测试,是将所有可能的输入数据划分成若干个等价类,然后在每个等价类中选取一个代表性的数据作为测试用例。 边界值分析法:边界值分析法也是一种黑盒测试方法,是对等价类划分法的补充。实践表明,错误最容易发生在输入或输出范围的边界上。这里所说的边界是指输入和输出等价类直接在其边界值上、稍大于边界值和稍小于边界值的数据。因此,针对各种边界情况设计测试用例,暴露出程序错误的可能性更大一些。 边界值分析法与等价类划分法的区别:边界值分析法是选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据,而等价类划分法是选取每个等价类内的典型值或任意值作为测试数据。
|