證照 · IT Passport 合格實驗室
開發技術
可以用繁體中文閱讀題目與解說。講義(解說文章)僅有日文版。
查看日文版(含講義) →
第1題 | 需求定義
在系統開發中,需求定義階段所進行的工作是下列何者?
- 決定程式內部的模組結構與處理程序
- 修正正式上線後發生的故障,並改善功能
- 調查使用者的業務,明確系統所需的功能與效能
- 1支1支地確認撰寫完成的程式是否照設計書運作
正確答案
C. 調查使用者的業務,明確系統所需的功能與效能需求定義是開發最初的階段,整理使用者的要求,明確系統應具備的功能與效能。決定模組結構與處理程序屬於內部設計,逐支確認程式屬於單元測試,修正上線後的故障屬於維護,皆位於需求定義之後的階段。
第2題 | 外部設計
外部設計(基本設計)所決定的內容,下列何者最適當?
- 整合測試所使用測試資料的製作程序
- 依照程式碼撰寫規範統一變數與函式的命名方式
- 各模組內部的處理程序與演算法
- 使用者操作的畫面與輸出報表的版面配置
正確答案
D. 使用者操作的畫面與輸出報表的版面配置外部設計是決定使用者看得見的部分(畫面、報表、資料交換)的階段,因此「畫面與報表的版面配置」正確。內部的處理程序與演算法屬於內部設計,命名規範屬於程式撰寫,測試資料屬於測試階段的工作,皆非外部設計所決定的內容。
第3題 | 設計的關係
說明外部設計與內部設計關係的敘述,下列何者適當?
- 把外部設計所決定的使用者可見規格,在內部設計中落實為程式的結構
- 先完成內部設計,再根據其結果進行外部設計
- 外部設計與內部設計都是決定應與使用者取得共識的畫面、報表版面規格的階段
- 外部設計以程式設計師為中心、內部設計以使用者為中心進行
正確答案
A. 把外部設計所決定的使用者可見規格,在內部設計中落實為程式的結構開發是由外部設計進到內部設計,把外部可見的規格具體化為內部的模組結構與處理程序。「先內部再外部」順序顛倒;內部設計並非決定給使用者確認的規格的階段;「程式設計師與使用者」的分工也正好相反,因此其餘皆誤。
第4題 | 階段的順序
實施系統開發各階段的順序,下列何者適當?
- 需求定義 → 測試 → 系統設計 → 程式撰寫
- 系統設計 → 需求定義 → 測試 → 程式撰寫
- 需求定義 → 程式撰寫 → 系統設計 → 測試
- 需求定義 → 系統設計 → 程式撰寫 → 測試
正確答案
D. 需求定義 → 系統設計 → 程式撰寫 → 測試開發的順序是:在需求定義決定要做什麼,在系統設計決定實現方法,在程式撰寫階段實際製作,最後以測試確認。其餘三個選項都把設計或測試放在比原本更前面的位置,例如還沒做出來就先檢查,是無法成立的順序。
第5題 | 模組分割
把程式分割成多個模組來設計,其主要目的為何?
- 提高各元件的獨立性,使修改、測試與再利用更容易
- 減少正式環境所用伺服器的臺數以降低費用
- 減少使用者輸入的項目數,讓操作更簡單
- 使程式整體的原始碼行數必定能減少
正確答案
A. 提高各元件的獨立性,使修改、測試與再利用更容易模組分割的目的是依功能元件化以提高獨立性,縮小修改的影響範圍,使測試與再利用更容易。即使分割,總行數也不一定會減少,因此第一個選項錯誤;減少輸入項目是畫面設計的話題,減少伺服器臺數是基礎架構的話題,目的都不同。
第6題 | 易用性
提高易用性(usability)的畫面設計例子,下列何者最適當?
- 當場提示輸入錯誤,並具體顯示錯誤內容與修正方法
- 大量使用專業術語,做成只有熟悉的使用者才會用的畫面
- 操作方法不顯示在畫面上,只用另一本手冊說明
- 把所有輸入欄位塞進1個畫面,完全不顯示標題與補充說明
正確答案
A. 當場提示輸入錯誤,並具體顯示錯誤內容與修正方法易用性是指使用者能不迷惑、有效率地達成目的的好用程度,當場清楚提示錯誤的做法能提高易用性。其餘三個做法都會增加使用者理解與操作上的負擔,反而降低好用程度。
第7題 | 驗收
關於軟體驗收的說明,下列何者適當?
- 正式上線開始後,配合業務變化與使用者的要求改良軟體
- 開發者把自己撰寫的程式,以模組或1支程式為單位分別進行測試
- 訂購方以營運測試等方式確認交付的軟體,若滿足要求即予以接收
- 開發者依照設計書,組建程式的內部結構與處理程序
正確答案
C. 訂購方以營運測試等方式確認交付的軟體,若滿足要求即予以接收軟體驗收是由訂購方以營運測試等確認是否滿足要求後,接收交付物的階段,日文也稱「検収」。第一個選項是單元測試,第三個是程式撰寫,第四個是維護,皆是與驗收不同的階段。
第8題 | 單元測試
關於單元測試的說明,下列何者適當?
- 由使用者依實際業務程序使用,確認是否滿足要求
- 以模組或1支程式為單位,確認內部處理是否正確運作
- 在接近正式的環境中,含效能與負載承受度在內確認整個系統
- 組合多個模組,確認彼此之間的資料交換是否正確
正確答案
B. 以模組或1支程式為單位,確認內部處理是否正確運作單元測試是以模組為單位進行的測試,是測試的最初階段。其餘依序是整合測試、系統測試、營運測試(驗收測試)的說明,都在單元測試之後的階段實施。
第9題 | 整合測試
整合測試主要確認的內容是下列何者?
- 組合後的模組之間,資料的交換與銜接是否正確
- 使用者在實際業務流程中能否順利使用
- 1個模組之中的指令與分支是否全部被執行
- 開發費用是否控制在當初的預算內
正確答案
A. 組合後的模組之間,資料的交換與銜接是否正確整合測試是把完成單元測試的模組連接起來,確認介面(資料交換)是否正確的階段。「指令與分支全部執行」是單元測試中進行的白箱測試,「實際業務流程」是營運測試的目的,「預算」則是專案成本管理的話題而非測試。
第10題 | 系統測試
系統測試(總合測試)所進行的內容,下列何者最適當?
- 在接近正式的環境中以整個系統為對象,除功能外也確認效能與負載承受度
- 用自動排版工具整理原始碼的縮排與格式的紊亂
- 交付後把使用者提出的要求作為新功能陸續追加
- 由負責人彼此把製作中的模組1支1支在桌面上對讀,確認敘述的錯誤
正確答案
A. 在接近正式的環境中以整個系統為對象,除功能外也確認效能與負載承受度系統測試是開發方進行的最後階段測試,從功能、效能、負載等面向確認整個系統是否照要求運作。逐支對讀是審查或單元測試的作業,整理格式是程式撰寫的作業,追加功能是維護中的作業,皆不符合。
第11題 | 營運測試
關於營運測試(驗收測試)的說明,下列何者適當?
- 開發者在桌面上對讀程式,互相指出錯誤
- 開發者著眼於程式的內部結構,涵蓋指令與分支進行確認
- 開發者確認整合後模組之間的銜接
- 使用者依照實際業務流程使用,確認是否滿足要求
正確答案
D. 使用者依照實際業務流程使用,確認是否滿足要求營運測試由使用者(訂購方)主導,是確認能否照實際業務程序使用的最終測試。前三個依序是白箱測試、整合測試、程式碼審查,都是開發方進行的作業,主體與目的皆不同。
第12題 | V字模型
在V字模型中,與外部設計(基本設計)相對應的測試階段是下列何者?
- 單元測試
- 整合測試
- 系統測試
- 營運測試
正確答案
C. 系統測試V字模型中,需求定義對應營運測試、外部設計對應系統測試、內部設計對應整合測試、程式撰寫對應單元測試。因此與外部設計對應的是系統測試;單元測試對應的是程式撰寫,整合測試對應內部設計,營運測試對應需求定義。
第13題 | 白箱測試
關於白箱測試的說明,下列何者適當?
- 灌入與正式相同數量的資料,量測處理時間是否在基準之內
- 不考慮程式的內部結構,只著眼於規格書所示輸入與輸出的關係進行測試
- 著眼於程式的內部結構,涵蓋指令與分支被執行的路徑進行測試
- 請使用者操作試作品,聽取要求並反映到需求中
正確答案
C. 著眼於程式的內部結構,涵蓋指令與分支被執行的路徑進行測試白箱測試是檢視程式的內部(控制結構),設計出涵蓋指令與分支的測試案例的方法,主要用於單元測試。其餘依序是黑箱測試、雛型法(prototyping)、效能測試的說明。
第14題 | 黑箱測試
黑箱測試中測試案例的設計方式,下列何者適當?
- 機械式地按原始碼行數的比例分配並準備測試案例
- 選擇路徑,使所有分支至少被執行1次
- 逐行確認開發者所寫註解的敘述是否正確
- 把規格書的輸入條件依意義的群組劃分,選取其代表值與交界的值
正確答案
D. 把規格書的輸入條件依意義的群組劃分,選取其代表值與交界的值黑箱測試不看內部結構、依規格進行,以等價分割與邊界值分析選出輸入的代表值與邊界值。涵蓋分支是著眼於內部結構的白箱測試;行數不能作為測試案例數量的依據;確認註解是程式碼審查的作業。
第15題 | 回歸測試
進行回歸測試(regression test)的目的是下列何者?
- 確認因修改程式,修改前原本正常運作的地方是否產生了缺陷
- 確認受過研習的使用者已正確學會變更後的新操作方式
- 確認具有足以承受正式使用的處理效能
- 只以新增功能是否照規格書運作為對象,僅就追加的部分進行確認
正確答案
A. 確認因修改程式,修改前原本正常運作的地方是否產生了缺陷回歸測試是確認修改或功能追加的影響,是否使既有原本正常的功能損壞的測試。只測追加部分是針對新增功能本身的測試,效能的確認是效能測試,操作的學習屬於教育訓練的確認,皆非回歸測試的目的。
第16題 | 審查技法
軟體的審查技法中,關於檢視(inspection)的說明,下列何者適當?
- 由主持人(moderator)主辦,事先訂定參加者的角色與程序,正式地檢出成果物的缺陷
- 實際執行程式,確認輸入所對應的輸出是否符合規格
- 2人1組使用1台終端機,輪流交替撰寫程式
- 以作成者為中心向相關人員依序說明成果物的內容,當場非正式地互相指出錯誤與疑點
正確答案
A. 由主持人(moderator)主辦,事先訂定參加者的角色與程序,正式地檢出成果物的缺陷檢視(inspection)由主持人主導進行,訂定角色與程序並留下紀錄,是正式的審查。第二個選項是非正式進行的走查(walkthrough),第三個是實際執行的測試,第四個是XP的結對程式設計,皆與檢視不同。
第17題 | 瀑布模型
瀑布模型的特徵,下列何者適當?
- 製作試作品並取得使用者的評價,逐步確定需求
- 依序推進各階段,原則上不返回前一階段地進行開發
- 反覆進行短週期的迭代,每次迭代都提供可運作的軟體
- 開發人員與營運人員一體協作,藉自動化頻繁地發布
正確答案
B. 依序推進各階段,原則上不返回前一階段地進行開發瀑布模型由上游往下游依序推進各階段,以不返回前一階段為前提,一邊核可成果物一邊開發。其餘依序是敏捷開發、雛型法模型、DevOps的說明,都是不同的思維。
第18題 | 雛型法
採用雛型法(prototyping)模型的主要優點是下列何者?
- 試作品可以代替設計書,因此完全不需要文件化的作業
- 在早期階段就請使用者確認試作品,可減少因需求偏差或認知不一致造成的返工
- 因為使用者已確認過試作品,可保證上線開始後不會發生規格變更
- 藉由製作試作品,開發的總工時必定減少,費用變成一半
正確答案
B. 在早期階段就請使用者確認試作品,可減少因需求偏差或認知不一致造成的返工雛型法是讓使用者及早評估試作品,防止因需求誤解造成大幅返工的手法。即使製作試作品,設計書仍然必要;也沒有工時必定減半的保證,更不能保證不發生變更,因此其餘選項皆誤。
第19題 | 螺旋模型
關於螺旋模型的說明,下列何者適當?
- 以由上游到下游的1次流程完成全部功能,完全不返回前一階段、也不中途重新檢視
- 省略需求定義階段,先做出可動的東西之後再把規格文件化
- 把開發的全部階段委託給外部,進度只以每月的報告管理
- 把系統分成數個部分,反覆進行設計、開發、評估這一連串作業,螺旋式地提高完成度
正確答案
D. 把系統分成數個部分,反覆進行設計、開發、評估這一連串作業,螺旋式地提高完成度螺旋模型是把系統分成部分,反覆進行從設計到評估的循環,一邊降低風險一邊提高完成度的開發模型。第一個選項是瀑布模型的思維,其餘兩個與螺旋模型的定義無關。
第20題 | 敏捷開發
敏捷開發的思維,下列何者最適當?
- 使用者只在需求定義與驗收時參與,開發期間不介入
- 一開始就確定所有規格,之後的變更原則上不予承認
- 以短的迭代做出可運作的軟體,一邊採納使用者的意見一邊因應變化
- 把完美整備詳細的設計文件,看得比儘早展示可運作的軟體更優先
正確答案
C. 以短的迭代做出可運作的軟體,一邊採納使用者的意見一邊因應變化敏捷開發反覆進行短的迭代,重視可運作的軟體與對變化的因應,與使用者協調合作地推進。其餘三者都是瀑布式作法的特徵,與敏捷的思維正好相反。
第21題 | 模型的選擇
需求尚未確定、想一邊觀察使用者的反應一邊以短週期追加功能的系統,其開發方針以下列何者最適當?
- 測試留到最後一次實施,在那之前不做動作確認
- 需求定義書核可之前不著手開發,核可之後一概不接受變更
- 每個短迭代發布可運作的功能,把使用者的評價反映到下一個迭代
- 確定全部功能的規格後一次開發,完成時才第一次給使用者看
正確答案
C. 每個短迭代發布可運作的功能,把使用者的評價反映到下一個迭代需求容易改變的案件,適合每次迭代交出可動的成果並反映評價的敏捷式作法。「一次開發」與「核可後不接受變更」是瀑布式,不耐變更;把測試全部留到最後則缺陷發現得晚、返工變大,都不適合這種情況。
第22題 | RAD
關於RAD(Rapid Application Development)的說明,下列何者適當?
- 開發人員與營運人員密切合作,藉由自動化謀求持續改善的思維
- 活用少人數的團隊與開發支援工具,在短期間內開發系統的手法
- 組合多個公開的服務來做出新服務的手法
- 解析既有的程式,導出其規格與設計資訊的手法
正確答案
B. 活用少人數的團隊與開發支援工具,在短期間內開發系統的手法RAD是活用少人數的團隊與開發支援工具來縮短開發期間的手法。其餘依序是逆向工程、DevOps、混搭(mashup)的說明,皆是不同的用語。
第23題 | 結對程式設計
關於結對程式設計(pair programming)的說明,下列何者適當?
- 2個團隊各自分別開發相同的功能,完成後採用做得較好的一方
- 2人1組使用1台終端機,一人撰寫程式碼,另一人邊確認、建議邊開發
- 請2位使用者操作相同的畫面,比較好用的程度
- 同時實施2種測試以更早發現缺陷
正確答案
B. 2人1組使用1台終端機,一人撰寫程式碼,另一人邊確認、建議邊開發結對程式設計是XP的代表性實踐,2人共同撰寫1份程式碼,當場審查以提高品質。其餘依序是競爭式的開發方式、測試的實施方式、易用性的評估,皆不符合。
第24題 | TDD
測試驅動開發(TDD)的進行方式,下列何者適當?
- 先撰寫測試碼,再實作程式使其能夠通過
- 所有實作完成之後,才第一次擬定測試的計畫
- 測試只交給外部的專門業者,開發者不進行測試
- 正式上線之後接到使用者的故障報告,才第一次撰寫測試
正確答案
A. 先撰寫測試碼,再實作程式使其能夠通過測試驅動開發是先撰寫測試,進行能通過測試的最小限度實作,並反覆改善的手法。其餘三者的測試都落在實作或上線之後,違反「由測試引導開發」這一TDD的思維。
第25題 | 重構
關於重構(refactoring)的說明,下列何者適當?
- 不改變由外部所見的動作,把程式的內部結構整理得更容易理解
- 把營運中的系統遷移到別的資料中心
- 因應使用者提出的要求,為既有的程式追加新功能
- 為了提升處理速度而增加伺服器的臺數或記憶體
正確答案
A. 不改變由外部所見的動作,把程式的內部結構整理得更容易理解重構是在保持外部可見行為不變的情況下整理程式碼的內部結構,使日後的修改更容易的作業。其餘依序是功能追加、硬體的擴充、設施的遷移,皆非內部結構的改善。
第26題 | 產品負責人
Scrum中產品負責人(Product Owner)的職責是下列何者?
- 對產品待辦清單的內容與優先順序負責,使成果物的價值最大化
- 對團隊成員進行人事考核,並逐一分派各人負責的作業
- 記錄每日的進度,向經營層報告預算的超支
- 支援Scrum的規則被正確遵守,排除妨礙開發的問題
正確答案
A. 對產品待辦清單的內容與優先順序負責,使成果物的價值最大化產品負責人是對「要做什麼」的優先順序負責的角色。支援規則遵守與排除障礙是Scrum Master的職責;人事考核在Scrum中沒有定義,作業分擔由開發團隊自行決定;每日記錄與預算報告也不是被定義的職責。
第27題 | Scrum Master
Scrum中Scrum Master的職責,下列何者適當?
- 支援Scrum被正確地實踐,排除妨礙團隊的問題
- 與顧客進行價格交涉,決定合約條件
- 對開發團隊的每一個人下達作業指示,斥責並管理進度落後的成員
- 決定需求的優先順序,確定要發布的功能
正確答案
A. 支援Scrum被正確地實踐,排除妨礙團隊的問題Scrum Master是支援團隊實踐Scrum、排除障礙的角色。不進行第一個選項那樣的指揮命令;價格交涉是業務或管理部門的工作;決定優先順序是產品負責人的職責,皆非Scrum Master的職務。
第28題 | Scrum用語
Scrum中關於每日站會(Daily Scrum)的說明,下列何者適當?
- 開發團隊每天短時間集合,共享進度與問題點,確認當天的作業
- 在衝刺(Sprint)結束時,把該次完成的成果展示給相關人員,取得評價與意見
- 把想實現的需求排出優先順序,整理成一覽清單
- 回顧團隊的工作方式,決定接下來的改善方案
正確答案
A. 開發團隊每天短時間集合,共享進度與問題點,確認當天的作業每日站會是每天約15分鐘進行的短會議,目的是共享進度與及早發現障礙。其餘依序是衝刺檢視會議(Sprint Review)、產品待辦清單(Product Backlog)、衝刺回顧會議(Sprint Retrospective)的說明,實施的時期與目的都不同。
第29題 | CI/CD
關於CI/CD(持續整合/持續交付)的說明,下列何者適當?
- 營運人員以手工把檔案複製到正式環境,逐一反映變更
- 在發布前夕把所有變更一次整批整合,到那時才第一次整批只實施1次測試
- 中斷新的開發,只推進既有系統規格書的整備
- 頻繁整合變更後的原始碼並自動執行建置與測試,到發布為止的流程也自動化
正確答案
D. 頻繁整合變更後的原始碼並自動執行建置與測試,到發布為止的流程也自動化CI/CD是頻繁整合小的變更,把建置、測試、發布自動化,以提高品質與交付速度的機制。整批一次整合是傳統作法,問題發現得晚;手工複製沒有自動化;停止開發則開發活動本身無法推進,皆為錯誤。
第30題 | 逆向工程
屬於逆向工程(reverse engineering)的是下列何者?
- 利用只需在畫面上配置元件即可做出應用程式的開發環境
- 根據設計書撰寫程式
- 組合多個公開的服務來做出新的服務
- 解析既有的程式,導出其規格與設計資訊
正確答案
D. 解析既有的程式,導出其規格與設計資訊逆向工程是指解析既有的軟體,取出其規格與設計資訊。第一個是由設計往實作推進的一般(正向)開發,第二個是混搭(mashup),第四個是無程式碼/低程式碼開發的說明。
練習:作答本頁的題目
這是隨機出題的練習工具(在啟用 JavaScript 時運作)。即使不使用此工具,也能閱讀上方的所有題目與解說。
※ 解說是供學習用的資訊。考試的出題範圍與制度每年可能變動,請務必確認主辦機構的官方公告。
本頁面譯自日文原文。若譯文與原文內容不一致,以日文版為準。 查看日文原文