Karinoya 学习室

资格考试 · IT Passport 合格实验室

开发技术

可以用简体中文阅读题目和解说。讲义(解说文章)仅有日文版。

查看日文版(含讲义) →

第1题 | 需求定义

在系统开发的需求定义阶段进行的工作是哪一项?

  1. 决定程序内部的模块结构和处理流程
  2. 修复正式上线后发生的故障,并改进功能
  3. 调查用户的业务,明确系统所需的功能和性能
  4. 对编写好的程序逐个进行验证,确认其是否按设计书运行
正确答案C. 调查用户的业务,明确系统所需的功能和性能

需求定义是开发的最初阶段,整理用户的需求,明确系统应具备的功能和性能。选项2是内部设计,选项3是单元测试,选项4是维护阶段的工作,都位于需求定义之后的阶段。

第2题 | 外部设计

作为外部设计(基本设计)中要确定的内容,最恰当的是哪一项?

  1. 集成测试所用测试数据的编制步骤
  2. 按照编码规范统一变量名和函数名的命名方式
  3. 各模块内部的处理流程和算法
  4. 用户操作的界面和输出报表的版式
正确答案D. 用户操作的界面和输出报表的版式

外部设计是确定用户可见部分(界面、报表、数据交接)的阶段,因此选项4正确。选项1是内部设计,选项2是编程,选项3是测试阶段的工作,都不属于外部设计要确定的内容。

第3题 | 设计的关系

作为外部设计与内部设计关系的说明,恰当的是哪一项?

  1. 把外部设计确定的用户可见规格,在内部设计中落实为程序的结构
  2. 先完成内部设计,再根据其结果进行外部设计
  3. 外部设计和内部设计都是确定需要与用户达成一致的界面和报表版式规格的阶段
  4. 外部设计以程序员为中心进行,内部设计以用户为中心进行
正确答案A. 把外部设计确定的用户可见规格,在内部设计中落实为程序的结构

开发从外部设计推进到内部设计,把从外部可见的规格具体化为内部的模块构成和处理流程。选项1顺序颠倒;选项2错在内部设计并不是确定面向用户规格的阶段;选项4错在负责主体正好相反。

第4题 | 阶段的顺序

作为实施系统开发各阶段的顺序,恰当的是哪一项?

  1. 需求定义 → 测试 → 系统设计 → 编程
  2. 系统设计 → 需求定义 → 测试 → 编程
  3. 需求定义 → 编程 → 系统设计 → 测试
  4. 需求定义 → 系统设计 → 编程 → 测试
正确答案D. 需求定义 → 系统设计 → 编程 → 测试

开发按如下顺序推进:需求定义决定要做什么,系统设计决定实现方法,编程完成制作,测试进行验证。选项1、2、3都把设计或测试放在了本来位置之前,出现了做出来之前就检查等不能成立的顺序。

第5题 | 模块划分

把程序划分成多个模块来设计的主要目的是哪一项?

  1. 提高各部件的独立性,便于修改、测试和复用
  2. 减少正式环境所用服务器的台数以降低费用
  3. 减少用户需要输入的项目数,使操作更简单
  4. 确保程序整体的源代码行数一定能减少
正确答案A. 提高各部件的独立性,便于修改、测试和复用

模块划分的目的是按功能拆分成部件以提高独立性,缩小修改的影响范围,使测试和复用更容易。即使进行了划分,总行数也未必减少,故选项1错误;选项2是界面设计的话题,选项4是基础设施构成的话题,目的都不相同。

第6题 | 易用性

作为提高易用性(usability)的界面设计示例,最恰当的是哪一项?

  1. 当场提示输入错误,并具体显示错误内容和改正方法
  2. 大量使用专业术语,做成只有精通的用户才会用的界面
  3. 不在界面上展示操作方法,只通过单独的手册进行说明
  4. 把所有输入项塞进一个界面,完全不显示标题和补充说明
正确答案A. 当场提示输入错误,并具体显示错误内容和改正方法

易用性指用户能够不困惑、高效地达成目的的好用程度,当场清楚地提示错误的做法能提高易用性。选项1、3、4都会加重用户理解和操作的负担,反而降低了好用程度。

第7题 | 验收

