「第3回 ソフトウェアテストセミナー」レポート

#4 トークセッション パッケージソフトのテスト戦略

この記事を読むのに必要な時間:およそ 2 分

最後のセッションは「パッケージソフトのテスト戦略」と題し,アリエルネットワークのCTOである井上誠一郎氏と同開発部ソリューショングループの佐藤寛之氏,そしてモデレータとしてバルテスのテスト技術開発部 部長である石原一宏氏を迎えたトークセッションが行われました。

左:アリエル・ネットワーク株式会社 CTO
井上 誠一郎 氏
右:アリエル・ネットワーク株式会社 開発部 ソリューショングループ
佐藤 寛之 氏

イーソル エンベデッドプロダクツ事業部 マーケティング部 部長 金子健氏 アックス 代表取締役社長 竹岡尚三氏

バルテス株式会社 石原 一宏 氏 [モデレータ]

プログラマとテスト技術者のコミュニケーションが品質改善を実現

最後のセッションはアリエルネットワークの井上誠一郎氏と佐藤寛之氏の2名から,CTO,そして現場のエンジニアという視点からソフトウェアの品質改善への取り組みについてプレゼンテーションが行われました。その後,第三者ソフトウェアテスト専門会社であるバルテスの石原一宏氏をモデレータに迎え,トークセッションが行われました。

最初にプレゼンテーションを行ったのは,アリエルネットワークの創業メンバーであり,CTOとして技術陣を率いる井上氏。そのプレゼンテーションの冒頭で,当初テスト専任チームを構築することに反対していたと話します。以前努めていた企業のテスト部隊の印象がよくなかったことがその背景だということです。また,アリエルネットワークはプログラマが中心の会社で,仕様書もあまり作られていなかったとのこと。そうした状況で仮にテスト専任者を迎え入れても,何をやればいいのかわからないのではないかと危惧していたことも理由だったと述べます。

ただ現在はテスト専任チームを構築したことのメリットを感じているようです。その理由として井上氏が挙げたのは,プログラマに気付きが生まれるということ。あまり仕様書がないことから,テスト担当者とプログラマの間に積極的なコミュニケーションが生まれ,それによって信頼性だけでなく,使いにくい,あるいは仕組みがよく分からないといったフィードバックがプログラマの気付きにつながり,プロダクトのクオリティが向上しているということです。

続けてアリエルネットワークのテスト管理システム導入の経緯が紹介されました。当初はテキストファイルでテストスペック文書を記述し,それをソースコード管理システムに登録していたということですが,テスト技術者が増えて非効率な部分が生じたこと,また統計情報が取りにくいといった理由から「TestLink」が導入されたそうです。バグトラッキングシステムの導入も考えていたとのことですが,TestLinkであれば1000件のテストスペックのレポジトリを作成し,その中から重要な500件を抽出してプロジェクトが作成するといった使い方ができることに触れ,テスト管理システムを導入してよかったと述べられました。

最後に言及されたのはリリース管理。ソフトウェアにおいて,リリースできる品質かどうかの判断は非常に難しいもの。バグ報告件数が減少したことを受けて一定の品質に達したと判断し,リリースするというケースは多いと思います。これに対して井上氏は「エンジニアやテスト技術者が疲れてバグ報告件数が減っているだけじゃないか」と疑問を呈します。

そこでアリエルネットワークが採用したのがタイムボックスリリースで,GnomeやUbuntsuなどといったオープンソースプロジェクトで採られている手法です。これは数カ月に1度などリリースのタイミングを決め,バグが残っているのであれば,関連する機能を省いてでもリリース日を厳守するというもの。リリース日に合わせて品質を調整するわけで,逆転の発想と言えるでしょう。⁠毎回同じスパンでリリースしているため,開発者の中でリズムが生まれている」という井上氏の言葉から,タイムボックスリリースがアリエルネットワークに根付いていることが伺えます。

過剰なテストが生み出す弊害

同じくアリエルネットワークで,Lotus Notesの移行支援や自社プロダクトのアドインの受託開発を行っているという佐藤氏は,品質を犠牲にせず,どれだけテスト工数を削減するかが大きな課題だと感じているとのこと。

「テスト不足が議論されることは多いが,テスト過剰について取り上げられる機会は少ない」という佐藤氏。テストが過剰であれば,スケジュールや予算の超過といった弊害が生じ,大量の些細なバグが報告されているような状態になると,本当に直さなければならない重大なバグが埋没してしまい,見逃しが発生すると指摘します。

テスト過剰を防ぐために佐藤氏が提言するのは「完璧なソフトウェアを目指さない」ことです。⁠達人プログラマ―システム開発の職人から名匠への道」という書籍から「Good Enough Software」という言葉を引用し,残存バグ0件やテストカバレッジ100%が本当に求められているのかを自問するべきだと語ります。

続けて同じ書籍から紹介されたのは「失敗するかもしれないすべてのことをテストしよう」という一文。これには「失敗しそうにないことはテストしてはいけない」という裏の意味があると言い,無駄なテストをやっていないか確認するべきだと述べます。

テスト自動化の重要性にも触れ,⁠自動化されていればテストケースが過剰でも工数全体へのインパクトを抑えられる」とそのメリットを解説。佐藤氏が携わるプロジェクトにおいて,自動化は難しいと思われた環境でも,1年ほど考えた末に実現した例を紹介し,諦めずに模索することの重要性を説きました。

最後に既存の技法や方法論,ツールを盲信せず,テストのやり方は自分たちでテーラリング(仕立て直す)するべきだと語り,プレゼンテーションを締めました。

コメント

コメントの記入