応用情報技術者試験の過去問&キーワードを動画2443本の動画で解説!スキマ時間に動画!※2017年9月11日現在

PR広告

平成30年度秋 応用情報技術者試験午後 問8 情報システム開発|合格率アップ!動画解説!

継続的インテグレーションに関する次の記述を読んで、設問1~4に答えよ。

 C社は、会員間で物品の売買ができるサービス(以下、フリマサービスという)を提供する会社である。出品したい商品の写真をスマートフォンやタブレットで撮影して簡単に出品できることが人気を呼び、C社のフリマサービスには、約1,000万人の会員が登録している。

 C社には、サービス部と開発部がある。サービス部では、フリマサービスに関する会員からの問合せ・クレーム・改善要望の対応を行っている。開発部は、フリマサービスを利用するためのスマートフォン用アプリケーション(以下、Xという)、タブレット用アプリケーション(以下、Yという)、及びサーバ側アプリケーション(以下、ZAという)について、開発から運用までを担当している。

 競合のW社が新機能を次々にリリースして会員数を増加させていることを受け、C社でも新機能を早くリリースすることを目的に、開発プロセスの改善を行うことになった。開発プロセスの改善は、開発部のD君が担当することになった。

〔課題のヒアリング〕

 D君は、開発部とサービス部に現状の開発プロセスの課題をヒアリングした。

開発部:

リリースするたびに、追加・変更した機能とは直接関係しない既存機能で障害が発生しており、会員からクレームが多数出ている。機能追加・機能変更に伴い、設計工程では既存機能に対する影響調査を、テスト工程ではテストの強化を行っている。しかし、①既存機能に対する影響調査とテストを網羅的に行うことは、限られた工数では難しい。

サービス部:

会員からのクレームや改善要望は日々記録しているが、現在の開発サイクルでは改善要望の対応に最大6か月掛かる。改善要望をまとめて大規模に機能追加する開発方法から、短いサイクルで段階的に機能追加する開発方法に変更してほしい。

〔継続的インテグレーションの導入〕

 D君は、既存機能に対するテストを含めたテストの効率向上及び段階的な機能追加を実現するために、フリマサービスの開発プロジェクトに継続的インテグレーション(以下、CIという)を導入することにした。CIとは、開発者がソースコードの変更を頻繁にリポジトリに登録(以下、チェックインという)して、ビルドとテストを定期的に実行する手法であり、aに採用されている。CIの主な目的はb, c及びリリースまでの時間の短縮である。

 D君は、開発用サーバにリポジトリとCIツールをインストールし、図1に記載のワークフローとアクティビティを設定した。D君が設定したワークフローでは、リポジトリからソースコードを取得し、コーディング規約への準拠チェックとステップ数のカウントの後に、各アプリケーションのビルドと追加・変更箇所に対する単体テストを行い、テストサーバへ配備して、全アプリケーションを対象とするリグレッションテストを実行する。

 またD君は、このワークフローを2時間ごとに実行するように設定し、各アクティビティの実行結果は正常・異常にかかわらずX、Y、Zの担当チームメンバ全員に電子メール(以下、メールという)で送信するように設定した。

 なお、ワークフロー内のアクティビティは、前のアクティビティが全て正常終了した場合だけ、次のアクティビティが実行できるようにした。

平成30年度秋 応用情報技術者試験午後過去問8 情報システム開発

図1 D君が設定したワークフローとアクティビティ

〔テストプログラムの作成〕

 D君は、単体テストで利用するテストプログラムを作成した。テスト対象のプログラムとテストプログラムの例を図2に示す。テスト対象のプログラムである checkTime は、時と分を示す三つの整数値を引数 hour と mm で受け取り、hour が0以上24未満の値かつ mm が0以上60未満の値であったら true を返し、それ以外の値であったら false を返すプログラムである。一方、テストプログラムである test_checkTime は、境界値テストの考え方に基づき、6種類の境界値に対してそれぞれ checkTime を呼び出し、全ての呼出しで仕様どおりの値を返したら true を、それ以外なら false を返すプログラムである。

 また、D君はこれまで手作業で行っていたリグレッションテストについてもCIツールで自動実行できるように、テストプログラムを作成した。

 なお、新機能のリリース後には、新機能の単体テストで用いたテストプログラムは、リグレッションテストのテストプログラムとして再利用することにした。

function checkTime(hour, min)
  if(hourが0よりも小さい又は24以上)
    return false
  else if(minが0よりも小さい又は60以上)
    return false
  end if
  return true
end function
function test_checkTime()
  if(
    checkTime(-1,  0)がfalseと等しい かつ
    checkTime(24,  0)がdと等しい かつ
    checkTime(0 , -1)がfalseと等しい かつ
    checkTime(0 , 60)がfalseと等しい かつ
    checkTime(0 ,  0)がtrueと等しい かつ
    checkTime(23, 59)がtrueと等しい
  )
    return true
  end if
  return true
end function

図2 テスト対象のプログラムとテストプログラムの例

〔CIの試行〕

 次にD君は、フリマサービスのアプリケーションの全てのソースコードをリポジトリに移行し、CIの試行を開始した。試行開始から1か月後、D君の設定したCIツールは問題なく動作していたが、開発部のメンバから次の3点を指摘された。

指摘1:

一つの要求を実現するために必要なソースコードの変更は多岐にわたるので、チェックインは1週間に1回程度行っている。ワークフローは2時間ごとに動作するように設定されているが、1週間に1度で十分である。

指摘2:

Yの単体テストでエラーが検出されていたが、CIツールから送信されるメールが非常に多く、Yを担当するチームはエラーに気付かず、1日放置されていた。②開発者がエラーに気付くように、CIツールから送信されるメールを限定してほしい。

指摘3:

Xのビルドでエラーが検出され、単体テストまでワークフローが流れないことが多い。このため、Zを担当するチームでは、開発者の開発PC上でCIツールと同じテストケースを実行しており、③CIの導入効果が出ていない

 D君は、この3点の指摘について必要な対策を実施するとともに、要件定義から設計までのプロセスの見直しも行い、フリマサービスの開発プロジェクトにCIを適用した。その結果、段階的な機能追加を実現させ、新機能のリリースサイクルを短縮した。

設問1

本文中のacに入れる適切な字句を解答群の中から選び、記号で答えよ。

解答群

ア ウォータフォールモデル

イ エクストリームプログラミング

ウ 設計の曖昧性の排除

エ ソフトウェア品質の向上

オ バグの早期発見

カ プロトタイピングモデル

キ 網羅的なテストケースの作成

ク 要件定義と設計の期間短縮

設問2

本文中の下線①について、(1), (2)に答えよ。

(1) 既存機能に対するテストを行うために必要なCIツールのアクティビティを、図1中の字句を用いて答えよ。

(2) 既存機能に対するテストについて、設定したテストケース数の妥当性を評価するために考慮すべき値を解答群の中から選び、記号で答えよ。

解答群

ア 各アプリケーションのステップ数

イ 設計書の変更ページ数

ウ 対応する改善要望数

エ 追加機能のステップ数

設問3

図2中のdに入れる適切な字句を答えよ。

設問4

〔CIの試行〕について、(1)~(3)に答えよ。

(1) 本文中の指摘1について、指摘者に対するアドバイスとして、誤っているものを解答群の中から選び、記号で答えよ。

解答群

ア 改善要望に対応したソースコードから随時チェックインする。

イ 一つの要求を細かな要求に細分化して開発する。

ウ プログラムを小さな機能単位に分割して開発する。

エ 変更中のソースコードでもよいので随時チェックインする。

(2) 本文中の下線②について、CIツールから送信されるメールを限定する方法を、正常時のメールの送信を停止する以外に35字以内で述べよ。

(3) 本文中の下線③について、CIツールのワークフローをどのように修正するとよいか。40字以内で述べよ。

設問1 解説

本文中のacに入れる適切な字句を解答群の中から選び、記号で答えよ。

解答群

ア ウォータフォールモデル

イ エクストリームプログラミング

ウ 設計の曖昧性の排除

エ ソフトウェア品質の向上

オ バグの早期発見

カ プロトタイピングモデル

キ 網羅的なテストケースの作成

ク 要件定義と設計の期間短縮

平成30年度秋 応用情報技術者試験午後過去問8 情報システム開発

設問2 解説

本文中の下線①について、(1), (2)に答えよ。

(1) 既存機能に対するテストを行うために必要なCIツールのアクティビティを、図1中の字句を用いて答えよ。

(2) 既存機能に対するテストについて、設定したテストケース数の妥当性を評価するために考慮すべき値を解答群の中から選び、記号で答えよ。

解答群

ア 各アプリケーションのステップ数

イ 設計書の変更ページ数

ウ 対応する改善要望数

エ 追加機能のステップ数

平成30年度秋 応用情報技術者試験午後過去問8 情報システム開発

設問3 解説

図2中のdに入れる適切な字句を答えよ。

平成30年度秋 応用情報技術者試験午後過去問8 情報システム開発

設問4 解説

〔CIの試行〕について、(1)~(3)に答えよ。

(1) 本文中の指摘1について、指摘者に対するアドバイスとして、誤っているものを解答群の中から選び、記号で答えよ。

解答群

ア 改善要望に対応したソースコードから随時チェックインする。

イ 一つの要求を細かな要求に細分化して開発する。

ウ プログラムを小さな機能単位に分割して開発する。

エ 変更中のソースコードでもよいので随時チェックインする。

平成30年度秋 応用情報技術者試験午後過去問8 情報システム開発

(2) 本文中の下線②について、CIツールから送信されるメールを限定する方法を、正常時のメールの送信を停止する以外に35字以内で述べよ。

平成30年度秋 応用情報技術者試験午後過去問8 情報システム開発

(3) 本文中の下線③について、CIツールのワークフローをどのように修正するとよいか。40字以内で述べよ。

平成30年度秋 応用情報技術者試験午後過去問8 情報システム開発


PR広告

フェイスブックコメント

難解な応用情報技術者試験午前で80点中48点を取る優しい方法

平成28年度春 応用情報技術者試験 午後 テキスト・動画解説

平成28年度春 応用情報技術者試験 午後 動画解説再生リスト

平成28年度春 応用情報技術者試験 午前 テキスト・動画解説

平成28年度秋 応用情報技術者試験 午前 動画解説再生リスト

平成27年度秋 応用情報技術者試験 午前 テキスト・動画解説

平成27年度秋 応用情報技術者試験 午前 動画解説再生リスト

平成27年度春 応用情報技術者試験 午後 テキスト・動画解説

平成27年度春 応用情報技術者試験 午後 動画解説再生リスト

平成27年度春 応用情報技術者試験 午前 テキスト・動画解説

平成27年度春 応用情報技術者試験 午前 動画解説再生リスト

平成26年度秋 応用情報技術者試験 午前 テキスト・動画解説

平成26年度秋 応用情報技術者試験 午前 動画解説再生リスト

平成26年度春 応用情報技術者試験 午前 テキスト・動画解説

平成26年度春 応用情報技術者試験 午前 動画解説再生リスト