任何不以学习知识为目的的考试都是耍流氓-软件工程导论试题

一、单选题

1、结构化程序设计主要强调的是(  )

A、程序的规模
B、程序的效率
C、程序设计语言的先进性
D、程序易读性

2、面向对象的分析方法主要是建立三类模型,即(  )

A、系统模型、ER 模型、应用模型
B、对象模型、动态模型、应用模型
C、E-R模型、对象模型、功能模型
D、对象模型、动态模型、功能模型

3、下面几种白箱测试技术,哪种是最强的覆盖准则(  )

A、语句覆盖
B、条件覆盖
C、判定覆盖
D、条件组合覆盖

4、以下不属于白盒测试技术的是(  )

A、逻辑覆盖
B、基本路径测试
C、循环覆盖测试
D、等价类划分

5、布模型的关键不足在于(  )

A、过于简单
B、不能适应需求的动态变更
C、过于灵活
D、各个阶段需要进行评审

6、关于构造原型的建议,下面说法错误的是(  )

A、暂不考虑速度、空间等性能效率方面的要求
B、暂不考虑错误恢复和处理
C、可降低可靠性和软件质量标准
D、原型界面部分的设计,暂不考虑与最终系统的界面相容

7、模块的内聚性可以按照内聚程度的高低进程排序,以下排列中属于从低到高的正确次序是(  )

A、偶然内聚,时间内聚,逻辑内聚
B、通信内聚,时间内聚,逻辑内聚
C、逻辑内聚,通信内聚,顺序内聚
D、功能内聚,通信内聚,时间内聚

8、效率是一个性能要求,因此应当在以下哪个阶段规定?(  )

A、可行性分析
B、需求分析
C、概要设计
D、详细设计

9、为了克服软件危机,人们首先想到要用以下哪中方法来开发软件?(  )

A、模块化
B、结构化
C、工程化
D、形式化

10、在软件生存期的各个阶段中跨越时间最长的阶段是(  )

A、需求分析阶段
B、设计阶段
C、测试阶段
D、维护阶段
二、填空题

1、过了正式复审的软件配置称为 ________。

2、数据流图一般可分为变换型和________两种

3、实现容错技术的主要手段是________。

4、黑盒测试又被称为数据驱动测试或________。

5、白盒测试中________首先以详细设计或员程序为基础,导出控制流程图的拓扑结构。

6、在________中引入了风险分析,________是典型的面向对象软件生命周期模型。

7、如果不与任何人通信时个人生产率为L,而且每条通信路径导致生产率减少l,则对于一个规模为P的项目组,其总生产率为:________

8、确认测试的目标是:________。

9、软件配置项是软件过程中产生的程序,数据和________。

10、软件配置管理的任务包括标识,版本控制,变化控制,________和报告五个任务。

11、________是评价软件结构质量的首要标准。

12、模块独立性度量(描述)的两个指标:________、________。

13、在结构化分析中,建模的核心是________。

14、软件规模估算的两种典型方法是________和________。

15、CMM的两个主要应用分别是________和________。

三、判断题

1、JAVA语言编译器是一个CASE工具。  (  )

2、软件模块之间的耦合性越弱越好。  (  )

3、原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。   (  )

4、面对日益增长的软件需求,人们显得力不从心。往往是产生软件危机的原因之一。     (  )

5、设计阶段的输出是编码阶段的输入。  (  )

6、过程描述语言可以用于描述软件的系统结构  (  )

7、模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。  (  )

8、确认测试计划应该在可行性研究阶段制定  (  )

9、测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。  (  )

10、在已定义级中,软件产品的质量在发生偏离时可以及时采取措施予以纠正,并且可以预期软件产品是高质量的(  )

四、简答题

1、什么是软件工程?为什么会出现软件工程?

2、软件工程的基本目标,三要素及其具体内容。

3、什么是软件原型,用在什么场合?

4、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?怎样用软件工程消除软件危机?

5、可行性研究包括哪几方面(每方面解决什么问题),研究得到的文档和结论是什么?

6、需求分析的任务是什么?分析得到的成果(文档)是什么?包含哪些内容?

