
こんにちは、QAエンジニアのヨシナです。
ここ半年間、ウォーキングコンテストをきっかけにオーディオブックを聴くようになりました。(ちなみに、1カ月で78万歩を歩き、3位になりました)
最初は歩きながらソフトウェア開発やマネジメントに関する書籍を聴いていましたが、ウォーキングコンテストが終わった今は、主に電車の中でオーディオブックを楽しんでいます。最近は『Clean Code』という本を聴き、そこからQAの自動テストに活かせるポイントをいくつか見つけました。
本記事では、『Clean Code』から学んだ内容を、QAの視点で解説していきます。
『Clean Code』は、そのタイトル通り、きれいなコードを書くための手法や考え方を学べる本です。具体的には「コードを洗練させる過程で必要な判断やアプローチ」について詳しく解説されています。
全528ページの書籍で、Javaを使ったサンプルコードが豊富に掲載されており、実践的な内容が多いのが特徴です。
本書は主にコードを書く際の指針について述べられていますが、9章ではテストに関する重要なポイントが解説されています。ユニットテストが中心ですが、QAの自動テストにも応用できる内容がいくつかありました。特に以下の3点が参考になりました。
- テストはきれいに保つべき
- 1つのテストケースで確認する内容を最小限にするべき
- FIRST
以下、それぞれのポイントについて詳しく説明します。
テストは綺麗に保つべき
テストをきれいに保つことで、メンテナンスコストを最小限に抑えることができます。メンテナンスコストが増えると、テストの実行が困難になり、最終的にテストが使われなくなるリスクがあります。
テストが除外されると品質の低下につながるため、テストは常にきれいで読みやすい状態を維持することが重要です。長期的な運用を考える際の大事なポイントです。
テストケースで確認する内容を最低限にすべき
1つのテストケースで複数の確認を行うと、1つのチェックでエラーが発生した場合に後続の確認が実行されなくなる可能性があります。このような状態になると、バグの早期発見が難しくなり、結果的に修正コストが増大します。
また、確認内容が多すぎるとテストフローが複雑になり、可読性が低下します。これを防ぐため、本書では以下のシンプルなフローを推奨しています。
- セットアップ
- テスト実行
- 確認
この手順を守ることで、テストケースが明確になり、可読性が向上します。
FIRST
良いテストの条件として「FIRST」という概念が紹介されています。以下はその略語の意味と説明です。
文字 | 意味 | 説明 |
---|---|---|
F | Fast(早い) | テストは迅速に終わるべき |
I | Independent(独立している) | テストケース同士が依存しない状態を保つ |
R | Repeatable(再現可能) | どんな環境でも同じ結果が得られる |
S | Self-Validating(自己検証可能) | テスト結果がすぐに分かる状態である |
T | Timely(タイムリー) | 適切な時間内でテストが書ける |
この5つの条件を満たすことで、効率的かつ信頼性の高いテストケースを作成することができます。
私たちのQAチームでは、FIRSTの原則のうちいくつかは既に実践できています。例えば、自動テストの実行時間は約30分であり、実行速度を意識した運用を行っています。
しかし、複数環境でのテスト実行が現状では難しく、またテストケースの可読性が低いため、理解に時間がかかるという課題があります。この点についてはまだチーム内で具体的な話し合いが行われておらず、今後の課題として相談していきたいと考えています。
当社のビジョンは『世界一「学びやすく、分かりやすく、続けやすい」学習手段を提供する』ことです。革新的な教育サービスを作り成長させていく事で、オンライン教育分野でナンバーワンの存在となり、世界に展開していくことを目指しています。
プロダクト
- スタディング:「学びやすく・わかりやすく・続けやすい」オンライン資格対策講座
- スタディングキャリア:資格取得者の仕事探しやキャリア形成を支援する転職サービス
- AirCourse:受け放題の動画研修がついたeラーニングシステム(LMS)
KIYOラーニング株式会社では一緒に働く仲間を募集しています
Views: 0