软件水平考试考试《(中级) 软件评测师》2023年11月精选试题,持续更新中

|类别:软件水平考试

【单选题】白盒测试也称结构测试或逻辑驱动测试,典型的白盒测试方法包括静态测试和动态测试。其中,静态测试除了静态结构分析法、静态质量度量法外,还有( )

A、代码检查法

B、逻辑覆盖法

C、基本路径测试法

D、结构覆盖法

答案:A

解析:典型的白盒测试方法包括:静态测试、动态测试。其中静态测试包括:代码检查法、静态结构分析法、静态质量度量法。


【单选题】在各种不同的软件需求中( )描述了用户使用产品必须要完成的任务,可以用UML建模语言(请作答此空)表示。

A、用例图

B、类图

C、状态图

D、序列图

答案:A

解析:本题考查软件需求的基础知识。功能需求描述了用户使用产品必须要完成的任务,UML的用例图可以用来对功能需求建模,故25题答案为A,26题的答案也为A。非功能需求描述软件解决方案必须具有的质量特性,如性能、安全等。过程约束是对用于构建系统的技术和资源的限制。设计约束是已经做出的设计决策或限制问题解决方案集的设计决策。


【单选题】在分布式数据库中有分片透明,复制透明,位置透明和逻辑透明等基本概念,其中( )是指局部数据模型透明,即用户或应用程序无需知道局部使用是哪种数据模型,(请作答此空)是指用户或应用程序不需要知道逻辑上访问的表是怎么分块存储的。

A、分片透明

B、复制透明

C、位置透明

D、逻辑透明

答案:A

解析:分片透明:指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即关系如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。复制透明:用户觉察不到分段的复制,复制透明性和位置透明性紧密相关。位置透明:指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。逻辑透明:指局部数据模型透明,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。


【单选题】已知函数f( )、g( )的定义如下所示,执行表达式"x=f(5)"的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行"x=f(5)"后x的值为( );若函数调用g(a)是值调用(call by value)方式,则执行"x=f(5)"后x的值为(请作答此空)。

A、20

B、25

C、60

D、75

答案:A

解析:本题考查程序语言基础知识。 若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。 根据题目说明,调用函数f时,实参的值为5,也就是在函数f中,x的初始值为5,接下来先通过"a=x-1"将a的值设置为4,再调用函数g(a)。函数g()执行时,形参y的初始值为4,经过"y=y*y-1"运算后,y的值就修改为15。 在引用调用方式下,g函数中y是f函数中a的引用(可视为形参y与实参a是同一对象),也就是说函数f中a的值被改为15,因此,返回函数f中再执行"a*x"运算后得到75(x=5,a=15),因此第一空应填入的值为75。 在值调用方式下,g函数中y只获得f函数中a的值(形参y与实参a是两个不同的对象),也就是说在函数g中修改y的值与函数f中a的值已经没有关系了,因此,返回函数f再执行"a*x"运算后得到20(x=5,a=4),因此第二空应填入的值为20。


【单选题】设数组a[0...n-1,0...m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0≤i<n,0≤j<m)的存储位置相对于数组空间首地址的偏移量为( )

A、(j*m+i)*4

B、(i*m+j)*4

C、(j*n+i)*4

D、(i*n+j)*4

答案:B

解析:数组元素的存储地址=数组空间首地址+偏移量,其中偏移量的计算方式为排列在所访问元素之前的元素个数乘以每个元素占用的存储单元数。对于元素a[i,j],在按行存储(以行为主序存放)方式下,从第0行和0列开始算起,每一行有m个元素,每一列有n个元素,每个元素占用4个存储单元,在a[i,j]前面已经有i行元素,然后在本行中,前面有j个元素,所以a[i,j]相对于数组空间首地址的偏移量为(i*m+j)*4。


