ソフトウェアの品質を学びまくる2.0スマートフォン用の表示で見るソフトウェアの品質を学びまくる2.0ソフトウェアの品質、テストなどについて学んだことを記録するブログです。テスト自動化Tweet9月は仕事とイベントにかまけてました。低品質を誇る当ブログ、質の悪さを量で補おうと、今年は50本のエントリーを書くことを目標にしています。これで36本目みたいです。www.kzsuzuki.comさて、カテゴリー7は、「品質属性の最適化」です。Characteristics」なので、一応、訳し分けています。代表的な品質属性TABOKでいう品質属性は、以下の8つ。ISO9126を意識しているものとは思いますが、9126に対応するものが見当たらない属性(★)が3つもあります。ソフトウェアなんだから、ほとんど一致するのではという予想に反する。maintainability(保守性)portability(移植性)flexibility(柔軟性)★robustness(堅牢性)★scalability(拡張性)★reliability(信頼性)usability(使用性)performance(性能)なぜかと考えてみますと、ここでいう属性は、テストスクリプト自体の属性というより、自動テストフレームワークの属性なんですね。「新しいテストケースを追加することの容易さ」である拡張性が前面に出てきているのではないでしょうか。一方で、機密性(security)などは求められない。TABOKではそれぞれの属性について、意味・メトリクス例・改善方法の例を説明しています。なんか、無駄に表が多い。触れます、詳しくはTABOKを購入して読んでくださーい。購入ガイド(笑)はコチラです。※購入時には「ぐるなびで見た」とお伝え下さい。最初に出てくるのが保守性、というのがテストフレームワークらしいですね。ISO9126で機能性(functionality)が初めに出てくるのと対照的です。保守性は、変更や修正のかけやすさ。定量的には、変更・修正にかかる時間がメトリクスの1つになります。テスト側に欠陥があって修正するということであれば、ハードウェアのアナロジーで、MTTR(平均復旧時間)とも呼べます。異なる環境への移植のしやすさ。メトリクスとしては、「別の環境用に一から作るのと、既存のものを直して流用するのと、どのくらい違うか」という比が使えます。改善の方法として、自動化のためのコンポーネントをroot直下にディレクトリにおいておけば、ディレクトリ構成的には移植しやすくなる、など。柔軟性テストのために与えられたリソースに応じた、テスト実行の行いやすさ、といえばいいのでしょうか。リグレッションテストをすべてやりきれる場合と、最重要メインルートを通すだけの時間しかない場合、どちらも同じようにしかテストを流せないのでは困ります。改善のためには、テストセットのグループ化、優先順位付け。これはカテゴリー6で言及されていました。www.kzsuzuki.com堅牢性システム側の変化にどれだけ強いか。テスト対象のソフトウェアの欠陥によって、自動テストがいちいち止まる(halt)ようでは、堅牢とは言えません。保守性のMTTRに対し、堅牢性は平均故障間隔(MTBF)で表現することができます。改善のためにできるのは、たとえば例外処理を強化することです。拡張性テストのスコープの拡大・縮小のしやすさ。テストする対象が増えても、簡単にテストケースを追加できるかってことですね。4.2で説明されているデータ駆動だと、同じシナリオのテストを別のパラメターで実行するというテストケースが追加しやすいのは明白です。堅牢性と同じくMTBFで表すことができますが、その違いは、この「F」が、テスト側の故障だということです。堅牢性では、テスト対象ソフトウェアに起因するものでした。いえこちらの改善策も、例外処理の強化がメインです。使用性ここは人間に関わる属性ですね。そのフレームワークにどれだけ早く馴染めるか。それに要するトレーニングコスト・時間などがメトリクスになります。キーワード駆動のような形だと、スクリプトの中身が隠蔽されているので、すぐにシナリオを組み立てられる、といったことがあります。自動テストのうれしさの1つは、その驚きのスピード感なのですから、性能は重要。メトリクスとしては、実行に要する時間など。それを改善する手段の1つは、やはり、例外処理をしっかり書くこと。実行速度を何より落とすのは、「テストが止まる」という事態ですからね。8つの属性を見て感じるのは、「とにかくコケずに流し終わるテストを作ろう!」ということですね。カテゴリー12「自動テストのレポートと分析」さあ、ついに最後のカテゴリーまでやってきました。カテゴリー7「品質属性の最適化」(2)前回の続きです。JSTQBシラバスのお勉強リスト・TABOK粗読による自動化の座学リストシステムテスト自動化標準ガイド通称・「ギア本」。いわゆるQAテストの自動化の概観を学ぶことができます。お手に取ってみてください。AdSenseを使用しています。AdSenseは、ユーザーの興味に応じた広告を配信するためにCookieを利用しデータを収集しています。Cookieを無効にする設定、およびGoogleアドセンスに関する詳細は、Googleのポリシーと規約をご覧ください。はてなブログをはじめよう!kz_suzukiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。