リリース前の不具合チェックを自動化!スモークテスト用のツール(Lambdatest)を導入しました
こんにちは。Studyplus for Schoolのエンジニアをしております、石上です。
今回は、エンジニアが日々行っている技術改善についてお伝えします。なるべくわかりやすく書いていきたいと思っております。
今日は、スモークテストの導入について紹介いたします。
テストとは
機能を開発してからリリースするまでの間に、我々は「テスト」という工程を行います。これはその機能が正常に動作するかどうか、あるいはその機能によって他の機能が不具合を起こさないか、を確認する工程です。
その工程でもっともわかりやすいのが、実際にユーザーとしてその機能を使ってみるテストです。我々の場合はこれをリリース前に必ず開発グループ全体で行い、バグ(不具合)の発見に努めています。
対して、自動テストというものがあります。これは、人間ではなくプログラムが特定の機能をテストするものです。
我々エンジニアは、開発と同時に、小さい単位で自動テストを書いています。たとえば最近リリースされたコンテンツ配信機能であれば、以下のような自動テストを書きます。
「33文字以上のコース名を入力するとエラーになること」
これによって、開発したプログラムがちゃんと要件を満たしていることが保証されます。
スモークテストとは
実は私も最近知ったのですが、テストの種類に、スモークテストというものがあります。元々「電子機器での発煙がないかをテストしていたこと」を起源とし、そこから転じて「ソースコードの開発・追加・修正を終えたソフトウェアが動作する状態にあるかを確認するテストのこと」となったようです。
先の小さい単位のテストと違うのは、よりクリティカルな機能に限定して、実際にユーザーが使うような自動テストを行う点です。
具体的には、ユーザーがログインしてログアウトするまでの一連の流れをテストしています。
「ログインボタンが表示されること」
↓
「ログインするとユーザー名が表示されること」
↓
「ログアウトボタンを押すとログアウトされること」
ログインとログアウトというのは、他機能に比べて特に不具合があったら困る部分ですので、真っ先にスモークテストの対象としました。
Lambdatest
スモークテストはどうやって行うかというと、リリースの直前に別のコンピュータからアクセスを行い、不具合がないことを確認してもらいます。その別のコンピュータとして使えるようなサービスがいくつかあり、今回は「Lambdatest」というものを選びました。
これによって、ダッシュボードでテストの「成功/失敗」を確認することができます。
失敗するとここでエラーの内容とエラーの収録画面が見られますので、リリース前に不具合を発見することができます。
まとめ
導入塾のみなさまの日々の業務を安定して支えられるように、エンジニアの我々としてはこれからもテストに力を入れていきたいと思っています。今後ともStudyplus for Schoolをよろしくお願いいたします。