Рет қаралды 66,993
▼Udemyで「著者が教える最短絶対合格のコース」公開中!以下のリンクからのアクセスすることで84%オフのセール価格になります。Udemyの割引セールを待つ必要がありません。
link.it-pass.j...
▼無料の問題集アプリもあるよ!
app.it-pass.jp/
この動画では、 テストについて解説します
▼目次
0:00 自己紹介
0:12 テスト
0:34 バグ
0:51 テストの種類
1:51 機能要件と非機能要件
1:31 単体テスト
2:08 結合テスト
2:53 システムテスト
3:42 運用テスト
4:18 受入れテスト
4:57 リグレッションテスト
5:38 ホワイトボックステスト
6:27 ブラックボックステスト
7:15 試験ではこう出る!(まとめ)
7:41 令和4年春期 問45 過去問題
▼内容
今回の動画では、「テスト」について解説するよ。
前回の動画で、開発プロセスについて学習したね。
開発プロセスには、システム要件定義、システム設計、プログラミング、テスト、ソフトウェア受入れの工程がある。
このうち、今回は「テスト」について詳しく見ていくよ。
最初に、「バグ」という用語について確認しておこう。
バグ
バグとは、プログラム上の誤りや不具合のこと。
バグには、単純にプログラムに書いてある内容が間違っている場合や、プログラムが仕様どおりに動かない場合などがある。
バグを修正する作業のことを、デバッグという。
テストの種類
テストは、できあがったシステムに対して一回だけ行うわけではない。
システムを開発するとき、開発者は一般的に、プログラムを小分けにして作り、できたプログラムをくっつけていきながら、ひとつのシステムに作り上げていく。
開発者は、こうした開発の手順を、いくつかの段階に区切って、その区切りごとにテストを行っていくんだ。
テストの種類には、単体テスト、結合テスト、システムテスト、運用テストがあり、その段階に適したテストを行う。
これらのテストについて、順に見ていこう。まずは、「単体テスト」だ。
単体テスト
単体テストとは、プログラムに誤りがないことを検証するテスト。
単体テストでは、システムやソフトウェアを構成する小さなプログラムが、単体できちんと動作するかを確認する。
開発者が小さな単位でテストをするから、バグが見つかっても修正がしやすい。
それに、一番小さな部品のひとつひとつを確実にしておくことで、システム全体を組み立ててから不具合が見つかっても、手戻りが少なくて済むんだ。
次に行うテストは、「結合テスト」だ。
結合テスト
結合テストとは、プログラム同士を組み合わせてインタフェースを確認し、データの受け渡しや連携がうまくいくかを検証するテスト。
インタフェースとは、あるモノとあるモノをつなぐ部分のこと。ここでは、プログラムとプログラムがつながる部分のことだ。
単体テストが終わったプログラムを、一気に合体させてシステムにしてからテストをすると、どこに問題があるのか見つけにくいね。
そこで、少しずつプログラムを組み合わせて、うまくつながるのかを確認しながら、大きなシステムにしていくんだ。
システム全体が組み立てられたら、次は「システムテスト」を行う。
システムテスト
システムテストとは、システム全体の機能や性能が、システム要件を満たしているかを検証するテスト。
「総合テスト」と呼ばれることもある。
プログラムを組み合わせて、結合テストを終えたシステムは、動作自体には問題がないはずだね。
そこで、システムテストでは、システム要件として定義した仕様どおりになっているかどうかを確認する。
例えば、システムが命令を受けてから結果を返すまでの「応答時間」が目標値までに収まっているかなど、システムの品質を評価するテストだ。
ここまでの単体テスト、結合テスト、システムテストは、基本的に開発者が行う。
一方、次の「運用テスト」は、システムを利用するユーザーが主体となって行うテストだ。
運用テスト
運用テストとは、本番と同じ環境でシステムを運用して、業務要件どおりにシステムが動作することを検証するテスト。
運用テストでは、本番環境で実際にユーザーが操作をして、目的としていた業務を行えるかを確認する。
ここまでが、一般的なシステム開発の流れの中で行われるテストだ。
その他のテストとして、「受入れテスト」と「リグレッションテスト」を紹介しよう。
受入れテスト
受入れテストとは、開発者が発注者にシステムを引き渡す際に、システムが契約内容どおり完成しているかを確認するテスト。
受入れテストは、システムの納品を受け入れて良いかを発注者が確認する「検収」の意味合いが強い。
システム開発を外部の開発会社に委託する場合、どの工程を委託するかによって、受入れテストのタイミングは異なる。
例えば、プログラミングから単体テスト、結合テストまでをベンダーに委託した場合、受入れテストは「結合テストとシステムテストの間」の段階で行われることになるんだ。
リグレッションテスト
リグレッションテストとは、システムに修正や機能追加をした結果、別のところで新しいバグが出ていないかを確認するテスト。
「回帰テスト」ともいう。
完成したシステムの一部に変更を加えると、それまで正常に動いていた箇所に問題が起きることがある。
そこで、何らかの修正をした場合は、リグレッションテストを実施するんだ。
ここまで、テストの種類を紹介した。
これらのテストを行う手法にも、いろいろなものがある。
そこで、テストの手法のうち、試験でよく出題される「ホワイトボックステスト」と「ブラックボックステスト」を解説しよう。
ホワイトボックステスト
ホワイトボックステストとは、プログラムの内部を見ながら、入力したデータが意図したとおりに処理されるかを確認するテスト手法。
プログラムには、計算や値の代入などをする「命令」や、条件によって処理を変えるための「分岐」などが書かれている。
ホワイトボックステストでは、プログラムに書かれた「命令」や「分岐」などを見ながら、処理を実行して動作を確認する。
箱の中身を見ながらテストをするようなイメージだから、「ホワイトボックステスト」と呼ばれているんだ。
先ほど紹介した「単体テスト」は、通常、ホワイトボックステストの手法で実施する。
単体テストは小さなプログラムの段階で最初に行うテストだから、開発者がプログラムの中身を見ながら検証することが多いんだ。
ブラックボックステスト
ブラックボックステストとは、プログラムの内部を見ずに、入力したデータから意図した出力が得られるかを確認するテスト手法。
ブラックボックステストでは、入力と出力だけに着目して、プログラムの中身がどうなっているかはまったく考えない。
中身が見えない黒い箱のイメージだから、「ブラックボックステスト」と呼ばれているんだ。
先ほど紹介した「結合テスト」は、通常、ブラックボックステストの手法で実施する。
結合テストでは、単体テストが終わったプログラム同士を組み合わせて行うテストだから、効率よくテストを行うために、プログラムの中身は見ずに、うまく結合できるかを入力と出力に着目して検証することが多いんだ。
試験ではこう出る!
・テストの種類では、どの段階で何のテストを行うのかがポイントだ。それぞれのテストの役割を押さえておこう。
・ホワイトボックステストとブラックボックステストは、セットで出題される。
ホワイトボックステストはプログラムの中身を見て行うテスト、ブラックボックステストは入力と出力だけを見て行うテストという違いを覚えておこう。
過去問題
ブラックボックステストに関する記述として、適切なものはどれか。
ア.プログラムの全ての分岐についてテストする。
イ.プログラムの全ての命令についてテストする。
ウ.プログラムの内部構造に基づいてテストする。
エ.プログラムの入力と出力に着目してテストする。
正解は、エ。
ブラックボックステストとは、プログラムの内部を見ずに、入力したデータから意図した出力が得られるかを確認するテスト手法。
「入力と出力に着目して」というキーワードから、エが正解だとわかるね。
その他の選択肢は、すべてホワイトボックステストについての説明だ。
ホワイトボックステストとは、プログラムの内部を見ながら、入力したデータが意図したとおりに処理されるかを確認するテスト手法。
ウの「内部構造」は、アの「分岐」やイの「命令」で構成されている。これらを見て行うテストは、ホワイトボックステストだ。
以上が「テスト」の解説だよ。お疲れ様でした!
▼著者紹介
・高橋 京介
・米サンノゼ州立大学卒業
・元メルカリiOSエンジニア
・Udemy:link.it-pass.j...
・問題集アプリ:app.it-pass.jp/
・著書
- ITパスポート絶対合格の教科書:amzn.to/3uTyxbg
- 基本情報技術者 絶対合格の教科書:amzn.to/3Gyz8lA
- iPhoneアプリ開発「超」入門:amzn.to/3pIm046