作为软件验收的说明,恰当的是哪一项?

  1. 正式上线开始后,配合业务变化和用户的要求不断改进软件
  2. 开发者把自己编写的程序按模块或单个程序为单位分别进行测试
  3. 订购方通过运行测试等确认交付的软件,若满足要求则予以接收
  4. 开发者按照设计书搭建程序的内部结构和处理流程并加以实现
正确答案C. 订购方通过运行测试等确认交付的软件,若满足要求则予以接收

软件验收是订购方通过运行测试等确认软件满足要求后接收交付物的阶段,也称检收。选项1是单元测试,选项3是编程,选项4是维护,都是与验收不同的阶段。

第8题 | 单元测试

作为单元测试的说明,恰当的是哪一项?

  1. 用户按照实际业务流程使用,确认是否满足要求
  2. 以模块或单个程序为单位,确认内部处理是否正确运行
  3. 在接近正式运行的环境中,包括性能和抗负载能力在内确认整个系统
  4. 把多个模块组合起来,确认它们之间的数据交接是否正确
正确答案B. 以模块或单个程序为单位,确认内部处理是否正确运行

单元测试是以模块为单位进行的测试的最初阶段。选项2是集成测试、选项3是系统测试、选项4是运行测试(验收测试)的说明,都在单元测试之后的阶段实施。

第9题 | 集成测试

集成测试主要确认的内容是哪一项?

  1. 组合起来的模块之间的数据交接和联动是否正确
  2. 用户在实际业务流程中能否顺利使用
  3. 单个模块内部的指令和分支是否全部得到执行
  4. 开发费用是否控制在当初的预算之内
正确答案A. 组合起来的模块之间的数据交接和联动是否正确

集成测试是把完成单元测试的模块连接起来,确认接口(数据交接)是否正确的阶段。选项2是单元测试中进行的白盒测试,选项3是运行测试的目的,选项4不是测试,而是项目成本管理的话题。

第10题 | 系统测试

作为系统测试(综合测试)中进行的内容,最恰当的是哪一项?

  1. 在接近正式运行的环境中以整个系统为对象,除功能外还确认性能和抗负载能力
  2. 用自动格式化工具整理源代码的缩进和格式混乱
  3. 交付后把用户提出的要求作为新功能不断追加
  4. 负责人之间对编写中的模块逐个进行桌面审读,确认描述错误
正确答案A. 在接近正式运行的环境中以整个系统为对象,除功能外还确认性能和抗负载能力

系统测试是开发方进行的最终阶段测试,从功能、性能、负载等方面确认整个系统是否按要求运行。选项1是评审或单元测试的工作,选项2是编码工作,选项4是维护中的功能追加,都不符合。

第11题 | 运行测试

作为运行测试(验收测试)的说明,恰当的是哪一项?

  1. 开发者对程序进行桌面审读并指出错误
  2. 开发者着眼于程序的内部结构,覆盖指令和分支进行确认
  3. 开发者确认集成后的模块之间的联动
  4. 用户按照实际业务流程使用,确认是否满足要求
正确答案D. 用户按照实际业务流程使用,确认是否满足要求

运行测试以用户(订购方)为主体,确认能否按实际业务步骤使用,是最终测试。选项1是白盒测试,选项2是集成测试,选项3是代码评审,都是开发方进行的工作,主体和目的都不相同。

第12题 | V模型

在V模型中,与外部设计(基本设计)相对应的测试阶段是哪一项?

  1. 单元测试
  2. 集成测试
  3. 系统测试
  4. 运行测试
正确答案C. 系统测试

在V模型中,需求定义与运行测试、外部设计与系统测试、内部设计与集成测试、编程与单元测试两两相对。因此与外部设计对应的是系统测试;单元测试对应编程,集成测试对应内部设计,运行测试对应需求定义。

第13题 | 白盒测试

作为白盒测试的说明,恰当的是哪一项?

  1. 输入与正式运行相同规模的数据,测量处理时间是否在标准以内
  2. 不考虑程序的内部结构,只着眼于规格书所示输入与输出的关系进行测试
  3. 着眼于程序的内部结构,覆盖各条路径使指令和分支都得到执行来进行测试
  4. 让用户操作原型,听取要求并反映到需求中
