はじめに
こんにちは!
今年もアドベントカレンダーの幹事やったり、来年もほろよいてっくの開催幹事も頑張りたいQAチームのマネージャになりました、生井(id:riririusei99)です。
今回のテーマは「Autifyを導入したけど、その後どうなったの?」みたいな話を書きたいと思い、そこでAutifyのコミュニティで「コミュニティメンバー実態調査アンケート vol.1」が開催されていましたのでその回答とチームスピリットでの実態を添えて紹介していこうと思います。
Autifyとは&これまでの歩み
Autifyとは「AIの力で品質保証の課題を解決し、素早い開発サイクルを実現する」自動テストプラットフォームツールです。autify.com
合わせて、チームスピリットでの導入については下記のブログで書いていますのでぜひそちらもご確認ください。
ポットキャストでも話しています。
コミュニティメンバー実態調査アンケート vol.1
Q1 - あなたの職種は何ですか?
A:QAエンジニアです。
チームスピリットのQAエンジニアはスクラムチームの開発チームの一員という立ち位置で、機能テストの他にも非機能系のテストも担当したり、スプリント後のテストレポート作成やプロセス改善など、プロダクト品質だけでなくプロセス品質の向上に責任をもつエンジニアです。
Autifyの導入も健全なE2Eテストの構築・運用のための施策になります。
チームスピリットの品質保証については別の記事を書いていますので、こちらの記事をご確認ください。
Q2 - Autifyの使用経験はどれくらいですか?
A:トライアルを始めたのが今年の1月なので、Autify歴はもうすぐ1年になります!
Autifyを使用する前は、SeleniumWebDriver(Java)とBrowserStackを使って自動テストを書いていましたが、特定のメンバーしかメンテナンスができず保守の面で問題を抱えていました。
また、一部ではWebDriverIOを使った自動テストも併用して使っており、こちらは今でも使用しています。
Q3 - テスト自動化のご経験はどれくらいですか?
A:専任の経験はないですが、テスト自動化の経験はそこそこ…
自動テスト作成は作り始める前にあらかじめ運用面で考えておかないと、メンテナンスの面での諸問題を抱える気がしています。
入社したばかりの頃にCIサーバを立てて自動テストの実行環境を用意するとこから携わることができました。いろいろ経験できたのはよかったのですが、サーバのOSアップデートとか考えないといけない等々、本筋とは違う仕事が増えてしまったのも事実です。
Q4 - テスト自動化の対象は何ですか?
A:自社製品である「TeamSpirit WSP」の自動テストを行っています!(英語サイトしかなかった…。)
Q5 - 何を自動化していますか?
A: 主要機能のスモークテストの実装を行っています!
リリース前の回帰テストとして使われる他にも、Salesforceプラットフォームで稼働するアプリなので、プラットフォーム側のバージョンアップの際の検証にも使われるので回帰テストの中でも重要な役割をもつ箇所を自動化しています!
Q6 - 社内でAutify使用者は何人いますか?
A:5人以上で社内でAutifyのユーザはたくさんいます!!
導入時はスクラムチーム1チームに導入していましたが、現在は主に日本の拠点のチームでAutifyの自動テストが作成されています。
メインでAutifyを使うQAエンジニアは4人いて、他にもスポットフロントエンドをはじめとした複数の開発メンバーもAutifyで自動テストを書いています!少しでもAutifyを触ったことがある人は20人います。(投稿時点)
また、複数人が同じシナリオだったりステップグループを触ったりすることがあるのでAutify用のSlackチャンネルを使って情報共有をしたりしています。
ここではステップグループを直した時や、汎用的に使えるJSステップを書いたときなどが話されています。
また、様々なロールのメンバーがこのチャンネルにいるのでならではの知見を得られることができました。
Q7 - JSステップを使いこなせていますか?
A:十分に使いこなせてるが微妙ですが、使ってます!
チームスピリットではAutifyをなるべくシンプルに使うように心掛けています。
なので、なるべくレコード時と変わらないような処理をテストできるように心掛けていますが、プロダクトの性質上時間の経過で画面の情報が変わってしまう部分などにJSステップを使っていたりします。
そういった場合にJSステップを使うことが多いです。
今回はJSステップを使った部分を公開したいと思います。
今日の日付を取得して、必要なところだけ加工して使ってる感じです。
また、Salesforceならではの事象ですが、ログインユーザ(組織)ごとにドメインが違うため、URL遷移した時にシナリオが組織で使いまわせなかったのですが、JSステップを使って遷移先のURLを共通で作れるように工夫するようにしました。(順次載せ替え中)
ステップグループ機能ですでにログインしているのでドメインを取得してから、遷移先URLを作る感じです。
Q8 - 1シナリオのステップ数は平均どれくらいにしていますか?
A:30ステップ以内にできるように頑張っています。
他のメンバーが見た時にわかりやすくするために、なるべく手順を減らすようにチーム内の約束事としています。
そのために「何をテストするか」はあらかじめ明確にしておきます。自分たちの場合は前述した主要機能のスモークテストです。何をテストするのか手順を明確にしたうえで、機能を細かい単位で分割化したり、簡略化することでシンプルなシナリオにするよう心掛けています。
一方で課題もあります。Autifyだけで自動テストを完結するように作っているため、自動テストの準備とテスト後の後片付けもそのシナリオ内で行っています。
その後片付けのステップを作り込む必要があったり、片付け自体がステップ数を使うことがあります。
今後ステップグループを途中に入れられたり、共通の処理をまとめてステップグループとするみたいな機能があると嬉しいです!
おわりに
いろいろ書きましたが、チームスピリットではAutifyの活用という意味ではまだまだ改善の余地があると思っています。(本当はいろんなテストに当て込みたい!)
なので、引き続きアップデートがあればまた記事を書きたいと思います。
今回の記事は自動テストアドベントカレンダー18日目の記事なります。
ありがとうございました。