ノンプログラマーでもできる!テスト自動化のはじめの一歩

ノンプログラマーでもできる!テスト自動化のはじめの一歩

みなさん、こんにちは! タカハシ(@ntakahashi0505)です。

先日、ソフトウェアテストの難しさとして、そのテストしなくてはいけないパターンは指数関数的に増えガチ問題という件についてお伝えしました。

ノンプログラマーは知らないソフトウェアテストとその難しさ
少なくないノンプログラマーが、「なんとなく」「適当に」やってしまっているのが、プログラムの「テスト」です。今回は、ノンプロ研で『テスト自動化実践ガイド』の著者でいらっしゃる末村拓也さんをゲストとしておよびして開催したイベント「ようこそ、ソフトウェアの世界へ!」から、テストとその難しさについて考えます。

しかし、本職のITエンジニアのみなさんは、そのテストに立ち向かうノウハウと技術を駆使して、ソフトウェアの開発を効率よく進めています。

そのひとつが「テスト自動化」です。

今回は、ノンプロ研で『テスト自動化実践ガイド』の著者でいらっしゃる末村拓也さんをゲストとしておよびして開催したイベント「ようこそ、ソフトウェアの世界へ!」から、ノンプログラマーでもできるテスト自動化について考えます。

ということで、「ノンプログラマーでもできる!テスト自動化のはじめの一歩」についてお伝えします。

では、行ってみましょう!

スポンサーリンク

テストの自動化とそのメリット

テスト作業を自動でやるプログラムをつくる

テストの自動化」というとややこしいもののように見えます。

しかし、末村さんいわく、そんなに構える必要はないとのこと。

どうするかというと、「テスト用のプログラムをつくる」ことからはじめればよいということでした。

たとえば、スプレッドシートのデータから新しいシートに特定のデータを抽出するというプログラムがあったとします。

プログラムをつくったら、我々は以下のようなことを、手や耳をつかってチェックすることになるはずです。

  • シートがつくれたか
  • 見出しは正しいか
  • 行数は正しいか
  • 合計値は合っているか

その判定をし、その結果をログとして出力するプログラムをつくるのです。

プログラムには「役割」があり、その出力には期待される出力すなわち「期待値」があります。

実際の「結果」がその期待値と一致しているかどうかをチェックするプログラムをつくる、それがテスト自動化の基本です。

テスト自動化のメリットとノンプログラマー

こうして、テスト自動化プログラムをつくっておけば、プログラムを修正したり、機能を追加したりしたときに、すぐにもとの部分の役割は期待通りに動くかどうかをテストできます。

なお、ノンプログラマーの多くは、業務プロセスを自動化していることが多いわけで、「テストという業務」を自動化するという感覚は持ちやすいのではないかということでした。

たしかに、そうだよなぁと思いました。

リファクタリングとチーム開発

リファクタリングと自動テスト

リファクタリング」というのは、あるコードに対して、同じ動作をキープしながらより良いコードにすることです。

通常、世の中のソフトウェアは稼働しながら修正したり、バージョンアップしたりする必要があります。

つまり、コードをメンテナンスしやすい良いコードをつくっておくのが大事です。

多くの場合、一発目に書いたコードが完璧に良いコードということはありませんので、後で気がついたときに良いコードにリファクタリングするのです。

しかし、リファクタリングの作業は必要ですが、売上や利益に直接的につながわるわけではない一方で、プログラムが正しく動かなくなるというリスクをはらみます。

そのリスクを大きく低減するのが、テスト自動化です。

リファクタリングと自動テストはセットなのです。

チーム開発と自動テスト

あるITエンジニアが、新しいチームに参加するとなったとき、まずはテストコードを見に行くらしいです。

なぜなら、テストコードを読むことで、プログラムの役割と期待値を把握することができ、どう動けば正解なのかわかるからです。

自分が書いたコードでなくても、それによって自信を持ってコードの変更をすることができるようになります。

ノンプログラマーがソフトウェアテストの技術を身につけるためにできること

では、ノンプログラマーのみなさんは、ソフトウェアテストの技術を身につけるために、どのような一歩を踏み出せばよいでしょうか。

それは以下2つです。

  1. テストしやすい単位に分割
  2. 自動テストを書いてみる

テストしやすい単位に分割

まずは、テストしやすい単位に分割することです。

プログラムは小さいほうがテストは簡単になります。

もし長いプログラムがあれば、小さく分割して、小さいプログラムの集合に分けます。

小さい単位に分けるときに便利なのが、「関数」です。

役割ごとに関数に分けて、関数単位でテストができるようにします。

自動テストを書いてみる

小さい単位の関数にわけてみたら、それら関数について自動テストのプログラムを書いてみましょう

「ソフトウェアテストの教科書」という書籍も参考になるとのこと、チェックしてみてください。

まとめ

以上、「ノンプログラマーでもできる!テスト自動化のはじめの一歩」についてお伝えしました。

ということで、2回にわたってノンプログラマーのためのソフトウェアテストについてお送りしてきました。

ノンプログラマーの場合、きちんと学ぶ機会に恵まれていませんので、ありがたい機会でした。

ぜひ、活用していきましょう。

引き続き、みなさんがいきいきと学び・働くためのヒントをお届けしていきます。次回をお楽しみに!

この話を耳から聴きたい方はこちらからどうぞ!

タイトルとURLをコピーしました