第一讲
1、下列描述中,不属于典型软件发展三大阶段的是:
A.网络化和服务化
B.软件成为独立产品
C.软硬件一体化阶段
D.软件作坊
正确答案:D
2、“Measure twice, Cut once” 是哪个阶段的典型开发特征?
A.网络化阶段
B.软硬件一体化阶段
C.软件作坊阶段
D.软件成为独立产品阶段
正确答案:B
3、关于软件过程管理,以下哪一种说法是比较贴切的:
A.软件过程管理关注的是企业软件过程能力的稳定输出和提升。
B.进入互联网时代,软件过程管理是过于老套的话题。
C.软件过程管理主要关注软件成本和质量目标的达成。
D.软件过程管理是软件企业发展到较高层次才需要关心的话题。
正确答案:A
4、软件开发的本质难题中哪一个与软件发展阶段没有直接关系?
A.可变性
B.不可见性
C.一致性
D.复杂性
正确答案:B
5、“Code and Fix” 是软件发展哪个阶段的典型开发特征?
A.互联网时代
B.网络化和服务化
C.软硬件一体化
D.软件作为独立产品
正确答案:C
6、以下哪个因素促成了软件成为独立的产品?
A.个人电脑的出现
B.高级程序设计语言的出现
C.操作系统的出现
D.互联网的出现
正确答案:C
7、软件危机和软件工程这两个概念提出时间是?
A.上世纪五十年代
B.上世纪七十年代
C.上世纪六十年代
D.上世纪八十年代
正确答案:C
8、以下描述中,哪几种是网络化和服务化这个阶段的典型软件应用特征?
A.通过CD和DVD等方式支持大容量和快速分发软件拷贝
B.用户数量急剧增加
C.快速演化、需求不确定
D.通过SaaS等方式来发布软件系统
正确答案:B、C、D
9、关于形式化方法的描述当中,不正确的有哪些?
A.这种方法的主要目的是解决软件开发的效率问题
B.这种方法应用范围有限,例如:不适合跟客户讨论需求。
C.这种方法是网络化和服务化阶段用来应对软件开发本质四大难题而提出来的
D.这种方法对开发人员技能有较高的要求
正确答案:A、C
10、关于迭代式方法的说法哪些是比较恰当的?
A.迭代式方法是上世纪九十年代中后期才出现的一种方法
B.迭代式方法是指一类具有类似特征的方法
C.迭代式方法主要是为了解决软件开发的质量问题
D.迭代式方法主要特征在于将软件开发过程视作一个逐步学习和交流的过程
正确答案:B、D
11、DevOps方法的出现具有一定的必然性,与以下哪些软件应用特征相匹配?
A.用户需求多变所带来了软件系统的快速演化的要求
B.软件定义世界,软件随处可见
C.软件系统部署环境越来越错综复杂
D.软件在社会生活当中扮演了越来越关键的角色
正确答案:A、B、C、D
12、DevOps的哪些特点可以有效支撑当前社会对软件系统的期望?
A.敏捷开发、精益思想以及看板方法,支持快速开发、交付、迭代和演化
B.微服务架构设计
C.虚拟机技术的大量应用
D.工具链支持高效率的自动化
正确答案:A、B、C、D
13、在DevOps化的three ways当中,关注质量问题是第二个阶段才需要考虑的。
A.对
B.错
正确答案:B
14、DevOps中的XaaS特指 SaaS、PaaS以及IaaS这三种。
A.对
B.错
正确答案:B
15、DevOps化的Three ways当中,建立反馈机制是二阶段应该实现的目标。
A.对
B.错
正确答案:A
第二讲
1、下述各个度量项中,哪一个不是PSP的基本度量项?
A.规模
B.缺陷
C.时间
D.风险
正确答案:D
2、关于面向用户的质量观,我们应该关注如下哪些问题:
A.用户期望是否有优先级?
B.用户期望的优先级对软件开发的影响?
C.界面和可操作性是首要的,因为这是用户能直接感受到的。
D.真实用户是谁?
正确答案:A、B、D
3、PSP当中为什么用缺陷管理替代质量管理?下述说法中正确的是:
A.因为缺陷管理相关的活动(例如,测试等)本来就是软件开发中必须要开展的活动。
B.因为缺陷往往对应了面向用户质量观中的首要用户期望。
C.因为单纯质量管理很难操作。
D.因为缺陷管理和质量管理其实是一回事。
正确答案:B、C
4、关于PROBE估算法,下述各种说法中,不正确的有哪些?
A.PROBE估算结果带着小数,肯定不准确,因而, 不应该在项目估算的时候使用。
B.PROBE不能给出精确估算,因而适合用来跟用户讨论需求和规模。
C.PROBE方法不能用来估算质量。
D.PROBE方法不需要历史数据。
正确答案:A、B、D
5、关于质量路径(Quality Journey),下列说法中哪些不恰当。
A.质量路径与个体软件工程师无关,是团队层面的集体努力。
B.高质量软件产品最终还是需要依赖测试来确保。
C.进入测试之前的高质量,是获得测试之后高质量软件系统的前提条件。
D.质量路径中所列举的方法都是提升开发质量的有效手段,可以随意选择使用。
正确答案:A、D
6、关于评审检查表,下述说法中不恰当的是:
A.评审检查表应该保持稳定,确保缺陷不会被遗漏
B.评审检查表应该定期更新
C.项目团队所有人应该共用一份评审检查表,体现统一性
D.评审检查表应该是个性化的
正确答案:A、C
7、关于PQI,下述说法中不恰当的是:
A.PQI五个分指标都可以超过1.0,比如,设计时间多于编码时间的时候,该分指标就超过1.0了
B.PQI越高越好,最好达到1.0
C.PQI可以为过程改进提供依据
D.PQI可以用来辅助判断模块开发的质量
正确答案:A、B
8、关于评审,下述说法中不恰当是:
A.代码的个人评审应该安排在单元测试之后,确保评审对象有着较高的质量,提升评审价值。
B.如果安排了代码的小组评审,那么代码个人评审就可以不用做。
C.代码的个人评审也应该通过评审检查表来进行。
D.代码的个人评审最好交叉进行,因为阅读自己代码容易产生思维定式,不利于缺陷发现。
正确答案:A、D
9、关于质量的各种定义当中,下述哪些质量属性属于内部属性?
A.可靠性
B.安全性
C.可移植性
D.可扩展性
正确答案:C、D
10、PSP鼓励使用瀑布型生命周期模型。
A.对
B.错
正确答案:B
11、对于初学者来说,代码评审速度可以控制到每小时不超过400行。
A.错
B.对
正确答案:A
12、“高质量的软件开发是计划出来的”
A.对
B.错
正确答案:A
第三讲
1、下列哪一项更好地描述了敏捷宣言?
A.它定义了构建软件的规则
B.它包含了许多敏捷团队使用的实践
C.它包含了建立敏捷思维方式的价值观
D.它概述了构建软件的最有效方法
正确答案:C
2、你是一家社交媒体公司的开发人员,正在开发一个项目,项目需要一个为企业客户创建私有网站的新功能。 您需要与公司的网络工程师一起确定部署策略,并提出一组工程师可以用于管理站点的服务和工具。 网络工程师希望在你的网络内部部署所有服务,但您和您的团队成员不同意,并且认为服务应该部署在客户的网络上。 为了达成一个协议,该项目的工作已经停止。 哪种敏捷价值最适合这种情况?
A.工作的软件 高于 详尽的文档
B.客户合作 高于 合同谈判
C.响应变化 高于 遵循计划
D.个体和互动 高于 流程和工具
正确答案:B
3、你是一个软件团队的开发人员。 一个用户向你的团队询问有关构建新功能的信息,并以规范的形式提供了需求。 她非常确定这个功能要如何工作,并承诺不会有任何变化。 哪种敏捷价值最适用于这种情况?
A.工作的软件 高于 详尽的文档
B.客户合作 高于 合同谈判
C.响应变化 高于 遵循计划
D.个体和互动 高于 流程和工具
正确答案:A
4、Sean是一个正在构建财务软件的团队的开发人员。 他的团队被要求开发一个新的交易系统。 他和他的团队召开会议来提出他们正在使用的工作流的图景。 然后,他们将流程放在白板上,流程中的每个步骤都有一列。 经过对团队在白板上的工作项目进行了几周观察,他们注意到这个过程中有几个步骤似乎过载了。对于他们来说,下一步应该做什么?
A.在较慢的步骤中使用更多的人力
B.对过载步骤中正在进行的工作项目的数量进行限制
C.与团队合作,在工作进展缓慢的阶段更好地完成工作
D.专注于完成看板上的工作
正确答案:B
5、下列哪一个不是精益原则?
A.消除浪费
B.实施反馈循环
C.识别所有的步骤
D.尽可能晚的做决定
正确答案:B
6、下列哪一个更好地描述了如何使用看板?
A.观察特征如何流经过程,以便团队可以确定如何限制WIP并通过工作流程中的步骤确定最均匀的工作流程
B.跟踪WIP限制和当前任务状态,以便团队知道他们还有多少工作要做
C.帮助团队自我组织,并了解工作流程中的瓶颈所在
D.跟踪缺陷和问题,并创建解决产品问题的最快途径
正确答案:A
7、以下不是经常出现在Kanban上记事贴中的内容
A.谁在处理这个工作项
B.完成时间
C.工作项描述
D.团队名词
正确答案:D
8、一个公司内,各个团队的Kanban列设置应当一致,便于公司管理。
A.错
B.对
正确答案:A
9、在制品规模越小越好,因为这样可以优化前置时间,并且团队的效率会变高。
A.对
B.错
正确答案:B
10、敏捷软件开发宣言表明,在DevOps中写文档是没有必要的。
A.对
B.错
正确答案:B
第四讲
1、下面关于软件架构的描述哪个是不正确的?
A.软件架构包括系统组件、连接件和约束的集合。
B.软件架构是一组特定的架构元素,包括处理元素、数据元素和上下文元素。
C.软件架构包含一系列重要决策,包括软件组织、构成系统的结构要素等。
D.软件架构即一系列重要的设计决策。
正确答案:B
解析: B、软件架构不包含上下文元素。
2、在应用分层架构的软件系统中,最先处理外部请求的是:
A.业务层
B.表现层
C.数据层
D.应用层
正确答案:B
解析: B、在应用分层架构的软件系统中,各层处理外部请求的顺序依次是表现层、业务层、持久层和数据层。
3、以下哪个关于面向服务架构的描述是错误的?
A.SOA依赖企业服务总线为服务间的相互调用提供支持环境
B.面向服务架构是一个集中式组件的集合
C.在SOA中,服务消费者消费其他组件提供的服务不需要知道其具体的实现细节
D.面向服务架构包含服务提供者组件和服务消费者组件
正确答案:B
解析: B、面向服务架构应该是分布式组件的集合。
4、以下对于微服务优点的描述中,哪一个是错误的?
A.微服务可以使用RPC进行服务间通信
B.微服务系统测试变得非常简单
C.单个微服务很简单,只关注一个业务功能
D.不同的微服务可以使用不同的语言进行开发
正确答案:B
解析: B、分布式系统的复杂性使得系统测试变得复杂
5、在微服务架构中,ZooKeeper的主要作用是?
A.注册服务
B.开发服务
C.调用服务
D.封装服务
正确答案:A
6、除Spring Boot之外,主流的微服务开发框架还有什么?
A.Django
B.MyBaits
C.Kubernetes
D.Apache Dubbo
正确答案:D
7、在组成派看来,软件架构是指?
A.软件架构由软件元素、这些元素的外部可见属性,以及元素之间的关系组成。
B.软件架构是一系列重要决策的集合,包括构成系统的结构要素及其接口的选择。
C.软件架构包括系统组件、连接件和约束的集合。
D.软件架构将系统定义为计算组件及组件间的交互。
正确答案:A、C、D
解析: B、决策派的观点
8、分层架构将软件系统的组件分成多个互不重叠的层,包括
A.持久层
B.业务层
C.表现层
D.应用层
正确答案:A、B、C
解析: D、网络分层
9、分层架构模式的缺点包括:
A.不易于持续发布和部署
B.额外的性能开销
C.软件升级需要暂停整个服务
D.由于层间依赖关系,软件系统的可扩展性差
正确答案:A、B、C、D
解析: B、见分层架构部分“分层架构模式特点”。
10、以下哪几个不是面向服务架构强调的实现原则?
A.服务去中心化
B.服务简单
C.服务重用
D.服务解耦
正确答案:A、B
解析: A、微服务架构强调的实现原则。 B、微服务架构强调的实现原则。
11、以下选项中,哪些属于微服务架构的特点?
A.基础设施自动化
B.围绕业务能力组织
C.内聚和解耦
D.中心化
正确答案:A、B、C
解析: D、应为“去中心化”
12、以下选项中,API网关模式的优点有哪些?
A.确保客户端不必关心应用程序的微服务拆分方式
B.为每套客户端提供最优API
C.确保客户端不受服务实例位置的影响
D.将从客户端调用多项服务的逻辑转换为从API网关处调用,以简化整个客户端。
正确答案:A、B、C、D
13、与面向服务架构相关的Web服务标准包括:
A.WSDL
B.SOAP
C.HTTPS
D.UML
正确答案:A、B、C
解析: D、应改为XML
14、单体应用的所有功能都被集成在一起作为一个单一的单元。
A.对
B.错
正确答案:A
15、单体架构更多地作为应用的部署架构,单体应用只运行在一个进程中。
A.对
B.错
正确答案:B
解析:可能存在单体应用的多个实例运行在多个进程中。
16、微服务架构架构风格是一种将一个单一应用程序开发为一个小型服务的方法。
A.错
B.对
正确答案:A
解析:一组小型服务,而非一个。
17、本质上,微服务架构是SOA的一种扩展。
A.对
B.错
正确答案:A
18、核心模式即针对采用微服务系统在通用场景下的所有问题,所使用的成熟的架构解决方案集合。
A.错
B.对
正确答案:A
解析:是在特定场景下的特定问题
第五讲
1、下列哪项不是Docker容器的特点:
A.资源使用较少
B.创建速度很快
C.启动时间是分钟级
D.可以共享操作系统的资源
正确答案:C
2、下列哪项不是Docker的网络模式
A.None模式
B.Host模式
C.Bridge 模式
D.其他全是
正确答案:D
3、以下哪些是Docker的存储驱动:
A.其他都是
B.Device mapper
C.AUFS
D.OverlayFS
正确答案:A
4、以下哪个命令可以查看当前运行容器:
A.docker run
B.docker ps
C.docker logs
D.docker top
正确答案:B
5、Kubernetes集群将元数据保存在以下哪个组件:
A.Kube-apiserver
B.以上都不是
C.Kubelet
D.Etcd
正确答案:D
6、以下哪些是Kubernetes的控制器:
A.Rolling Updates
B.Both ReplicaSet and Deployment
C.Deployment
D.ReplicaSet
正确答案:B
7、以下哪些是Kubernetes的核心概念
A.Services
B.其他都是
C.Pods
D.Volumes
正确答案:B
8、Kubernetes里面的Replication控制器的职责是:
A.删除或者更新多个Pod
B.其他都是
C.帮助达到预期的状态
D.当已存在的Pod异常退出后,创建新的Pod
正确答案:B
9、如何通过命令行创建一个容器
A.docker start
B.docker run
C.docker poll
D.docker create
正确答案:B
10、Dockerfile中的命令 RUN, CMD 和ENTRYPOINT几者有何区别?
A.CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换
B.RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
C.其他都是
D.ENTRYPOINT 配置容器启动时运行的命令
正确答案:C
11、使用Kubernetes带来的好处有哪些
A.横向扩展
B.其他都是
C.自动回滚
D.自动调度
正确答案:B
12、以下哪项用于确保pod不会被调度到不适当的节点上?
A.Tolerations
B.Taints
C.Taints 和 Tolerations
D.以上都不是
正确答案:C
13、Docker容器的状态有
A.Restarting
B.Paused
C.Running
D.Exited
正确答案:C、D
14、关于Kubernetes的namespace的论述是否正确:命名空间是在多个用户之间划分群集资源的方法
A.对
B.错
正确答案:A
15、以下描述是否正确:多步构建允许在Dockerfile中使用多个FROM指令。两个FROM指令之间的所有指令会生产一个中间镜像,最后一个FROM指令之后的指令将生成最终镜像。中间镜像中的文件可以通过COPY --from=指令拷贝,其中image-number为镜像编号,0为第一个基础镜像。没有被拷贝的文件都不会存在于最终生成的镜像,这样可以减小镜像大小,同时避免出现安全问题。
A.对
B.错
正确答案:A
第七讲
1单选(1分)
下列哪项不属于DevOps工具生态圈?
A.编译
B.监控
C.持续部署
D.持续集成
正确答案:C
2、下列哪项不属于协同开发工具?
A.Confluence
B.Rally
C.JIRA
D.Kanban
正确答案:A
3、下列哪种持续集成工具是目前DevOps领域使用最广泛的?
A.VSTS
B.Travis CI
C.TeamCity
D.Jenkins
正确答案:D
4、下列哪种版本管理工具不是同宗同源的?
A.GitHub
B.GitLab
C.Subversion
D.Git
正确答案:C
5、以下哪项不是Git的文件目录?
A.加载区
B…git目录
C.Documents
D.工作目录
正确答案:C
6、下列哪种编译工具无法编译JAVA语言?
A.Maven
B.MSBuild
C.Ant
D.Gradle
正确答案:B
7、下列哪种工具无法实现对远程服务器的配置操作?
A.Chef
B.Ansible
C.JIRA
D.Puppt
正确答案:C
8、下列不属于测试的是
A.UI测试
B.单元测试
C.SIT测试
D.API测试
正确答案:C
9、使用_________工具完成DevOps持续交付流水线编排配置?
A.JUnit
B.Jenkins
C.Java
D.SonarQube
正确答案:B
10、Git是何种工具?
A.监控工具
B.版本管理工具
C.持续集成工具
D.单元测试工具
正确答案:B
11、以下哪种工具是开源工具?
A.TeamCity
B.JUnit
C.JIRA
D.Zabbix
正确答案:B
12、下列哪种工具能模拟市场上主流浏览器的操作?
A.FitNesse
B.Jenkins
C.Selenium
D.JUnit
正确答案:C
13、JIRA Software不支持极限编程这种敏捷开发方法。
A.对
B.错
正确答案:A
14、Jenkins支持工作流即代码(pipeline-as-code)。
A.对
B.错
正确答案:A
15、Git使用副本方式存储文件版本。
A.错
B.对
正确答案:A
16、Selenium能实现自动化单元测试。
A.错
B.对
正确答案:A你没选择任何选项
17、Nagios不属于监控工具。
A.错
B.对
正确答案:A
18、Zabbix有两种工作模式。
A.对
B.错
正确答案:A
19、SonarQube能完成持续交付流水线编排配置
对
错
正确答案:B你没选择任何选项
解析:静态代码扫描
20、Ansible只需要在Server端安装就能实现对远程服务器的配置管理?
A.对
B.错
正确答案:A你没选择任何选项
客观题
1、下列描述中,不属于典型软件发展三大阶段的是:
A.网络化和服务化
B.软件作坊
C.软硬件一体化阶段
D.软件成为独立产品
正确答案:B
2、“Measure twice, Cut once” 是哪个阶段的典型开发特征?
A.软件成为独立产品阶段
B.网络化阶段
C.软件作坊阶段
D.软硬件一体化阶段
正确答案:D
3、关于软件过程管理,以下哪一种说法是比较贴切的:
A.软件过程管理主要关注软件成本和质量目标的达成。
B.软件过程管理是软件企业发展到较高层次才需要关心的话题。
C.软件过程管理关注的是企业软件过程能力的稳定输出和提升。
D.进入互联网时代,软件过程管理是过于老套的话题。
正确答案:C
4、软件开发的本质难题中哪一个与软件发展阶段没有直接关系?
A.不可见性
B.可变性
C.复杂性
D.一致性
正确答案:A
5、“Code and Fix” 是软件发展哪个阶段的典型开发特征?
A.网络化和服务化
B.软硬件一体化
C.软件作为独立产品
D.互联网时代
正确答案:B
6、以下哪个因素促成了软件成为独立的产品?
A.互联网的出现
B.个人电脑的出现
C.操作系统的出现
D.高级程序设计语言的出现
正确答案:C
7、软件危机和软件工程这两个概念提出时间是?
A.上世纪八十年代
B.上世纪五十年代
C.上世纪六十年代
D.上世纪七十年代
正确答案:C
8、你是一家社交媒体公司的开发人员,正在开发一个项目,项目需要一个为企业客户创建私有网站的新功能。 您需要与公司的网络工程师一起确定部署策略,并提出一组工程师可以用于管理站点的服务和工具。 网络工程师希望在你的网络内部部署所有服务,但您和您的团队成员不同意,并且认为服务应该部署在客户的网络上。 为了达成一个协议,该项目的工作已经停止。 哪种敏捷价值最适合这种情况?
A.工作的软件 高于 详尽的文档
B.个体和互动 高于 流程和工具
C.客户合作 高于 合同谈判
D.响应变化 高于 遵循计划
正确答案:C
9、下列哪一个不是精益原则?
A.识别所有的步骤
B.尽可能晚的做决定
C.消除浪费
D.实施反馈循环
正确答案:D
10、下列哪一个更好地描述了如何使用看板?
A.帮助团队自我组织,并了解工作流程中的瓶颈所在
B.观察特征如何流经过程,以便团队可以确定如何限制WIP并通过工作流程中的步骤确定最均匀的工作流程
C.跟踪WIP限制和当前任务状态,以便团队知道他们还有多少工作要做
D.跟踪缺陷和问题,并创建解决产品问题的最快途径
正确答案:B
11、以下不是经常出现在Kanban上记事贴中的内容
A.团队名词
B.工作项描述
C.完成时间
D.谁在处理这个工作项
正确答案:A
12、下面关于软件架构的描述哪个是不正确的?
A.软件架构是一组特定的架构元素,包括处理元素、数据元素和上下文元素。
B.软件架构即一系列重要的设计决策。
C.软件架构包括系统组件、连接件和约束的集合。
D.软件架构包含一系列重要决策,包括软件组织、构成系统的结构要素等。
正确答案:A
13、在应用分层架构的软件系统中,最先处理外部请求的是:
A.应用层
B.数据层
C.表现层
D.业务层
正确答案:C
14、以下哪个关于面向服务架构的描述是错误的?
A.在SOA中,服务消费者消费其他组件提供的服务不需要知道其具体的实现细节
B.SOA依赖企业服务总线为服务间的相互调用提供支持环境
C.面向服务架构包含服务提供者组件和服务消费者组件
D.面向服务架构是一个集中式组件的集合
正确答案:D
15、在微服务架构中,ZooKeeper的主要作用是?
A.开发服务
B.注册服务
C.封装服务
D.调用服务
正确答案:B
16、下列哪项不是Docker的网络模式
A.Host模式
B.None模式
C.其他全是
D.Bridge 模式
正确答案:C
17、以下哪个命令可以查看当前运行容器:
A.docker logs
B.docker ps
C.docker run
D.docker top
正确答案:B
18、Kubernetes集群将元数据保存在以下哪个组件:
A.Kubelet
B.Etcd
C.Kube-apiserver
D.其他都不是
正确答案:B
19、以下哪些是Kubernetes的控制器:
A.Deployment
B.Both ReplicaSet and Deployment
C.ReplicaSet
D.Rolling Updates
正确答案:B
20、以下哪些是Kubernetes的核心概念
A.其他都是
B.Pods
C.Volumes
D.Services
正确答案:A
21、Kubernetes里面的Replication控制器的职责是:
A.其他都是
B.删除或者更新多个Pod
C.当已存在的Pod异常退出后,创建新的Pod
D.帮助达到预期的状态
正确答案:A
22、Dockerfile中的命令 RUN, CMD 和ENTRYPOINT几者有何区别?
A.CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换
B.RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
C.其他都是
D.ENTRYPOINT 配置容器启动时运行的命令
正确答案:C
23、使用Kubernetes带来的好处有哪些
A.横向扩展
B.自动调度
C.自动回滚
D.其他都是
正确答案:D
24、下列哪项不属于DevOps工具生态圈?
A.持续部署
B.监控
C.持续集成
D.编译
正确答案:A
25、下列哪项不属于协同开发工具?
A.Rally
B.JIRA
C.Kanban
D.Confluence
正确答案:D
26、以下哪项不是Git的文件目录?
A.工作目录
B…git目录
C.Documents
D.加载区
正确答案:C
27、下列哪种编译工具无法编译JAVA语言?
A.Maven
B.Gradle
C.Ant
D.MSBuild
正确答案:D
28、下列哪种工具无法实现对远程服务器的配置操作?
A.Chef
B.Puppt
C.JIRA
D.Ansible
正确答案:C
29、以下选项中,哪一项不属于API网关模式的优点?
A.确保客户端不受服务实例位置的影响。
B.将从客户端调用多项服务的逻辑转换为从API网关处调用,以简化整个客户端。
C.确保客户端不必关心应用程序的微服务拆分方式。
D.增加请求往返次数。
正确答案:D
30、以下选项中,哪一项不属于微服务架构的特点?
A.围绕业务能力组织
B.去中心化
C.基础设施自动化
D.低内聚和高耦合
正确答案:D
31、以下描述中,哪几种是网络化和服务化这个阶段的典型软件应用特征?
A.用户数量急剧增加
B.通过SaaS等方式来发布软件系统
C.通过CD和DVD等方式支持大容量和快速分发软件拷贝
D.快速演化、需求不确定
正确答案:A、B、D
32、关于形式化方法的描述当中,不正确的有哪些?
A.这种方法应用范围有限,例如:不适合跟客户讨论需求。
B.这种方法的主要目的是解决软件开发的效率问题
C.这种方法对开发人员技能有较高的要求
D.这种方法是网络化和服务化阶段用来应对软件开发本质四大难题而提出来的
正确答案:B、D
33、关于迭代式方法的说法哪些是比较恰当的?
A.迭代式方法是上世纪九十年代中后期才出现的一种方法
B.迭代式方法是指一类具有类似特征的方法
C.迭代式方法主要是为了解决软件开发的质量问题
D.迭代式方法主要特征在于将软件开发过程视作一个逐步学习和交流的过程
正确答案:B、D
34、DevOps方法的出现具有一定的必然性,与以下哪些软件应用特征相匹配?
得分/总分
A.软件系统部署环境越来越错综复杂
B.软件定义世界,软件随处可见
C.软件在社会生活当中扮演了越来越关键的角色
D.用户需求多变所带来了软件系统的快速演化的要求
正确答案:A、B、C、D
35多选(2分)
DevOps的哪些特点可以有效支撑当前社会对软件系统的期望?
A.微服务架构设计
B.虚拟机技术的大量应用
C.工具链支持高效率的自动化
D.敏捷开发、精益思想以及看板方法,支持快速开发、交付、迭代和演化
正确答案:A、B、C、D
36、关于面向用户的质量观,我们应该关注如下哪些问题:
A.真实用户是谁?
B.用户期望是否有优先级?
C.界面和可操作性是首要的,因为这是用户能直接感受到的。
D.用户期望的优先级对软件开发的影响?
正确答案:A、B、D
37、PSP当中为什么用缺陷管理替代质量管理?下述说法中正确的是:
A.因为单纯质量管理很难操作。
B.因为缺陷管理和质量管理其实是一回事。
C.因为缺陷往往对应了面向用户质量观中的首要用户期望。
D.因为缺陷管理相关的活动(例如,测试等)本来就是软件开发中必须要开展的活动。
正确答案:A、C
38、关于PROBE估算法,下述各种说法中,不正确的有哪些?
A.PROBE不能给出精确估算,因而适合用来跟用户讨论需求和规模。
B.PROBE估算结果带着小数,肯定不准确,因而, 不应该在项目估算的时候使用。
C.PROBE方法不能用来估算质量。
D.PROBE方法不需要历史数据。
正确答案:A、B、D
39、关于评审检查表,下述说法中不恰当的是:
A.评审检查表应该是个性化的
B.评审检查表应该保持稳定,确保缺陷不会被遗漏
C.评审检查表应该定期更新
D.项目团队所有人应该共用一份评审检查表,体现统一性
正确答案:B、D
40、关于PQI,下述说法中不恰当的是:
A.PQI可以为过程改进提供依据
B.PQI越高越好,最好达到1.0
C.PQI可以用来辅助判断模块开发的质量
D.PQI五个分指标都可以超过1.0,比如,设计时间多于编码时间的时候,该分指标就超过1.0了
正确答案:B、D
41、关于评审,下述说法中不恰当是:
A.代码的个人评审最好交叉进行,因为阅读自己代码容易产生思维定式,不利于缺陷发现。
B.代码的个人评审也应该通过评审检查表来进行。
C.代码的个人评审应该安排在单元测试之后,确保评审对象有着较高的质量,提升评审价值。
D.如果安排了代码的小组评审,那么代码个人评审就可以不用做。
正确答案:A、C
42、关于质量的各种定义当中,下述哪些质量属性属于内部属性?
A.安全性
B.可移植性
C.可靠性
D.可扩展性
正确答案:B、D
43、在组成派看来,软件架构是指?
A.软件架构将系统定义为计算组件及组件间的交互。
B.软件架构由软件元素、这些元素的外部可见属性,以及元素之间的关系组成。
C.软件架构是一系列重要决策的集合,包括构成系统的结构要素及其接口的选择。
D.软件架构包括系统组件、连接件和约束的集合。
正确答案:A、B、D
44、分层架构模式的缺点包括:
A.不易于持续发布和部署
B.额外的性能开销
C.由于层间依赖关系,软件系统的可扩展性差
D.代码调整通常比较麻烦
正确答案:A、B、C、D
45、以下哪几个不是面向服务架构强调的实现原则?
A.服务简单
B.服务去中心化
C.服务封装
D.服务解耦
正确答案:A、B
46、以下选项中,哪些属于微服务架构的特点?
A.中心化
B.基础设施自动化
C.通过服务组件化
D.内聚和解耦
正确答案:B、C、D
47、以下选项中,API网关模式的优点有哪些?
A.确保客户端不必关心应用程序的微服务拆分方式
B.增加请求往返次数
C.确保客户端不受服务实例位置的影响
D.为每套客户端提供最优API
正确答案:A、C、D
48、下列哪些工具不能模拟市场上主流浏览器的操作?
A.Jenkins
B.Selenium
C.FitNesse
D.JUnit
正确答案:A、C、D
49、下面关于软件架构的描述,哪几项是正确的?
A.软件架构即一系列重要的设计决策
B.软件架构包含一系列重要决策,包括软件组织、构成系统的结构要素等
C.软件架构是一组特定的架构元素,包括处理元素、数据元素和上下文元素
D.软件架构包括系统组件、连接件和约束的集合
正确答案:A、B、D
50、以下对于微服务优点的描述中,哪几项是正确的?
A.微服务系统测试变得非常简单
B.单个微服务很简单,只关注一个业务功能
C.不同的微服务可以使用不同的语言进行开发。
D.微服务可以使用RPC进行服务间通信
正确答案:B、C、D
51、DevOps中的XaaS特指 SaaS、PaaS以及IaaS这三种。
A.错
B.对
正确答案:A
52、在制品规模越小越好,因为这样可以优化前置时间,并且团队的效率会变高。
A.对
B.错
正确答案:B
53、单体应用的所有功能都被集成在一起作为一个单一的单元。
A.对
B.错
正确答案:A
54、单体架构更多地作为应用的部署架构,单体应用只运行在一个进程中。
A.对
B.错
正确答案:B
55、本质上,微服务架构是SOA的一种扩展。
A.错
B.对
正确答案:B
56、关于Kubernetes的namespace的论述是否正确:命名空间是在多个用户之间划分群集资源的方法
A.错
B.对
正确答案:B
57、JIRA Software不支持极限编程这种敏捷开发方法。
A.错
B.对
正确答案:B
58、Jenkins支持工作流即代码(pipeline-as-code)。
A.错
B.对
正确答案:B
59、Git使用副本方式存储文件版本。
A.对
B.错
正确答案:B
60、Selenium能实现自动化单元测试。
A.错
B.对
正确答案:A
主观题
请谈谈微服务架构与面向服务的架构存在哪些异同?
同:微服务架构可以看做面向服务架构的延伸,面向服务架构中使用的各种原则如服务重用、服务解耦、服务无状态等在微服务中也是需要遵守的。二者都是通过构建一个个组件,并通过通信协议来联系各组件,最终提供一个完整的系统功能。异:微服务的服务,相比面向服务架构中的服务更小,更细化,只关注一个业务功能;微服务系统发生变更时,只需要对单个或多个服务进行重新构建,而面向服务架构中则需要对整个系统重新构建;微服务使用的协议一般都是轻量级的协议,但是SOA则是使用更为复杂多样的多种消息协议;微服务的容错性能更好,即使一个微服务出现问题,其他的微服务也会正常工作;微服务架构实现了服务去中心化,免去了面向服务架构中的服务注册中心,使得整个系统相对更加稳定。
从你的理解出发,谈谈为什么微服务架构具有高可用性、灵活性等优点?
微服务架构中的服务是是围绕单个业务来进行组织的,实现了高内聚低耦合,服务可重用性高由于服务之间低耦合,所以当系统发生变更时,程序员只需添加新的服务来完成新的需求,或者只需要修改少量服务即可应对需求变更,使得系统灵活性增强由于任何服务调用都可能因为服务提供者不可用而失败,因此客户端必须尽可能有效地应对这种失效。因此,微服务架构对服务进行一定的设计,为每个单独的服务设置完善的监控和日志记录,有助于对于快速发现不良突发行为而尽早修复,提升系统的可用性
请描述一个简单的持续交付流水线所包含的基本步骤。
开发–>版本控制–>代码检查–>构建–>自动化测试–>打包–>远程仓库发布–>自动化部署
请列举出敏捷软件开发中常见的3中开发方法?
Scrum:Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。极限编程:ExtremeProgramming,简称XP,是一种软件工程方法学,更强调可适应性能性以及面临的困难。精益软件开发:以精益的原则为指导进行软件开发
请描述敏捷软件开发宣言内容?
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人,由此我们建立了如下价值观:个体和互动高于流程和工具工作的软件高于详尽的文档客户合作高于合作谈判响应变化高于遵循计划也就是说尽管右项有其价值,我们更重视左项的价值。
请解释一下什么是Kanban方法中的WIP?为什么要限制WIP?
WIP:work in progress,在制品,即同时进行中的工作数量。减少在制品使其快速流过整个工作流,可以使前置时间缩短,前置时间是指处理一个工作项从开始到结束所经过的时间。在制品规模高会有工作闲置,而在制品规模低会有人闲置。为了在个人效率和团队效率中,寻找一个平衡,保证一个较高的团队效率,同时不会有太多人处于闲置状态,所以需要限制WIP个数。
什么叫做面向用户的质量观?这种观点对软件开发有什么影响?
面向用户的质量观:定义质量为满足用户需求的程度基于这个定义,在软件开发中需要进一步明确:用户究竟是谁用户需求的优先级是什么这种用户的优先级对软件产品的开发过程产生什么样的影响怎样来度量这种质量观下的质量水平在实际开发中,选择如下的质量策略来实现这样的质量要求:用缺陷管理替代质量管理高质量产品也就意味着组成软件产品的各个组件基本无缺陷各个组件的高质量是通过高质量评审来实现的
DevOps有哪些常见的质量手段有助于确保最终软件服务的质量?
各种测试:如单元测试、白盒测试、黑盒测试等提升进入测试之前的产物质量提升评审过程度量和稳定质量意识和主人翁态度个体工程师review过程的度量和稳定化诉诸设计缺陷预防用户质量观——其他质量属性(可用性、可靠性等)