正确答案C. 着眼于程序的内部结构,覆盖各条路径使指令和分支都得到执行来进行测试

白盒测试着眼于程序内部(控制结构),编写测试用例以覆盖指令和分支,主要用于单元测试。选项1是黑盒测试,选项3是原型法,选项4是性能测试的说明。

第14题 | 黑盒测试

作为黑盒测试中测试用例的编写方法,恰当的是哪一项?

  1. 按与源代码行数成比例的数量,机械地分配并准备测试用例
  2. 选择路径,使所有分支至少被执行一次
  3. 逐行确认开发者所写注释的描述是否正确
  4. 把规格书的输入条件按含义划分成组,选取其代表值和边界值
正确答案D. 把规格书的输入条件按含义划分成组,选取其代表值和边界值

黑盒测试不看内部结构,基于规格进行,用等价类划分和边界值分析选取输入的代表值和边界值。选项1是着眼于内部结构的白盒测试;选项2的行数不能作为测试用例的依据;选项4是代码评审的工作。

第15题 | 回归测试

进行回归测试(regression test)的目的是哪一项?

  1. 确认修改程序后,修改前正常运行的部分没有产生缺陷
  2. 确认接受过培训的用户已正确掌握变更后的新操作方法
  3. 确认具有足以承受正式使用的处理性能
  4. 只以新增功能是否按规格书运行为对象,仅确认新增的部分
正确答案A. 确认修改程序后,修改前正常运行的部分没有产生缺陷

回归测试是确认由于修改或功能追加的影响,原本正常的既有功能有没有被破坏的测试。选项1是针对新增功能本身的测试,选项2是性能测试,选项3是教育培训方面的确认,都不是回归测试的目的。

第16题 | 评审技法

在软件的评审技法中,作为审查(inspection)的说明,恰当的是哪一项?

  1. 由主持人(moderator)主持,事先确定参加者的角色和步骤,正式地检测交付物的缺陷
  2. 实际运行程序,确认输入对应的输出是否符合规格
  3. 两人一组使用一台终端,轮流编写程序
  4. 以作者为中心向相关人员依次说明交付物的内容,当场非正式地相互指出错误和疑问
正确答案A. 由主持人(moderator)主持,事先确定参加者的角色和步骤,正式地检测交付物的缺陷

审查(inspection)由主持人主导,确定角色和步骤并留下记录,是正式的评审。选项2是非正式进行的走查(walkthrough),选项3是实际运行的测试,选项4是XP的结对编程,都与审查不同。

第17题 | 瀑布模型

作为瀑布模型的特征,恰当的是哪一项?

  1. 制作原型并接受用户评价,逐步确定需求
  2. 按顺序推进各阶段,原则上不返回前一阶段地进行开发
  3. 反复进行短周期的迭代,每次迭代都交付可运行的软件
  4. 开发与运维人员一体协作,通过自动化频繁发布
正确答案B. 按顺序推进各阶段,原则上不返回前一阶段地进行开发

瀑布模型从上游到下游按顺序推进各阶段,以不返回前一阶段为前提,边审批成果物边开发。选项1是敏捷开发,选项3是原型模型,选项4是DevOps的说明,都是不同的思路。

第18题 | 原型法

采用原型模型的主要优点是哪一项?

  1. 原型可以代替设计书,因此完全不需要文档化的工作
  2. 在早期阶段让用户确认原型,减少因需求偏差或理解分歧造成的返工
  3. 由于用户已确认过原型,可以保证上线之后不会发生规格变更
  4. 通过制作原型,开发的总工作量必定减少,费用降为一半
正确答案B. 在早期阶段让用户确认原型,减少因需求偏差或理解分歧造成的返工

原型法通过让用户尽早评价原型,防止因需求理解错误造成的大规模返工。即使制作了原型仍然需要设计书,故选项1错误;既不能保证工作量必定减半,也不能保证不发生变更,故选项2、4也错误。

第19题 | 螺旋模型

作为螺旋模型的说明,恰当的是哪一项?

  1. 以一次从上游到下游的阶段流程完成全部功能,完全不返回前一阶段,也不在中途重新审视
  2. 省略需求定义阶段,先做出能运行的东西,之后再把规格文档化
  3. 把开发的全部阶段委托给外部,仅通过每月的报告管理进度
  4. 把系统划分为若干部分,重复设计、开发、评价这一连串工作,呈螺旋状提高完成度
