XPのプラクティスで確認する作業順序と役割
基本情報技術者試験 平成30年度秋期 午前 問50 / ソフトウェア開発管理技術 › 開発プロセス・手法
過去問にチャレンジ
XP(Extreme Programming)のプラクティスの説明のうち,適切なものはどれか。
- ア
顧客は単体テストの仕様に責任をもつ。
- イ
コードの結合とテストを継続的に繰り返す。
- ウ
コードを作成して結合できることを確認した後,テストケースを作成する。
- エ
テストを通過したコードは,次のイテレーションまでリファクタリングしない。
会話形式の解説
講師この問題では、誰が何を担うかと、作業をどの順序で行うかに注目します。コードの結合とテストを繰り返す説明から考えてみましょう。
受験者コードを結合するだけではなく、その後もテストで確かめ続ける点が大切ですか。
講師はい。コードを頻繁に結合してテストを繰り返すのが、継続的インテグレーションです。この説明が適切です。
受験者顧客が単体テストの仕様に責任をもつという説明は、役割が違うのでしょうか。
講師そうです。顧客が関わるのは要求や受入れ基準です。単体テストの仕様を顧客の責任とする説明は適切ではありません。
受験者コードを作って結合を確認してからテストケースを作る、という順序も気になります。
講師XPのテストファーストでは、実装より先にテストを用意します。その説明は順序が逆です。
受験者では、テストを通過したコードのリファクタリングも、次のイテレーションまで待つ必要はないのですね。
講師はい。リファクタリングは必要に応じて行い、次のイテレーションまで待つ決まりはありません。
受験者顧客の役割、テストを作る順序、リファクタリングの時期を確かめると、コードの結合とテストを継続して行う説明が残ります。
講師その判断で正解です。特に、テストを作る時期とリファクタリングを行う時期を混同しないようにしましょう。
まとめ
XPでは、コードを頻繁に結合し、テストを繰り返す継続的インテグレーションの説明が適切です。顧客が関わるのは要求や受入れ基準であり、単体テストの仕様に責任をもつという説明は適切ではありません。テストファーストでは実装前にテストを用意します。リファクタリングを次のイテレーションまで待つ決まりもありません。
解答・解説
正解はイです
この問題のテーマ
XPのプラクティスについて、継続的インテグレーション、テストを作る順序、顧客の役割、リファクタリングの時期を問う問題です。
解き方の考え方
各選択肢が、開発中に行う作業とその順序を正しく表しているか確認します。XPでは、コードの結合とテストを継続して行います。また、テストファーストでは実装より先にテストを用意します。
選択肢ごとの解説
- ×ア 顧客は単体テストの仕様に責任をもつ。顧客は要求や受入れ基準に関わります。単体テストの仕様に顧客が責任をもつという役割の説明は適切ではありません。
- ○イ コードの結合とテストを継続的に繰り返す。コードを頻繁に結合し、テストを繰り返すことは、XPの継続的インテグレーションに当たります。結合したコードを継続して確かめるという説明なので、これが正解です。
- ×ウ コードを作成して結合できることを確認した後,テストケースを作成する。テストファーストでは、実装に先立ってテストを用意します。コードの作成と結合を確認してからテストケースを作るという順序は逆です。
- ×エ テストを通過したコードは,次のイテレーションまでリファクタリングしない。XPでは、必要に応じてリファクタリングを行います。テストを通過した後でも、次のイテレーションまで待つ決まりはありません。
POINT
- 顧客が関わるのは、要求や受入れ基準です。
- 継続的インテグレーションでは、コードの結合とテストを繰り返します。
- テストファーストでは、実装前にテストを用意します。
- リファクタリングの時期を次のイテレーションに限定しません。
