技術と経験に基づく適切なテスト設計・実施が求められるアジャイルテストをプロに依頼。開発者が本来業務に専念でき、トータルで品質向上を実現
アプリケーション開発、WEB・クラウド開発、組込み開発(ソフトウエア・ハードウエアの設計開発)、 マニュアル制作
- 開発エンジニアがテストまで実施。機能追加を重ねる中で対象領域が広がり、負担が増加。テストの工数に1人月ほどが割かれていた
- アジャイル開発におけるテストへの柔軟な対応と経験を必要とする領域をプロフェッショナルに依頼、開発メンバーが開発に専念できるようになり、全体工程がスムーズに
- 業務を切り分けた結果、これまで見つけられていなかった新たな不具合の発見や顧客評価など全体の開発レベルや品質が向上
1983年の創業以来、「技術で社会に貢献する」という理念のもと、ソフトウェア開発を行っているソーバル株式会社。受託しているAI予測ツールの機能開発案件において、当社の「アジャイルテスト支援」を継続して利用いただいています。今回は、その開発プロジェクトの管理を担当されているシステムソリューション部 システムテクノロジーユニットの課長代理である川崎祥太様に、ご依頼いただいた経緯やサービスの品質、ご満足いただけた点などについて伺いました。
組込み開発に定評あり。AI活用による開発にも注力
はじめに、貴社の事業内容を教えてください。
川崎様:当社はソフトウェア開発を行うエンジニアリング企業として、国内外でトップレベルのお客様の高い要求に応えることで経験豊かな開発技術者を育成するとともに、専門的なソリューションを幅広く培ってきました。
現在は、「電子回路設計」「アプリケーション開発」「スマートデバイスアプリケーション開発」「Web・クラウド開発」「マニュアル制作・Web制作」など多岐にわたるソリューションを提供し、国内でも有数の「組込み開発」の独立系企業として高い評価をいただいております。さらに、自動運転分野・AIを活用した開発など最先端技術への取り組みにも力を注いでいます。
川崎様はどのような業務を担われているのですか。
川崎様:当社に入社して6年ほど品質評価業務に従事した後、開発に異動しWindowsアプリやスマホアプリ、Webアプリなど、幅広く手がけてきました。現在は、常時5~6件のプロジェクトにおいて体制管理や事務処理を担っています。
3人月の機能開発で、テストに1人月が割かれていた
AGESTに「アジャイルテスト支援」をご依頼いただいたのは、どのような課題があったからですか?
川崎様:当社では、ある大手メーカーのお客様からAI予測ツールのシステム開発を、7~8年前の製品リリース時よりアジャイル開発で受託しています。AI学習モデルの開発はお客様の方で行われており、当社ではそのモデルのプロダクトへの組み込みを担当。約3ヵ月ごとに機能追加が行われ、スケジュールはお客様の要望に沿って進めています。
お客様の評価部門へ納品する前に、当社の開発チーム内でテストを行うのですが、3人のエンジニアがいる中でテストの工数に1人月ほど割かれていました。また機能追加を重ねる中でテスト対象領域も広がる一方だったため、約3年前に、評価業務を切り出して第三者に依頼することにしました。
アジャイル開発におけるテストということでの難しさもあったのでしょうか?
川崎様:そうですね。一般的にアジャイル開発だと1週間から1ヵ月程度の期間で繰り返し開発を進めていくスプリントという手法が採られますが、この案件ではお客様が新機能をリリースする3ヵ月ごとを目安に、各人が必要な作業を行っています。
テストを難しくしている一つには、アジャイル開発ということで、機能開発を優先し、ドキュメントを残さずに進めていることがあります。テストのベースとなるドキュメントが整備されていない状態で、テストの専門家ではないエンジニアが開発と並行して行っていたことが、状況をより難しくしていたように思います。
過去のテストパターンからドキュメントを整備
具体的に、AGESTの「アジャイルテスト支援」はどのように行われていますか?
川崎様:当社のチームに1名のテストエンジニアに専任として入ってもらい、日々の定例ミーティング(デイリースクラム)にも参加してもらっています。
開発初期にはテスト対象のソフトウェアはまだ動作しないので、過去に実施してきたテストパターンをルーティン化して、ドキュメントを整備してもらいました。そして開発が進んでいくと、その機能に対するテスト設計を行って、開発を終えたところからテストを実施してもらう流れです。そこでは事前にテストドキュメントを作成する時間的猶予がないため、回帰テストおよびアドホックテストの形で動作検証が行われています。
こうして3ヵ月後の機能リリースに向け、お客様の品質評価部門に渡す前のリリース作業のフローを確立することができました。現在は新規実装機能の機能テストと、不具合修正の動作検証、既存機能の回帰テスト、そしてリリース前動作検証としてアプリの基本性能の検証と不具合修正および影響範囲の検証を行っています。
アジャイルテストを行うエンジニアには、どのようなスキルが必要だとお考えですか?
川崎様:テストエンジニアにはデイリースクラムで、次にどういう機能が入り、それがどういう仕様かをキャッチして、テストのスキルを用いてテスト設計を行ってもらいます。常に開発が動いているので、今どういう状況なのかの把握をテストエンジニアが自ら努め、開発と並行してテストを進めていける素養が大事だと思います。
また仕様が固まった上で開発を進めるわけではないので、テストパターンを洗い出したと思ったところで、また仕様変更や書き換えが生じることもしばしばです。その影響範囲を調査して柔軟に対応する必要があるため、経験がものを言う領域だといえると思います。だからこそプロフェッショナルに専任で依頼する意味があるのだと思います。
開発の手を止めずにテスト結果の修正が可能に。全体の流れがスムーズになった。
AGESTの「アジャイルテスト支援」を利用されたことによる成果を教えてください。
川崎様:開発メンバーがテストに手を取られず、本来の開発に専念できるようになりました。業務を切り分けて、テストを専任で任せられているのは大きなメリットです。以前は開発メンバーがテストを行い不具合が見つかると、そのまま修正に回るので、その後のテスト工程が止まっていました。それが今では、テスト結果による修正を開発メンバーが行うのと並行して、テストも予定通りに進められています。業務を切り分けることで、全体の流れがスムーズになりました。
加えて、専任化によりそれまで見つけられなかった不具合などの発見ができるようになるなど、品質を一段階向上させることができました。実際、お客様の品質評価部門からのご指摘を受けることも減っています。テストで指摘された内容を次の開発に活かすこともできており、その意味でも全体の開発レベルや品質の向上につながっていると思います。
経験豊富なテストエンジニアに依頼することの価値は何でしょうか?
川崎様:AGESTさんのテストエンジニアのレベルの高さが実感できたのは、ドキュメントが整備されていない状態から、足りない情報をヒアリングして、適切なテスト設計を組むことができ、テストを実施してもらえたことです。アジャイル開発においてこうしたことができるのは、経験豊かなテストエンジニアならではだと思います。
また、リリース前のテストプロセスが明確になったことで開発している機能に関するテストの工数も読めるようになり、スケジュール管理の精度が上がりました。以前は担当者の勘によるなど属人化している部分もあり、そのためにズレが生じやすかったのです。それも、テストエンジニアに依頼する価値ですね。
そもそも開発者はとにかく作ることに集中しますが、テストエンジニアにテスト観点でシステムを見てもらうことで視野が広がり、エラーパターンなどの観点も見る目が養われてきていると感じます。
今後の展望をお聞かせください。
川崎様:この案件のチーム体制としてテストエンジニアを専任で置くことが定着しており、今後も引き続きこの体制で行っていきたいと思っています。他の案件でも、開発メンバーがテストまで行っている場合、抜け漏れなども生じやすくなっています。今回の案件で、チーム組成においてテストの専任人材を配置することでスムーズかつ質の高い開発につながると実感しましたので、アジャイル開発に限らず、ウォーターフォール開発であっても、お客様と調整した上でなるべく専門家への第三者検証を依頼するようにしていきたいですね。