正确答案D. 把系统划分为若干部分,重复设计、开发、评价这一连串工作,呈螺旋状提高完成度

螺旋模型把系统分成若干部分,重复从设计到评价的循环,在降低风险的同时提高完成度。选项1是瀑布模型的思路,选项2、3与螺旋模型的定义无关。

第20题 | 敏捷开发

作为敏捷开发的理念,最恰当的是哪一项?

  1. 用户只在需求定义和验收时参与,开发期间不介入
  2. 一开始就确定全部规格,之后原则上不允许变更
  3. 以短周期迭代制作可运行的软件,吸收用户意见并应对变化
  4. 把完善详细的设计文档置于尽早展示可运行软件之上
正确答案C. 以短周期迭代制作可运行的软件,吸收用户意见并应对变化

敏捷开发重复短周期迭代,重视可运行的软件和对变化的应对,与用户协作推进。选项2、3、4都是瀑布式做法的特征,与敏捷的理念正好相反。

第21题 | 模型选择

对于需求尚未固定、希望边观察用户反应边以短周期追加功能的系统,最恰当的开发方针是哪一项?

  1. 测试留到最后集中实施,在此之前不进行运行确认
  2. 需求定义书获批之前不着手开发,获批之后不接受任何变更
  3. 每个短迭代都发布可运行的功能,把用户的评价反映到下一次迭代
  4. 确定全部功能的规格后一次性开发,完成时才第一次给用户看
正确答案C. 每个短迭代都发布可运行的功能,把用户的评价反映到下一次迭代

对需求容易变化的项目,适合采用每次迭代交付可运行成果并反映评价的敏捷式做法。选项1、3是瀑布式做法,不善于应对变更;选项4会延误缺陷的发现、造成大量返工,都不适合这种情况。

第22题 | RAD

作为RAD(Rapid Application Development)的说明,恰当的是哪一项?

  1. 开发与运维人员密切协作,通过自动化实现持续改进的理念
  2. 利用少人数团队和开发支持工具,在短期内开发系统的手法
  3. 组合多个公开的服务来创造新服务的手法
  4. 分析既有程序,从中推导出其规格和设计信息的手法
正确答案B. 利用少人数团队和开发支持工具,在短期内开发系统的手法

RAD是利用少人数团队和开发支持工具缩短开发周期的手法。选项1是逆向工程,选项2是DevOps,选项4是混搭(mashup)的说明,都是与RAD不同的术语。

第23题 | 结对编程

作为结对编程的说明,恰当的是哪一项?

  1. 两个团队分别独立开发同一功能,完成后采用质量更好的一方
  2. 两人一组使用一台终端,一人编写代码,另一人边确认、提出建议边推进开发
  3. 让两名用户操作同一界面,比较易用性
  4. 同时实施两种测试以尽早发现缺陷
正确答案B. 两人一组使用一台终端,一人编写代码,另一人边确认、提出建议边推进开发

结对编程是XP的代表性实践,两人共同编写同一份代码,当场评审以提高质量。选项1是竞争式的开发方式,选项2是测试的实施方法,选项3是易用性评价,都不符合。

第24题 | TDD

作为测试驱动开发(TDD)的推进方式,恰当的是哪一项?

  1. 先编写测试代码,再实现程序使其通过
  2. 全部实现完成后,才第一次制定测试计划
  3. 测试只交给外部的专业公司,开发者自己不做测试
  4. 正式上线后接到用户的故障报告,才第一次编写测试
正确答案A. 先编写测试代码,再实现程序使其通过

测试驱动开发先编写测试,再进行能使其通过的最小限度实现,并反复改进。选项2、3、4都是把测试放在实现或上线之后的做法,违背了由测试引导开发的TDD理念。

第25题 | 重构

作为重构(refactoring)的说明,恰当的是哪一项?

  1. 在不改变外部可见行为的前提下,把程序的内部结构整理得更清晰易懂
  2. 把运行中的系统迁移到别的数据中心
  3. 根据用户提出的要求,为既有程序不断追加新功能
  4. 为提高处理速度而增加服务器的台数和内存
