2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2019.02.22
開発環境・ツールソフトウェアテストの種類と効率化、おすすめのテスト管理ツールをご紹介
テクノモバイル B1UのT.Sです。
B1Uはマーケティングがメインの部署で、私自身はマーケティング・プランナーです。
今回はソフトウェアテストを題材に、「ソフトウェアテストの種類」や「テストの効率化」(テスト管理ツールによる、テストの効率化)について自分の勉強の意味も含め、まとめてみました。
|ソフトウェアテスト作業概要
実際のソフトウェアテストに関する作業として、「テスト実行前」「テスト実行時」「テスト実行後」の段階に分けることができる。
・テスト実行前
まずはテスト計画を立て、目的やテスト対象・範囲、テスト条件・基準、スケジュールなどを決め、テストケースの設計を行うなどする。
・テスト実行時
テストを実行し、テスト管理を行いながらテスト実行結果の確認を行う。
・テスト実行後
テスト完了後に結果報告を行い、ドキュメントなどの整理やまとめを行います。次回同じテストを実施する場合もあるので、引き継ぎなどがしやすい内容になっていることがベターである。
|ソフトウェアテストの種類 (テストの種類)
ソフトウェアテストとは、正しい動作や要求仕様の確認・検証、予期しない動作が生じているかなどの問題点の確認作業のことで、さらに予期しない動作やバグの発見作業を目的とする場合もあります。また、そのときの工程や、目的に合わせて様々なものがある。それらは大きく分類すると「工程」「品質特性(テストタイプ)」「実行方法」「技法」の4つに分けることができる。
(1) ソフトウェアテスト工程での分類
テストの効率化においては、工程別にテスト管理をきちんと実施することが、重要なポイントになります。
<開発段階>
・単体テスト
単体テストは、プログラムを構成する比較的小さなユニット(単位)が個々の機能を正しく果たしているかどうかを検証するテスト。単体テストは、モジュールが結合されてから実施される。結合テストの前に実施されるので、問題のある箇所の特定、その修正を迅速に、開発全体のバグ修正コストを下げる効果が高い。
・統合テスト
結合テストはテスト機とその環境を使用し。単体テスト後の機能を結合して、利用者が使用する機能として不具合の検証を行う。バッチ処理などの内部の機能だけでなく外部とのインターフェースのテストも実施。結合テストでほぼすべてのバグを取り除いた状態で、ソフトウェアの品質が確立します。仮にこのテストで問題が生じた場合によっては、仕様まで再構築する事態になることがある。
・システムテスト
システムが仕様に従い動作することを確認することが目的で、単体テストや結合テストではなく、また機能や非機能(性能、脆弱性なども含めて、システム全体として実施するテスト。開発者側にとっては最終テストとなる。
<顧客側での工程>
・受け入れテスト
顧客側(ユーザー)で試用テストを実施し、納品されたシステムが要求通りの機能や性能を備えているかどうかを確認するテスト。元請け側が開発を依頼した下請け側から納品されたソフトウェアを確認するテストを示すケースもある。
(2)品質特性(テストタイプ)による分類
・機能テスト(要求仕様)
機能テストとはシステムがユーザー側から要求された機能の目的を果たしているかどうかを検証するテスト。入力操作や動作させるなどして、正しい実行結果が出るかどうかの確認を行う。
・非機能テスト
性能テスト、負荷テスト、ストレステスト、ユーザビリティテスト、信頼性テスト、ストレステスト、保守性テスト、移植性テストなど非機能的な要件のテストを行う。
・性能テスト
性能テストは、別名パフォーマンス・テストと呼ばれ、目標とする性能を達成するかどうかや、性能による問題が生じるかを見極めるテストで、 負荷を増していった場合の挙動やボトルネックを確認し、要件を満たす性能が達成されているかを検証する。要件要素としては、スループット(単位時間当たりの処理量)や、レスポンスタイム(応答時間)、占有または消費されるリソースなどがある。
・負荷テスト
ストレステストは過剰な負荷をかけることで弱点や瑕疵を調べる手法の一つで、致命的な問題が、どういう条件で、どんなことが発生するかを試験する。高負荷の状況でしか発生しない問題、発生率の高いまたは低い欠陥、性能低下などを発見し、システムの停滞やハングアップなどの不具合を確認する。
・相互運用性テスト
相互運用性テストでは、共通のプロトコルや情報交換の規則などを通じて、要求の送信や正しい応答などの相互にデータのやり取り、ファイルの読み書きなど正常に行えるかなどの検証を行う。
・信頼性テスト
信頼性テストは機能が期待通りに実行できるかどうかを表す品質特性で、ソフトウェアの故障発生頻度や、障害許容性(影響度合)、回復性(故障からの復旧の速さ)などをテストする。
・移植性テスト
移植性テストとは、要求されている複数のハードウェアや環境で正しく稼働するかをテストする。また、将来的にソフトウェアを別のハードウェアや環境に移す際の移植のしやすさを確かめるケースもある。
・ユーザビリティテスト
ユーザビリティテストはシステムのインタラクティブなデザインにおいて、実際にユーザーの視点で、それを試してもらう手法のことである。特にユーザーにとって使いやすいかに着目したテストとなる。実際にユーザーに試してもらい、動作の観察や意見を聞くなどして評価してもらうテストである。ユーザーの意見を聞くこと無く評価する、ユーザビリティ検証法とは別である。
・セキュリティテスト
外部からの攻撃に対しての脆弱性を確認するテストで、悪意のある攻撃で予想外の事態でも損害が起こらないように検証を行う。
(3)実行方法による分類
・動的テスト
動的テストではテスト対象を動かして、その結果を確認する。
・静的テスト
静的テストではソフトウェアを構成するソースコードをレビュー(読む)し、ソースコードの記述パターンをチェックする。
(4)テスト技法による分類
・ブラックボックステスト
ブラックボックステストとは、ホワイトボックステストのように内部構造に着目しテストではなく、テスト対象の「仕様」に基づいたテストで、仕様書等のドキュメト群を分析することにより、テストケースを作成する。また、ブラックボックステストには、「同値分割法「、「境界値分析」、「デシジョンテーブル」、「状態遷移」、「ユースケース」、「経験ベース」といった種類の技法がある。
・ホワイトボックステスト
ホワイトボックステストは、制御フローやデータフローといったソフトウェアの論理構造に着目したテストである。プログラムの外部仕様は関係なく、命令や分岐が論理を実現するために動作するかといった部分のチェックを行う。
これだけ「テストの種類」があると、テストケースの管理がとても煩雑になりがちである。またソフトウェアテストをスムーズに効率よく行うためには(テストの効率化)、その管理が重要となる。そして、テスト管理におけるドキュメントなどの整理・まとめ、スケジュール表作成などはExcelが使い慣れているという人は多い。
(5)Excelで管理する場合の問題点
ソフトウェアテストをExcelで管理する場合、以下の問題点が指摘されている。
テストの効率化を図るために、それらの諸問題を解決する必要がある。
・表示の問題
Windows上で綺麗に整形、関数やVBAでまとめられたExcelファイルは、MacやLinuxでは期待通りに表示されないなどの可能性がある。
・運用の問題
複数人でのテスト管理では、同時にアクセスや編集が難しく、ファイルのバーション管理をしながらの共有もメール等でのやり取りが頻繁に発生するなど手間がかかる。また、各人のPCと共有ファイルサーバーで管理されてしまうなどで、どのファイルが最新なのか煩雑な管理となり、テストケースの最新性が低下する可能性がある。さらに、古いファイルを新しいファイルに上書きしてしまうなどの危険性もある。
以上のように、Excelで管理すると作業効率が悪いといった可能性があり、うまく管理できないなどのリスクを考慮しなければならなくなる。
(6)テストの効率化
テストは、開発や改修した部分が正しく動くか、問題が生じないかなどの検証だけでなく、性能が低下してないか、他の部分に悪影響を及ぼしていないかなども含めて検証しなければならない。場合によっては、途中でテスト作業者を増員するケースもよくあること。
そして、テスト作業の管理・運用やバリエーション豊富なテストケース作成・管理、またはその中で信頼性のあるテストを行うことはとても大変である。
テストの効率化のためには、テスト管理が簡単にで、効果的に共有化できる環境作りが重要である。そのために、今ではクラウドの環境下で使えるテスト管理ツールが必要となってくる。
**** ソフトウェアテストの管理をスムーズかつ効率よく確実に行うコツ ****
クラウド型の「テスト管理ツール」を使うのがオススメ!!
◆◇◆◇◆◇ クラウド型を使うメリットとは ◇◆◇◆
・OSやハードウェア環境に依存しなくてよい
・初期導入費用がかからない
・導入がスムーズで早くできる
・オンライン環境さえあればどこでも使える
・最新の環境が手間いらずにバーションアップ
・メンテナンス含めたランニングコストが安い
※オンプレミスの場合は環境構築が大変
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆
現在、ソフトウェアテストにおいて日本語に対応しているクラウド型の「テスト管理ツール」は数少ない。その中でも国内で先行してサービス展開している「Qangaroo」は、安定した環境で使えるテスト管理ツールと言える。
テスト管理ツール「Qangaroo」は、使い慣れているExcelのような編集画面で作業でき直感的な操作が可能なため、誰でもすぐに使いこなすことができる。オペレーショントレーニングは、ほぼ必要ない。
★最後に一言
テスト管理ツール「Qangaroo」はクラウド型のデメリットをカバー!!
テスト管理ツール「Qangaroo」(日本語対応)のサイトは以下のとおりである。
「Qangaroo」はこちら
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索