7、软件需求通常包括哪些方面?各类需求一般包含内容有哪些(举例说明)?

8、为什么要进行需求分析?

9、数据流图,ER图,程序流程图,系统流程图什么时候产生,作用是什么?

10、数据流的划分。

11、数据流图怎么转换成软件结构图?

12、结构化分析、结构化设计的实质是什么?

13、结构化设计(SD)方法(面向数据流的设计方法)中,如何将分析的结果(数据流图)逐层分解、转换成设计的初步结果(软件层次图)?

14、如何看待模块划分的合理性,模块划分的质量依据是什么?

15、耦合和内聚的具体分类及使用原则。

16、测试的目的。测试的步骤,过程。

17、白盒测试和黑盒测试的内容,各用于哪些阶段?

18、软件测试的目标,文档和可维护性之间的关系。

19、什么是软件维护、维护分哪四种类型、其含义分别是什么、在维护工作中占得比例如何?

20、什么是软件的可维护性?决定软件可维护性的因素有哪些?造成软件难以维护的原因有哪些?

21、CMM的基本思想是什么?CMM的五个等级。

22、假设你被指定为项目负责人,你的任务是开发一个应用系统,该系统类似于你的小组以前做过的那些系统,只不过规模更大且更复杂一些。客户已经写出了完整的需求文档。你将选用哪种项目组结构?为什么?你打算采用哪种软件过程模型?为什么?

23、为什么会存在一个软件最大规模?

24、在结构化分析中,建模的核心是什么?3种模型分别是什么,分别用什么工具来描述?

25、什么是软件质量?它主要包括哪三方面的内容?

26、什么是软件配置项、什么是软件配置(包含的内容)、什么是基线(在什么时候产生)?

五、综合分析题

1、目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请写出问题定义,并且分析开发这个系统的可行性。
医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。

 

2、北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码,再拨8位电话号码(第1位不是0)。
请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。

 

3、复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。
请用状态转换图描绘复印机的行为。

 

4、为每种类型的模块耦合举一个具体的例子。

 

5、画出下列伪码程序的程序流程图和盒图:

START
IF p THEN
    WHILE q DO
        f
    END DO
ELSE
    BLOCK
        g
        n
    END BLOCK
END IF
STOP

 

6、图中给出的程序流程图代表一个非结构化的程序,问:

9、设计下列伪代码程序的语句覆盖和路径覆盖测试用例:

START
INPUT(A,B,C)
IF A>5
    THEN X=10
    ELSE X=1
END IF
IF B>10
    THEN Y=20
    ELSE Y=2
END IF
IF C>15
    THEN Z=30
    THEN Z=3
END IF
PRINT(X,Y,Z)
STOP

 

10. 函数SEARCH(somearray ,size ,value)的功能是,在一个整数数组somearray 中搜索一个值为value 的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1 。数组的长度由参数size 指定。假定数组第一个元素的下标为1 。


答案:

1、单选题

1、D
2、D
3、D
4、D
5、B
6、D
7、C
8、B
9、D
10、D


二、填空题

1、基线
2、事务型
3、冗余
4、功能测试
5、基本路径测试
6、螺旋模型,喷泉模型
7、Ltot = P(L - l(P - 1)^r)
8、验证软件的有效性
9、文档
10、配置审计
11、模块独立性
12、内聚 耦合
13、数据字典
14、代码行技术 功能点技术
15、软件过程评估 软件过程改进


三、判断题
1、√
2、√
3、√
4、√
5、√
6、×
7、√
8、×
9、×
10、×


四、简单题

1、概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。

 

2、目标:
1、付出较低的开发成本;
2、达到要求的软件功能;
3、取得较好的软件性能;
4、开发的软件易于移植;
5、需要较低的维护费用;
6、能按时完成开发任务,及时完成开发任务,及时交付费用;
7、开发的软件可靠性高成本、生产力和质量;

三要素:方法、工具和过程。
其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;
工具是为运用方法二提供的自动的或半自动的软件工程支撑环境;
过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

 

