日本シノプシスのソフトウェア インテグリティグループ シニアフィールドアプリケーションエンジニアである林慶一郎氏は、「品質とセキュリティを高めるための開発プロセスの実現」と題するセッションで、自動化ツールの活用によってテストに要する時間や負担を削減し、さらには全体のコストも削減できることを説明した。
既にさまざまなところで指摘されている通り、「ソフトウェアの問題が見つかるのが後になればなるほど、コストは増大する。逆に、見つけるのが開発の早い段階であればあるほど、コストは低く抑えられる」(林氏)。そして、早い段階でテストを実施し、早期に問題をつぶすポイントは2つあると述べた。
1つは、静的コード解析の自動化。コーディング規約違反や脆弱(ぜいじゃく)性といった機能テスト以前の問題を自動的に検出し、つぶすことだ。「コードの規模はどんどん大きくなっており、人間の頭では追いきれなくなっている。テストを機械的に実施し、全ての条件分岐を追い掛けることで不具合を検出できる」と林氏は述べ、実際に静的コード解析ツール「Coverity」を用いることで、詳細な情報とともに問題を検出できると説明した。
「テストフェーズ以前に静的解析によってコードの問題をつぶすというステップを開発プロセスに取り組むことで、コードレビューの効率化と品質向上、セキュリティ向上を実現できる。コードを書いてチェックインするタイミングで、テスト以前の問題がないかチェックすることをお勧めしたい」(林氏)。そのために、正確性や実用性、「CI(継続的インテグレーション)ツールとの統合が可能かどうか」で製品を選択してほしいとした。
もう1つのポイントは、Webアプリケーションの品質とセキュリティに関するものだ。SQLインジェクションをはじめとするWebアプリケーションの脆弱性を検出する主な手法には、さまざまなデータを投げてレスポンスを基に脆弱性の有無を判断する「動的解析」(Dynamic Application Security Testing:DAST)と、ソースコードを解析する「静的解析」(Static Application Security Testing:SAST)がある。
林氏は「DASTとSASTの良いところを取ったIAST(Interactive Application Security Testing)では、正確に脆弱性を検出し、開発者が容易に修正できる明解な情報を提供できる」とし、日本シノプシスが提供するIASTツール「Seeker」を用い、「Jenkins」「Selenium」と連携させながら脆弱性を見つけ、修正するまでのデモを紹介した。
ソフトウェアの品質とセキュリティをコスト効率良く確保するには、ツールを開発プロセスに統合し、「テストゲート」を設けることが重要だ。ただ、テストゲートは必ずしも開発者の重荷になるわけではない。「低い誤検知で開発者やテスターへの負担を掛けず、従来の開発ワークフローを変えないことがポイントだ」(林氏)という。
丸紅情報システムズ 製造ソリューション事業本部 デバイスソリューション部 システム検証課 テクニカルフェロー 森安正彦氏は、「テスト自動化のいま、eggPlantが新しい時代を切り開く!」と題し、TestPlantがユーザーを対象に行った調査結果などを基に、テスト自動化ツールに求められる役割を紹介した。
TestPlantは、テスト自動化ツール「EggPlant」の開発元だ。そのユーザー企業の調査だから当たり前と言えば当たり前だが、2015年に比べ、テスト自動化の導入割合は確実に高まってきているという。一方で、ユーザビリティテストやパフォーマンス/負荷テストなど、自動化されていない領域も多く残されていることも明らかになった。
森安氏はもう1つ、興味深い試算結果を紹介した。ソフトウェアテスティングコンサルタントとして知られるドロシー・グラハム氏による、テスト自動化がもたらすROIの試算だ。テスト自動化の仕組みを作るには相応の準備が必要だ。従って1回だけテストを行っても、費用に見合う効果が得られるとは限らない。しかし数回テストを繰り返すうちに効果が表れ、手動テストよりも高い効果を得られるようになっていく。
森安氏は「EggPlantは、こうしたテスト自動化による効果を、より早く実感できるよう支援するツールだ」と説明した。特徴は、2システムモデルを採用し、非侵襲的にテストが実行できるため、さまざまな環境に用意に展開できること。そして、独自の画像認識技術によってユーザーインタフェース全体のテスト自動化が可能で、使い勝手に優れていることだ。
またEggPlantは、マルチプラットフォームに対応しており、PCやスマートフォンだけではなく、POSなどさまざまな端末でのテスト自動化も可能だ。既に、車載インフォテイメントシステムのテストやセットトップボックスのリグレッションテストなどに採用されており、「伝統的な開発プロセスはもちろん、DevOpsやアジャイル、シフトレフトなど、あらゆる開発プロセスに導入できる」(森安氏)という。
次回は、「DevOps時代のテスト自動化カンファレンス〜はやく、いいものを届けよう〜」の中からマネーフォワード、リックソフト、アシストの講演模様をお届けする。
Copyright © ITmedia, Inc. All Rights Reserved.