日々学習〜人の役に立てるITエンジニアを目指して〜

ITエンジニアが日々学んだ事を書き記します

【システムアーキテクト午前Ⅱ】リグレッションテストの役割

f:id:taniyutt:20220330232829p:plain




















組込みシステムのソフトウェア開発におけるリグレッションテストの役割として、適切なものはどれか。

ア 実行タイミングや処理性能に対する要件が満たされていることを検証する。
イ ソフトウェアのユニットに不具合がないことを確認する。
ウ ハードウェアの入手が困難な場合に、シミュレータを用いて検証する。
エ プログラムの変更によって、想定外の影響が出ていないかどうかを確認する。







答:エ
リグレッションテスト:プログラムの変更に伴い、システムに予想外の影響が現れていないかどうかを確認するテスト」 のこと。リグレッションには「回帰」「退行」という意味があるため、「回帰テスト」「退行テスト」とも呼ばれる。

【システムアーキテクト午前Ⅱ】ブラックボックステストのテストケース設計




















ブラックボックステストにおけるテストケースの設計に関する記述として、適切なものはどれか。

ア 実データからテストデータを無作為に抽出して、テストケースを設計する。
イ 実データのうち使用頻度が高いものを重点的に抽出して、テストケースを設計する。
ウ プログラムがどのような機能を果たすのかを仕様書で調べて、テストケースを設計する。
エ プログラムの全ての命令が少なくとも1回は実行されるように、テストケースを設計する。







答:ウ
ブラックボックステストは、プログラムの内部構造を意識せず、外部仕様に基づいて機能を満たすかどうかテストする手法。テストケースは、外部仕様書に基づいて、様々なケースについて漏れがないように網羅して設計する必要がある。

【システムアーキテクト午前Ⅱ】プログラムの正当性を検証する手法



















プログラム実行中の特定の時点で成立すべき変数間の関係や条件を記述した論理式を埋め込んで、そのプログラムの正当性を検証する手法はどれか。

ア アサーションチェック
イ コード追跡
ウ スナップショットダンプ
エ テストカバレッジ分析







答:ア
例えばJavaにはアサーション機能があり、プログラムソース中に"assert 条件式;"の形で、その時点で成立すべき条件式を書くことができる。プログラムを実行して、その条件式が真と評価されれば何も起こらないが、偽と評価されればアサーションエラーを発生する。

【システムアーキテクト午前Ⅱ】ペアプログラミングによる開発の進め方

f:id:taniyutt:20220324232014p:plain



















ハードウェアの経験が豊富なプログラマAと、経験の少ないプログラマBがペアプログラミングの手法を利用して組込みシステムの開発を進める。ペアプログラミングによる開発の進め方として、適切なものはどれか。

ア Aがデバイスドライバの開発を担当し、Bがアプリケーションの開発を担当する。
イ Aがプロジェクトマネージャとして、プロジェクトの調整役になる。
ウ AとBがエディタ画面を共有し、Bが記述したコードに対してAが助言する。
エ ハードウェアとソフトウェアの切分けをシミュレーションで検証してから、AとBで分担して開発する。







答:ウ
ペアプログラミングは、二人一組になって1台のコンピュータの前でプログラムを作成する手法。適当なタイミングで交代しながら、一人がコードを作成し、もう一人は隣でそれを見ながら助言やチェックを行う。したがって、初級プログラマBだけでなく、適宜交代して上級プログラマAもコード作成を行う。

【システムアーキテクト午前Ⅱ】2段階で実行するプログラミングモデル

f:id:taniyutt:20220323225644p:plain




















大量のデータを並列に処理するために、入力データから中間キーと値の組みを生成する処理と、同じ中間キーを持つ値を加工する処理との2段階で実行するプログラミングモデルはどれか。

ア 2相コミット
イ KVS
ウ MapReduce
エ マルチスレッド







答:ウ
MapReduce:入力データから中間キーと値の組みを生成するMap処理と、同じ中間キーをもつ値を加工するReduce処理の2段階で処理を行う特徴があり、大量データの並列分散処理に適している。

【システムアーキテクト午前Ⅱ】内部設計書のデザインレビューの目的

f:id:taniyutt:20220322230941p:plain




















内部設計書のデザインレビューを実施する目的として、最も適切なものはどれか。

ア 外部設計書との一貫性の検証と要件定義の内容を満たしていることの確認
イ 設計記述規約の遵守性の評価と設計記述に関する標準化の見直し
ウ 要件定義の内容に関する妥当性の評価と外部設計指針の見直し
エ 論理データ設計で洗い出されたデータ項目の確認と物理データ構造の決定







答:ア
アは、内部設計書のデザインレビューの目的として最も適切。内部設計書は外部設計書を基に作成されるから、外部設計書との矛盾がなく一貫性が、更には要件定義書の内容を満たしているかを確認する必要がある。
イは、開発工程とは別の場で実施する。設計記述規約は、設計書作成で守るべき事項を定めたルール。規約の遵守状況の評価や見直しは、開発工程で行う必要なない。
ウは、要件定義書のデザインレビューを実施する目的。外部設計工程で参照される外部設計指針も、要件定義工程で作成する。
エは、内部設計(デザインレビューでなく)を実施する目的の一つ。論理データ設計は外部設計で行い、それを基にして物理データ構造を内部設計で決定する。

【システムアーキテクト午前Ⅱ】GoFのデザインパターン

f:id:taniyutt:20220308222859p:plain



















ソフトウェアパターンのうち、GoFデザインパターンの説明はどれか。

ア Javaのパターンとして引数オブジェクト、オブジェクトの可変性などで構成される。
イ オブジェクト指向開発のためのパターンとして生成、構造、振る舞いの三つのカテゴリに分類される。
ウ 構造、分散システム、対話型システム及び適合型システムの四つのカテゴリに分類される。
エ 抽象度が異なる要素を分割して階層化するためのLayers、コンポーネント分割のためのBrokerなどで構成される。







答:イ
デザインパターンとは、多数の事例から共通する要素を抽出し、典型的な問題に対して解法を記述したもの。
イが、GoF(Gang of Four)のデザインパターンの説明。
アはJavaBeansパターンの説明、
ウ、エはPOSA(Patterns Oriented Software Architecture)のアーキテクチャパターンの説明。