ソフトウェア開発の際は「ソフトウェアテスト」によってバグや不具合を見つけて修正してからリリースに踏み切ることが多いといいます。

ただ、近年はブラウザだけでなくモバイルアプリも加わってソフトウェア開発の大規模化・複雑化が進み、テストの比重は年々大きくなってるとのこと。

今回から始まる連載では、ノーコードでソフトウェアテストの自動化を実現させる、AIテスト自動化プラットフォーム「MagicPod」を運営する株式会社MagicPodのメンバーに、「ソフトウェアテスト自動化の今とこれから」を3回にわたって解説していただきます。

第1回目では、長年ソフトウェアテストに関わってきた経験を持つ、MagicPodのテックリード(エンジニアチームのリーダーとなる役割)である玉川紘子氏に、ソフトウェアテストの種類やテスト自動化の向き不向き、テスト自動化の先に見えてきたことについてご寄稿いただきました。

第2回はこちら
第3回はこちら

ソフトウェアテストとは何か

ソフトウェアテストは、ソフトウェアが正常に動作するかどうかを確認する作業のことで、ソフトウェアの品質を保つために欠かせない工程の1つです。

ソフトウェアテストをおろそかにすると、例えば「ログインできない」「押しても反応しない」「間違ったページに飛んでしまう」といったバグや不具合が起きるサービス・プロダクトの提供につながってしまいます。

そのため、ソフトウェア開発ではソフトウェアテストによってバグや不具合を見つけて修正し、改善した状態でリリースするように心がけています。

ただ、現在主流になっているアジャイル開発(1)では、短期間に何度もリリースが行われるため、その度にテストを実施しなければいけません。

また、ブラウザだけでなくモバイルアプリも加わってソフトウェア開発の大規模化・複雑化が進み、テストの種類が増えることで、その比重は年々大きくなっています。

「それならテストをたくさんすればいい」という話になりますが、そうすると「誰が」「どのようにテストをするのか」という問題が出てきます。

一口にテストと言っても、ユニットテストや機能テスト、回帰テスト、探索的テストなど、様々な種類があります(各テストの内容については後述します)。

機械が得意なテストもあれば、人間でないと実施できないテストもあります。「手動で実施しているすべてのテストを自動化して機械に任せばいい」という単純な話ではありませんし、そもそもテストの設計は専門スキルを持った人が行わないとうまくできません。

1…ソフトウェアを素早く提供することを重視し、小単位で実装とテストを繰り返すシステム開発手法