【单选题】In a world where it seems we already have too much to do,and too many things to think about,it seems the last thing we need is something new that we have to learn.But use cases do solve a problem with requirements:with( )declarative equirements it"s hard to describle steps and sequences of events.Use cases,stated simply,allow description of sequences of events that,taken together,lead to a system doing something useful.As simple as this sounds,this is important.When confronted only with a pile of requiements,it"s often(请作答此空)to make sense of what the authors of the requirements really wanted the system to do.In the preceding example,use cases reduce the ambiguity of the requirements by specifying exactly when and under what conditions certain behavior occurs;as such,the sequence of the behaviors can be regarded as a requirement.Use cases are particularly well suited to capture approaches.Although this may sound simple,the fact is that( )equirement capture approaches,with their emphasis on declarative requirements and"shall"statements,completely fail to capture the( )of the system"s behavior.Use cases are a simple yet powerful way to express the behavior of the system in way that all stakeholders can easily understand.But,like anything,use cases come with their own problems,and as useful as they are,they can be( ).the result is something that is as bad,if not worse,that the original problem.Therein it"s important to utilize use cases effectively without creating a greater problem than the one you started with.

A、impossible

B、possible

C、sensible

D、practical

答案:A

解析:题意想要表达的意思是当面对的只是一堆要求,做出什么来明白用户真正想要所做的系统的意义往往是不可能的。正确答案为A,不可能的。附(参考翻译):在一个似乎已经有做不完的事情的世界里,我们有大量事情要思考,似乎我们不太需要学习新的东西。但是用例解决问题是有条件的:严密的说明性需求使得描述事件的步骤和次序变得举步维艰。简单地讲,用例描述一组事件序列,系统性地执行产生相应有用的结果。听上去简单明了,这是很重要的。当面对一大堆的需求时,通常不太可能理解这些需求的发起者到底想要系统做什么。在前面的案例中,用例通过详细准确描述什么时间、什么情况下确定的行为会发生,以减少需求的不确定。像这样的一些动作序列被看作是一个需求。用例特别适合于捕捉方法。虽然这听起来很简单,但事实上不同的需求会根据他们各自在说明性需求和“应有”的声明的侧重面上捕捉方法,导致完全无法捕捉到系统行为的初衷。用例是一个所有的利益相关者都可以很容易地理解的、简单却十分有效的表达系统的行为的方式。但是,和其他任何事情一样,用例也存在自身的问题,可能会被误用而弄巧成拙。造成的后果也很糟糕,或许只是没有比原本想要解决的问题更麻烦罢了。因此有效使用用例而避免制造更大的麻烦是非常重要的。


【单选题】对于逻辑表达式((a||b)||(c&&d)),需要( )个测试用例才能完成条件组合覆盖。

A、2

B、4

C、8

D、16

答案:D

解析:本题考查白盒测试中逻辑覆盖法的条件组合覆盖。条件组合覆盖的含义是:选择足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。本题中有4个条件,组合之后需要的用例数是16,因此选项D正确。


【单选题】以下几种白盒覆盖测试中,覆盖准则最强的是( )。

A、语句覆盖

B、判定覆盖

C、条件覆盖

D、条件组合覆盖

答案:D

解析:本题考查白盒测试的逻辑覆盖法。根据逻辑覆盖法定义,语句覆盖针对的是语句,是最弱的覆盖准则;判定覆盖和条件覆盖分别针对的是判定和条件,强度次之;判定条件覆盖要同时考虑判定和判定中的条件,满足判定条件覆盖同时满足了判定覆盖和条件覆盖;条件组合覆盖则要考虑同一判定中各条件之间的组合关系,是最强的覆盖准则。根据上述描述,覆盖准则最强的是条件组合覆盖,应选择选项D。


【单选题】在进行软件设计时,以下结构设计原则中,不正确的是( )。

A、模块应具有较强的独立性,即高内聚和低耦合

B、模块之间的连接存在上下级的调用关系和同级之间的横向联系

C、整个系统呈树状结构,不允许网状结构或交叉调用关系出现

D、所有模块都必须严格地分类编码并建立归档文件

答案:B

解析:为了保证系设计工作的顺利进行,结构设计应遵循如下原则:(1)所划分的模块其内部的凝聚性要强,模块之间的联系要少,即模块具有较强的独立性。(2)模块之间的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。(3)整个系统呈树状结构,不允许网状结构或交叉调用关系出现。(4)所有模块(包括后继IPO图)都必须严格地分类编码并建立归档文件。故正确答案为B。


【判断题】文件控制块是系统在管理文件时所必需的信息的数据结构,是文件存在的唯一标识,简称PCB。

A、正确

B、错误

答案:B

解析:错误,文件控制块简称FCB,PCB是进程的组成部分,是程序控制块。