読者の皆様へ: 皆様からの依頼を受け、重要な情報を維持したままノイズを減らす機能を開発しました。興味のあるトピックを選択しメールとウェブの通知を受け取りましょう。
テスト自動化には時間と注意が必要だが、正しくは実現すれば、投資する価値がある。Karishma Kolli氏は自動化をやり過ぎず、ニーズと要求に注力することを推奨している。きれいで簡単に読めるコードを維持することはテストをメンテナンス可能にするためにとても重要だ。
ソフトウェア開発者であるKarishma Kolli氏は、Fall Online Testing Conference 2017でテスト自動化の神話解体について話した。InfoQはこのカンファレンスの様子をインタビューや記事で紹介している。
InfoQは氏にインタビューし、テストツールやスキル、テスト自動化、自動テストで注目するべき点について話を聞いた。
InfoQ: 適切なテストツールを選ぶことについてアドバイスをお願いします。どのような条件で探すべきでしょうか。
Karishma Kolli: テストツールの選択はビジネス/テストのニーズに依存します。例えば、ある種のアプリケーションにとって性能はとても大事です。しかし、他のアプリケーションにとってはそれほど優先度は高くありません。負荷やUIについても同じことが言えます。
対象とビジネスインパクトに依存するのです。
保有するスキルセット、予算、時間もツール選択に影響します。ソフトウェアの世界には常に時間軸と締め切りがあり、短い時間軸ならシンプルなものを選択するかもしれません。それが、市販ツールであっても、です。
InfoQ: テストの種類によって必要なツールは違います。多様なツールとスキルセットをどのように管理したらいいでしょうか。
Kolli: とても単純です。異なるテストツールのニーズについて理解したら、ツールを管理するのは問題になりません。私たちはさまざまなツールとスキルセットを管理しています。それは難しいことではありません。
Thoughts on Test Automation in Agileという記事で、Rajneesh Namta氏は、自動化対象を慎重に決める理由を説明している。
自動化のための自動化をするべきではありません。新しいテストを追加する前にメンテナンス性や実行時間のような点について考慮するべきです。自動テストスイートにチームが追加するテストはプロダクションのコードベースになります。それゆえ、他のコードベース同様にメンテナンスされる必要ながあります。複雑すぎるテストやメンテナンスが難しいテストを追加でするとチームへのフィードバックのサイクルが遅くなります。
InfoQ: チームはテスト自動化にどの程度時間を割くべきでしょうか。十分な時間を割いているか、あるいは時間を使い過ぎか、どのように判断すればいいでしょうか。
Kolli: 最初、テスト自動化には時間がかかります。しかし、フレームワークが準備できたら、多くの時間を投資する必要はありません。普通は、ひとつのチームがひとつかふたつの手動のQAを持っているのなら、ひとりのSDETが自動テストのニーズを汲み取るべきです。もちろん、どの程度のテストが自動化できるのか、どのようなアプリケーションなのかに依存して、さまざまな状況があるでしょう。
例えば、UIのすべてを自動化しようとするなら、自動化に必要な時間以上を使っていることになります。
Dave Farley氏はAutomated Acceptance Testing Supports Continuous Deliveryという記事で、UIを記録しプレイバックするシステムは使うべきではない、と書いている。
UIを記録しプレイバックするシステムは、その性質上、UIがテストにフォーカスしていることを前提とします。システムがユーザーの望みに沿った動きをするかどうかは気にしません。これは、技術に注目したテストであり、振る舞いに注目したテストではないのです。その結果、テストはより脆弱になり、相対的に小さな変更で壊れやすくなります。なので、私はつかいません。
InfoQ: UIを記録しプレイバックするシステムについてはどのように考えていますか。
Kolli: 個人的にはファンではありません。"どんなサイズにも合う"というのと同じで、現実には私たちほとんどには合わないのです。UIを記録しプレイバックするシステムは独自のニーズに対処できません。壊れやすいテストであり、自動テストに対して信頼をおくことができないでしょう。
InfoQ: 自動化からどんなことを学びましたか。
Kolli: 自動化し過ぎてしまうことは簡単に起きる、ということがわかりました。
ニーズと要求に注目することが重要です。
例えば、クライアントの条件の領域をテストする、という要件なら、2%のユーザーしか使っていない機能に時間を投手する必要はないでしょう。
同時に10万のユーザーをサポートするという要件なら、11万のテストをする必要はありません。
自動化の仕組みをメンテナンスするのは大変そうではないかもしれないですが、コードが成長するにつれ、メンテナンスは複雑になります。きれいで読みやすいコードを維持するのが重要です。
レポートや構成のようなちいさな点は無視しがちですが、些細な点に注意を向けると価値ある資産になります。
InfoQ: 自動テストで注目するべきことは何でしょうか。近い将来何が起こると思いますか。
Kolli: 自動テストの重要性を多くの企業が認識しています。テスト自動化はローカルコンピュータ上での記録とプレイバックの仕組みからクラウドでの完全なカスタムメイドのテストスイートへと進化しています。
人工知能の開発によって、テスト自動化はより信頼性が高まり、効果的になるでしょう。SririやGoogleに似ています。彼らは学習し進化し、声の違いを認識したりします。AIはソフトウェアエンジニリングにも使われるようになります。コードのパターンやエラーを特定したりするでしょう。
AIでテスト自動化も開発の一部に統合されるかもしれません。
Rate this Article
- Editor Review
- Chief Editor Action