正确答案A. 在不改变外部可见行为的前提下,把程序的内部结构整理得更清晰易懂

重构是在保持外部可见行为不变的情况下整理代码的内部结构,使日后的修改更容易的工作。选项1是功能追加,选项3是硬件扩容,选项4是设施迁移,都不是内部结构的改善。

第26题 | 产品负责人

Scrum中产品负责人(Product Owner)的职责是哪一项?

  1. 对产品待办列表的内容和优先级负责,使成果的价值最大化
  2. 对团队成员进行人事考核,并逐一分配负责的工作
  3. 记录每天的进度,向经营层报告预算超支
  4. 支持Scrum的规则得到正确遵守,排除妨碍开发的问题
正确答案A. 对产品待办列表的内容和优先级负责,使成果的价值最大化

产品负责人是对"做什么"的优先级负责的角色。选项2是Scrum Master的职责;选项1在Scrum中没有定义,工作分担由开发团队自行决定;选项4也不是被定义的职责。

第27题 | Scrum Master

作为Scrum中Scrum Master的职责,恰当的是哪一项?

  1. 支持Scrum得到正确实践,排除妨碍团队的问题
  2. 与客户进行价格谈判,决定合同条件
  3. 对开发团队的每个人下达工作指示,训斥并管理进度落后的成员
  4. 决定需求的优先级,确定要发布的功能
正确答案A. 支持Scrum得到正确实践,排除妨碍团队的问题

Scrum Master的职责是支持团队实践Scrum并排除障碍。他不进行选项1那样的指挥命令;选项2是销售或管理部门的工作;选项3是产品负责人的职责,都不属于Scrum Master的职务。

第28题 | Scrum术语

作为Scrum中每日站会(Daily Scrum)的说明,恰当的是哪一项?

  1. 开发团队每天短时间地聚在一起,共享进度和问题,确认当天的工作
  2. 在冲刺结束时,把该轮完成的成果展示给相关人员,听取评价和意见
  3. 把想要实现的需求按优先级整理成一览表
  4. 回顾团队的工作方式,决定面向下一步的改进措施
正确答案A. 开发团队每天短时间地聚在一起,共享进度和问题,确认当天的工作

每日站会是每天约15分钟的短会,目的是共享进度和尽早发现障碍。选项2是冲刺评审,选项3是产品待办列表,选项4是冲刺回顾的说明,实施的时期和目的都不同。

第29题 | CI/CD

作为CI/CD(持续集成/持续交付)的说明,恰当的是哪一项?

  1. 运维人员手工把文件复制到正式环境,逐个反映变更
  2. 在发布前夕把所有变更一次性集中合并,到那时才第一次集中进行仅有的一次测试
  3. 中断新的开发,只推进既有系统规格书的整备
  4. 频繁合并修改后的源代码,自动执行构建和测试,并把直到发布的流程也自动化
正确答案D. 频繁合并修改后的源代码,自动执行构建和测试,并把直到发布的流程也自动化

CI/CD是频繁合并小的变更,把构建、测试、发布自动化,以提高质量和交付速度的机制。选项1是传统的一次性合并,问题发现得晚;选项3没有实现自动化;选项4开发活动本身停滞不前,故都错误。

第30题 | 逆向工程

属于逆向工程的是哪一项?

  1. 利用只需在画面上摆放部件即可制作应用程序的开发环境
  2. 根据设计书编写程序
  3. 组合多个公开的服务来创造新服务
  4. 分析既有程序,从中推导出其规格和设计信息
正确答案D. 分析既有程序,从中推导出其规格和设计信息

逆向工程指分析既有软件,提取其规格和设计信息。选项1是从设计走向实现的通常(正向)开发,选项2是混搭(mashup),选项4是无代码/低代码开发的说明。

练习:做本页的题目

这是随机出题的练习工具(在启用 JavaScript 时运行)。即使不使用此工具,也可以阅读上方的全部题目和解说。

※ 解说是供学习用的信息。考试的出题范围和制度每年可能变化,请务必确认主办机构的官方公告。

本页面译自日文原文。如译文与原文内容不一致,以日文版为准。 查看日文原文