3、快速原型就是快速建立起来的旨在演示目标系统主要功能的程序。构建原型的要点是,它应该实现用户看得见的功能(例如屏幕显示或打印报表),省略目标系统的“隐含”功能(例如修改文件)。

快速原型应该具备的第一个特性是“快速”。快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的模型,以便使用户和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识。因此,原型的某些缺陷是可以忽略的,只要这些缺陷不严重地损害原型的功能,不会使用户对产品的行为产生误解,就不必管它们。
快速原型应该具备的第二个特性是“容易修改”。如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地满足用户的需求。

原型是软件开发人员与用户沟通的强有力工具,因此有助于所开发出的软件产品满足用户的真实需求。

 

4、软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。

软件危机的典型表现:
(1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。

软件危机出现的原因:
(1) 来自软件自身的特点
是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当
忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题
面对日益增长的软件需求,人们显得力不从心。

消除软件危机的途径:
(1) 对计算机软件有一个正确的认识(软件≠程序)
(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目
(3) 推广使用在实践中总结出来的开发软件的成功技术和方法
(4) 开发和使用更好的软件工具

 

5、一般说来,至少应该从下述4个方面研究每种解法的可行性:
(1)技术可行性 使用现有的技术能实现这个系统吗?
(2)经济可行性 这个系统的经济效益能超过它的开发成本吗?
(3)操作可行性 系统的操作方式在这个用户组织内行得通吗?
(4)法律可行性 从法律、社会效益等更广泛的方面研究
得到的文档是 可行性研究报告
经过定义问题、分析问题、提出解法的反复过程,最终提出一个符合系统目标的高层次的逻辑模型。然后根据系统的这个逻辑模型设想各种可能的物理系统,并且从技术、经济和操作等各方面分析这些物理系统的可行性。最后系统分析员提出一个推荐的行动方针,提交用户和客户组织负责人审查批准。(研究的结果是一份可行性研究的各个步骤的工作结果的文档——可行性研究报告,它包含了工程是否能继续进行下去和分析员的推荐方案;)

 

6、1.确定对系统的综合要求;2.分析系统的数据要求;3.导出系统的逻辑模型;4.修正系统开发计划。
需求规格说明书。

 

7、软件需求规格说明书是需求分析阶段得出的最主要的文档,描述了系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。

 

8、通过需求分析,明确用户对目标软件系统在功能、性能、行为、设计约束等方面的期望,回答软件系统“必须做什么”。

 

9、数据流图:描绘数据在软件中流动和被处理的逻辑过程;
ER图:用来建立数据模型;
程序流程图:是进行流程程序分析过程中最基本的工具;
系统流程图:系统流程图是概括地描绘物理系统的传统工具。

 

10、1、变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;
2、事务流:这种数据流是“以事务为中心的”,数据沿输入通路到达一个处理T,这个处理输入数据的类型在若干个动作序列中选出一个来执行。

 

11、面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。

 

12、结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。

 

13、第1步:复查基本系统模型
第2步:复查并精化数据流图
第3步:确定数据流图具有变换特性还是事务特性
第4步:确定输入流和输出流的边界,从而孤立出变换中心
第5步:完成“第一级分解”
第6步:完成“第二级分解”
第7步:使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

 

14、根据每个模块的成本和接口成本确定的软件总成本最低。

 

15、耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。包括数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合。
内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。包括:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。

 

16、为了发现程序中的错误而执行程序的过程,测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。
1、 模块测试;2、子系统测试;3系统测试;4、验收测试;5、平等运行。

 

17、白盒测试照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。

 

18、文档是响软件可维护性的决定因素.由于长期使用的大型软件系统在使用过程中必然会经受多次修改,所以文档在软件的可维护性上不可缺少的因素。

 

19、所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修正软件的过程。

维护分为四种类型:
(1) 改正性维护:把整断和改正错误的过程称为改正性维护
(2)适应性维护:为了和变化的环境适当的配合而进行的修改软件的活动
(3)完善性维护:在使用软件的过程中用户常常提出新增功能或修改已有功能的建议,为了满足这类要求的活动
(4)预防性维护:为了改进将来的可维护性或可靠性;
(2)
完善性维护:50%~66% 改正性维护:17%~21% 适应性维护:18%~25% 其他维护:4%

 

20、软件的可维护性:维护人员理解、改正、改动或改进这个软件的难易度。
决定软件可维护性的五个因素:(1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用性

 

21、CMM(能力成熟度模型)的基本思想是:由于问题是由人们管理软件过程的方法不当引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量。CMM有助于软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将开发出质量更好的软件,使更多的软件项目免受时间延误和费用超支之苦。

1、初始级:处于1级成熟度的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测;
2、可重复级:软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。软件项目工程活动处于项目管理体系的有效控制之下,执行着基于以前项目的准则且合乎现实的计划;
3、已定义级:管理活动和工程活动都是稳定的,软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性,这种能力是基于在软件中对已定义的过程模型的活动、人员和职责都有共同的理解;
4、已管理级:软件过程是可度量的,软件过程在可度量的范围内运行。这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋,在发生偏离时可以及时采取措施予以纠正,并且可以预期软件产品是高质量的;
5、优化级:软件过程是可优化的。软件机构能够持续不断地改进其过程能力,既对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。

 

22、由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主程序员组的形式为宜。
针对待开发的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发本系统。

23、Ltot = P(L - l(P - l)^r),随着P值增加,Ltot将从0增大到某个最大值,然后再下降,因此,存在一个最佳的项目组规模Popt,这个规模的项目组其总生产率最高。

 

24、模型的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。
(1)、数据模型,用实体-联系图描述;
(2)、功能模型,用数据流图描述;
(3)、行为模型,用状态转换图描述。

 

25、软件质量就是“软件与明确地和隐含地定义的需求向一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品但都应该具有的隐含特征相一致的程度。

它包括三方面含义:

(1)软件需求是度量软件质量的基础,与需求不一致就是质量部高;
(2)指定的开发标准定义了一组指导软件开发的准则,如果没有遵守这些准则,肯定会导致软件质量不高;
(3)通常,有一组没有显式描述的隐含需求(例如,软件应该是容易维护的)。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的;

26、软件配置项:在软件过程中产生的程序、数据、文档软件配置项包含内容:

1、计算机程序(源代码和可执行程序);
2、描述计算机程序的文档(供技术人员或用户使用);
3、数据(程序内包含的或在程序外的)。

基线:是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化。IEEE把基线定义为:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。


五、综合分析题

1、点击可行性研究,详见题目2

2、点击可行性研究,详见题目3

3、点击需求分析,详见题目7

4、点击总体设计,详见题目5

5、点击详细设计,详见题目5

6、点击详细设计,详见题目6

7、点击详细设计,详见题目7

8、点击软件项目管理,详见题目13

9、(1) 语句覆盖的测试用例
因为每个判定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次,
总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次。下面是实现
语句覆盖的典型测试用例:
① 使3 个判定表达式之值全为假
输入:A = 1 ,B = 1 ,C = 1
预期的输出:X = 1 ,Y = 2 ,Z = 3
② 使3 个判定表达式之值全为真
输入:A = 20 ,B = 40 ,C = 60
预期的输出:X = 10 ,Y = 20 ,Z = 30

(2) 路径覆盖的测试用例
本程序共有8 条可能的执行通路,为做到路径覆盖总共需要8 组测试数据。下面是
实现路径覆盖的典型测试用例:
① 3 个判定表达式之值全为假
输入:A = 1 ,B = 1 ,C = 1
预期的输出:X = 1 ,Y = 2 ,Z = 3
② 3 个判定表达式依次为假、假、真
输入:A = 1 ,B = 1 ,C = 60
预期的输出:X = 1 ,Y = 2 ,Z = 30
③ 3 个判定表达式依次为假、真、假
输入:A = 1 ,B = 40 ,C = 1
预期的输出:X = 1 ,Y = 20 ,Z = 3
④ 3 个判定表达式依次为假、真、真
输入:A = 1 ,B = 40 ,C = 60
预期的输出:X = 1 ,Y = 20 ,Z = 30
⑤ 3 个判定表达式依次为真、假、假
输入:A = 20 ,B = 1 ,C = 1
预期的输出:X = 10 ,Y = 2 ,Z = 3
⑥ 3 个判定表达式依次为真、假、真
输入:A = 20 ,B = 1 ,C = 60
预期的输出:X = 10 ,Y = 2 ,Z = 30
⑦ 3 个判定表达式依次为真、真、假
输入:A = 20 ,B = 40 ,C = 1
预期的输出:X = 10 ,Y = 20 ,Z = 3
⑧ 3 个判定表达式全为真
输入:A = 20 ,B = 40 ,C = 60
预期的输出:X = 10 ,Y = 20 ,Z = 30

 

10、题中并没有给出实现函数SEARCH 的算法,仅仅描述了它的功能,因此,只能用黑盒测试技术设计测试它的测试方案。
为了用等价划分法设计测试方案,首先需要划分输入数据的等价类。根据该函数的功能,可以把它的输入数据划分成以下等价类:
(1) 有效输入的等价类
数组有偶数个元素,第1 个元素是所要找的数。
数组有偶数个元素,最后一个元素是所要找的数。
数组有偶数个元素,数组中没有所要找的数。
数组有奇数个元素,第1 个元素是所要找的数。
数组有奇数个元素,最后一个元素是所要找的数。
数组有奇数个元素,数组中没有所要找的数。
数组有多个元素,其中一个正整数是所要找的数。
数组有多个元素,其中一个负整数是所要找的数。
数组有多个元素,其中一个0 是所要找的数。
(2) 无效输入的等价类
数组实际长度不等于变元size 的值。
为了使用边界值分析法设计测试方案,应该再考虑下述几种边界情况:
数组长度为1 ,其元素是所要找的数。
数组长度为1 ,其元素不是所要找的数。
数组为空(长度为0) 。
根据上面划分出的等价类及边界情况,可以设计出下述测试方案:
① 数组长度为1 ,其正整数元素是所要找的数
输入:somearray = {6} ,size = 1 ,value = 6
预期的输出:1
② 数组长度为1 ,其负整数元素是所要找的数
输入:somearray = { - 20} ,size = 1 ,value = - 20
预期的输出:1
③ 数组长度为1 ,其元素0 是所要找的数
输入:somearray = {0} ,size = 1 ,value = 0
预期的输出:1
④ 数组长度为1 ,其元素不是所要找的数
输入:somearray = {6} ,size = 1 ,value = 8
预期的输出: - 1
⑤ 数组为空
输入:somearray = { } ,size = 0 ,value = 6
预期的输出: - 1
⑥ 数组有偶数个元素,第1 个元素是正整数且是所要找的数
输入:somearray = {1 ,2 ,3 ,4} ,size = 4 ,value = 1
预期的输出:1
⑦ 数组有偶数个元素,最后一个元素是负整数且是所要找的数
输入:somearray = {1 ,2 ,3 ,- 4} ,size = 4 ,value = - 4
预期的输出:4
⑧ 数组有偶数个元素,其中一个元素0 是所要找的数
输入:somearray = {1 ,2 ,0 ,3} ,size = 4 ,value = 0
预期的输出:3
⑨ 数组有偶数个元素,元素中没有所要找的数
输入:somearray = {1 ,2 ,3 ,4} ,size = 4 ,value = 5
预期的输入: - 1
⑩ 数组有奇数个元素,第1 个元素是0 且是要找的数
输入:somearray = {0 ,1 ,2} ,size = 3 ,value = 0
预期的输出:1
11.数组有奇数个元素,最后一个元素是负整数且是所要找的数
输入:somearray = {1 ,2 ,- 3} ,size = 3 ,value = - 3
预期的输入:3
12.数组有奇数个元素,没有要找的数
输入:somearray = {1 ,2 ,3} ,size = 3 ,value = - 3
预期的输出: - 1
13.数组实际长度不等于size
输入:somearray = {1 ,2 ,3} ,size = 2 ,value = 1
预期的输出:“无效的size 值”


  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值