分123テスト設計を行うさて,仕様分析が終わったところで,テストケースを作成するための「設計」作業を行いましょう。このテスト設計は,テストの観点を洗い出し,整理し,重み付けといったことを行います。テストケースを行き当たりばったりに作るのではなく,ちゃんと意図を持って作成するための作業です。テスト観点を洗い出す結果が同じとみなせるものをまとめる期待結果を把握する単機能のテストをしてから組み合わせのテストを考える組み合わせのテストは重み付けを考慮するテスト観点を洗い出す仕様書を読んで,プログラムの動作結果に影響を与えるような項目を見つけます。動作条件やパラメータなどです。テキストの入力項目や選択項目のように値が変化するところや,プログラムの起動オプションや設定ファイルに書く設定値のようなものかもしれません。プログラムが動く環境(CPUやOS)がそれに当たるかもしれません。何をテスト観点とするかは,プログラムやシステムの種類によっても違いますし,テストの範囲によっても違います。プログラムのテストのときと,システムのテストのときでは,テスト観点は変わります。結果が同じとみなせるものをまとめる先ほど挙げた仕様は,そのままではテストできませんので,仕様を追加します。仕様:テキストボックスに文字を入力し,表示ボタンをクリックすると,表示領域に入力した文字が表示される。テキストボックスは半角8桁の数字を入力できる。追加テキストボックスにどんな値を入れればよいのかを考えます。このように,仕様書のこの箇所をチェックします。次に有効なケースと無効なケースを考えます。英字,制御文字......「8桁」の有効なケースでは,1~8桁とまとめてあります。これは,1桁でも2桁でも3桁でも...8桁でも期待結果としては同じ種類であると考えたためまとめています(当然,同じ結果にはなりません。同じ種類の結果です⁠)⁠。このように整理することによって,同じような結果になるテストケースを集約することができます。テスト技法の名称としては「同値分割」と呼ばれています。期待結果を把握するプログラムに欠陥がなかった場合に,どんな結果が期待できるのかを把握します。新人さんにテストケースを書いてもらうと,期待結果が書かれていないことがあります。欄を埋めるように指導すると,「⁠プログラムを動かしてみないとわかりません」という困った新人さんもいます。期待結果がわからなければ,テストを実施しても不具合かどうか分かりません。期待結果が何かを知った上でテストを行います。単機能のテストをしてから組合せのテストを考える複数のテキストボックスがあったとき,1回のテストで消化できるように横着をして複数のテキストボックスのテストをまとめて行ってはいけません。1つ1つのテキストボックスのテストを実行するようにテストケースを書き,次に複数の組合せを考えます。このように面倒なことをしなければならないのでしょうか?私たちは,不具合を見つけるためにテストを行います。プログラムのどこかに欠陥が潜んでいて,その欠陥を取り除くためにテストを行います。複数の項目をまとめてテストを実行して,その結果が期待結果と異なっているとき,欠陥箇所を見つけるのは非常に大変です。結局,1つ1つの項目を変化させて,欠陥箇所を特定させることになります。面倒かもしれませんが,単機能のテストを最初に行うことが大切です。組み合わせのテストは重み付けを考慮する単機能のテストが終わったら,組合せのテストを行います。組合せはかけ算になりますので,テストケースが爆発してしまいます。どのテストケースを優先して行うのか考えて,テストケースに重み付けをします。テスト設計は,ここに書かれている内容だけでできるものではありません。この記事を読んだだけでは,わかりにくいと思います。新人の皆さんは,先輩に教わったり書籍や雑誌の記事を読んだり,このようなWeb記事を読むなどして学習してください。分析と設計に有効なツールこの分析と設計には,文書を読み解いて整理する力も重要ですが,何より発想力が必要とされる作業です。この発想を促進するツールを使うことが重要です。この発想や整理のためのツールとしては,初心者がすぐ取り組めるものとしては,三色ボールペンやマインドマップ,付せん紙を活用すると良いでしょう。詳しくは『マインドマップから始めるソフトウェアテスト』や『ソフトウェアテスト入門』をご覧になってください。終わりにテストケースはいきなり作ってはいけません。テストケースをいきなり書くという行為は,プログラムコードをUMLやフローチャートを作成せずにいきなり書くのと同じことです。テストケースを作成する前に,テストベースを分析し,そしてテスト設計を行うことの大事さを理解しましょう。次回は,テストケースの書き方と,書きあがったテストケースのレビューについて解説を行います。みきお)1992年,(株)東洋情報システム(現TIS(株))に入社。複数のエンタープライズ系システムの開発に携わり,現在は社内のソフトウェアテストに関するコンサルタントとして活動中。あきら)2002年日立通信システム(現日立情報通信エンジニアリング)に入社。設計,ソフトウェア品質保証業務を経て,現在は開発に関する設計/テストツールの導入や,プロセス改善に関する業務に従事。ASTER理事,JaSST実行委員,品質管理学会・ACM正会員。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。