SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

テスト自動化研究会の『システムテスト自動化 標準ガイド』を15倍あなたの力にする話

『システムテスト自動化 標準ガイド』の第7章 ~ テスト自動化に潜むメンテナンスの罠

テスト自動化研究会の『システムテスト自動化 標準ガイド』を15倍あなたの力にする話 【第6回】

  • このエントリーをはてなブックマークに追加

 本連載は、昨年12月に刊行された書籍『システムテスト自動化 標準ガイド』の翻訳あるいは執筆を担当した方に、担当した章について自身の体験談などを交えつつ、同書の魅力や開発現場で役立つポイントなどを語っていただきます。今回は第7章「保守性の高いテストを構築する」の翻訳を担当された浦山さつきさんが、テスト自動化に潜む罠とその対策を、自身の現場体験を交えて解説してくださいます。(編集部)

  • このエントリーをはてなブックマークに追加

システムテスト自動化 標準ガイド

Amazon /  SEshop /  その他
システムテスト自動化 標準ガイド
著者 : Mark Fewster、Dorothy Graham
訳者 : テスト自動化研究会
出版社: 翔泳社
頁数 : 488ページ
定価 : 3,800円(+消費税)
判型 : A5版
色数 : 1色
刊行日: 2014年12月16日
ISBN: 978-4-7981-3921-0

現場体験をお話しします

システムテスト自動化 標準ガイド』(通称『ギア本』)で第7章「保守性の高いテストを構築する」の翻訳を担当した、テスト自動化研究会の浦山さつきと申します。

私はこれまで、システムテストレベルでの自動テスト担当者として、自動テストの保守・運用に携わってきました。翻訳しながら「あのとき、こんなことがあったな」「こうしたからうまくいったのか」と思い返すことがたくさんありました。一方で、残念なことに、第7章には原著者が現場で体験した話(体験談)は書かれていません。そこで本記事では、この章に関係する私の体験談を紹介したいと思います。第7章のテーマである「テストのメンテナンス」から飛躍した話もありますが、テスト自動化の現場で実際に起きたことということで、みなさんが自動テスト構築をされるときの参考にしていただけたら幸いです。

テストのメンテナンスに影響を与える要素

ギア本の第7章では、テストのメンテナンスに影響を与える10個の要素を、「良い考え?」「問題」「解決策」という3段階で説明しています。ここでは、第7章で説明しているテストのメンテナンスに影響を与える10個の要素の中から4個を選んで、それぞれに関係する私の体験談を紹介します[1]

[1]: 要素の詳細はギア本をご覧ください。

テストケースの実行時間(ギア本7.2.4項)に関係する体験談

テストのセットアップや後片付けが何度も発生すると、時間がかかってしまいます。だからといって、複数の短いテストケースをつなげて長いテストケースにまとめてしまうと、別の問題が発生します。テストの途中で欠陥が見つかった場合、それが修正されるまで、後続の欠陥を見つけることができないのです。ギア本ではこれを「『入れ子型欠陥』シンドローム」として紹介しています。

「入れ子型欠陥」シンドロームは、保守以外のシーンでも現れます。次に紹介する体験談は、私がそうした保守以外のシーンで「入れ子型欠陥」シンドロームに遭遇したケースです。

その現場では、実行に10分かかるテストを自動化する作業に60分必要だった。それは、過去に何度も作成した経験から明らかだった。

ある日、実行に30分かかるテストの実装を頼まれた。実行時間が3倍なので、自動化にかかる時間も3倍であると考え、依頼主に180分かかると伝えた。しかし、予定した時間になっても、自動テストは半分しか完成していなかった。完成したのは、着手し始めて280分後であった。

新しく作成した自動テストは、完璧に動作するとは限りません。むしろ、ほとんどの場合、何かしらの欠陥が含まれています。そのため、自動テストもテストをしなければなりません。実行時間が10分のテストを自動化するときには、私は次のような手順で作業を行っていました。

まず、20分かけてテストを実装しました。できあがったテストを試すため、テストを実行しました。すると、5分実行したところでテストに欠陥が見つかりました。そこで15分かけて修正を行い、再度テストを実行しました。しかし、もう一息というところでまた失敗してしまいました。15分かけて修正を行い、再度テストをしたところ、ようやく正常にテストが完了し、自動化作業も終わりました。

しかし、実行時間が長くなると、実装するコードが長くなるだけではなく、自動テストをテストする時間も長くなってしまいます。実行時間が3倍でも、完成までの時間が3倍を超えてしまうのはそのせいです。完成までの時間を見積もる際には、自動テストのテストを実行する時間も考慮に入れましょう。

余談ですが、初めてテストを自動化するときには多くの欠陥が入り込みやすくなり、実行時間10分の自動テストを完成させるまでに、数十回の再実行をしなければならないこともあります。まずは短いテストケースを自動化していきながら、システムの癖や自動化のテクニックを習得しましょう。自動テストに紛れ込む欠陥を減らすことができるようになってから長いテストケースに挑むことで、完成までの時間を短縮することも可能です。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
テストの相互依存性(ギア本 7.2.6節)に関係する体験談

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
テスト自動化研究会の『システムテスト自動化 標準ガイド』を15倍あなたの力にする話連載記事一覧

もっと読む

この記事の著者

浦山 さつき(ウラヤマ サツキ)

エンプラ、Web、組込みシステムにおいて、システムテストのテスト自動化を中心にテスト全般を担当してきた。現在は株式会社ウェブレッジにて、テスト自動化アドバイザーや社内教育を担当している。自動テストが「Garbage In Garbate Out」にならないよう、テスト設計の勉強にも力を入れている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8884 2015/10/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング