【活動レポート】@IT ソフトウェア品質向上セミナー 2019夏 シフトレフト、自動化でテストと品質保証はどう変わるのか

@IT様のセミナーに参加させていただきましたので、そちらのレポートとなります。

@IT ソフトウェア品質向上セミナー 2019夏 シフトレフト、自動化でテストと品質保証はどう変わるのか
2019/06/25(火)開催 @イイノホール&カンファレンスセンター(東京)

シフトレフト、自動化でテストと品質保証はどう変わるのか…

主に自分が理解した要約と、考察になります。
講演者自身の意図等と異なる可能性がございますのでご了承ください。
また、自分の曲解、誤認等もあるかと思います。当情報をご利用された上での損害等に責任は負いませんのでご了承ください。

なお、講演者様、講演企業様と弊社の直接の関係はございません。
ご興味やご質問がある方は、直接コンタクトください。

1. DX時代に目指すべき品質向上とテスト

グロース・アーキテクチャ&チームス株式会社
代表取締役 鈴木雄介氏

DX時代はスピード感が必要。そのため、ウォーターフォール開発よりアジャイル開発が有効になるケースが多い
「開発」そのものの効率化も大事だが、一番大事で効果的なのは、ウォーターフォール開発で時間がかかる工程を、いかに組織としてなくせるか、となる。

開発〜テスト〜リリースは様々な効率化が既にされている。
時間がかかるのは、概算見積、稟議、要因計画などの調整ごと。
価値を産み出す「実装&テスト」工程の時間の割合は全工程の20%〜35%しかなく、ここに注力できるような仕組みを作っていかないといけない。

私はウォーターフォール開発に比べると、アジャイル開発の方がくるくるサイクルを回すので「ゆるい」イメージを持っていましたが、実際は逆とのこと。(恥ずかしながら、認識違っていました。。)

アジャイル開発は「要件確定〜リリース」を短いスパンで回していくため、ゆるい要件では開発に着手しないし、例えば2週間とかのスパンで開発〜テスト〜リリースに向かったりするので、ものすごくタイトなスケジュール感で活動することになる。

2. アジャイル開発で品質の底上げをするための静的解析

日本シノプシス合同会社
ソフトウェア インテグリティ グループ シニア セールスエンジニア 伊藤俊廷氏

バグの検知は、工程が早ければ早いほど手戻りが少ない。(工程を前工程(左側)にシフトして行っていこう=シフトレフト)
特に、アジャイル開発の場合は手戻りしている余裕も少ないため、いかに早い工程で検知できて対応できるかが大事。
となると、「プログラムコーディング中に静的解析を行ってバグを潰してしまおう!」というなる。
その製品がsynopsys社のCoverity。

シノプシスのSAST(静的解析)Coverityはソースコード内の弱点や脆弱性を検出して排除するツールです。…

かなり高度な解析ができるそうで、性能負荷試験であるヒートランを試しても発見できないような異常系のバグを、このツールだとコーディング時点で発見できるそうです。
例えば、異常時のデータベースのクローズ処理。ヒートランをしても異常ケースを同時に起こすことは現実的に難しかったりしますが、コーディング上、考慮がもれていることが発見できることで、バグが見つけられる。

素直に、一エンジニアとして利用してみたいツールです。

3. セキュリティ診断のシフトレフトを実現するための理想と現実 ~開発とセキュリティを両立させるためのソリューションの活用法を解説~

テクマトリックス株式会社
ネットワークセキュリティ事業部 第2技術部 サービスエンジニアリング課 櫻井厚雄氏

セキュリティが大事なのは皆さん分かっているが、アプリケーション開発者の立場からすると忙しくて手が回らないというのが現実
しかし、セキュリティを担保するには、アプリケーションを一番よく知っている開発者自身が参画していかないと、量の面でも質の面でも厳しい時代が来ている。

とすれば、こういったセキュリティ確認のハードルを下げるのが重要。
早期に発見できる、自動でできる、容易に使用できる(ツール)であることが大事。
この製品がVeracode。
静的解析サービス(クラウド型)で、バイナリをアップロードすることでも解析が可能とのこと。

テクマトリックス株式会社

クラウド型 アプリケーションセキュリティVeracodeのご紹介…

4. 【DevSecOpsで解決】高速開発とセキュリティの両立

NRIセキュアテクノロジーズ株式会社
DXセキュリティ事業本部 セキュリティインテグレーション一部 担当部長 工藤眞一氏

株式会社ユービーセキュア
営業・マーケティング部 部長 最首壮一氏

アプリケーションのセキュリティ診断を行った結果、危険(脆弱性)が発見される割合はここ10年くらい変わっていない。(30%前後)
対策情報自体は増えているものの、アプリケーションの規模が大きくなったり、プログラミング外注で統制をとることが困難であったりと、課題がまだまだあるという証拠。

開発工程の随所にセキュリティ対策を行うよう体制を作っていく必要があると考えている。=DevSecOps。

5. AIに向いたテストと活用の留意点

株式会社スクウェア・エニックス
テクノロジー推進部 シニアAIエンジニア 太田健一郎氏

テスト工程にAIが活用できるか?というお話。
結論としては「今はまだ、使えるものがあまりない」。

ロジック分岐などのテストであれば、既存のツール等を利用する方が使い勝手も結果もよい。

AIが得意とするのはモンキーテスト的(適当にたたいてバグを発見する手法)なところかもしれないが、実は、AIがバグを見つけてもよく分からないケースも多い。
例えば、AIがゲームをしてバグを見つけた。しかし、そのケースを確認するのに30分の操作動画が残っているだけ。結局、何がトリガでバグを踏んだのかが分からない。
優秀なテスターは最短手順での再現手順を作れる。まだまだ、優秀なテスターの存在価値は高い。

今できることは、AIの技術要素や土台をしっかりとつかんでおくこと。
よい製品が出てきたときに、どこまで使えるのかをジャッジできるようになるはず。

総括

DX(デジタルトランスフォーメーション)と叫ばれて久しいですが、実際には何をしたらよいのかが分からないことも多いと思います。
また、「いざこれをやるぞ!」となっても、しっかりとした開発手法を理解していないと実現できないのも事実かと思います。
そのような残念なことになる前に、先んじて色々な知識を得ておくのは非常に大事なことだとあらためて感じました。

費用対効果をよく見て、自動化するところはその特性をしっかりと理解した上で取り入れる。
そもそも関係者全員がしっかりとコミュニケーションをとり対応していく。
お互いの組織で責任を押し付け合うのではなく、協力しあってよい形を創っていく。

この「組織を横断して協力し合ってよい形を創る」というのは、日本人に向いている特性なのではと感じた次第です。
実際に組織にいると縦割り社会で難しいものがあるのは身に染みていますが、日本人の気質的には本来そういう特性なのではないかな、と。組織的な問題であれば、組織を変えればよいだけのはずです。

この時にご紹介のあった仕組みなど、便利なものはしっかりと見極めて取り入れ、無駄なことはせず、クライアント様にとって付加価値のあることにどんどん注力していかないといけないな、とあらためて感じた次第でした。

関連リンク

シフトレフト、自動化でテストと品質保証はどう変わるのか…

シノプシスのSAST(静的解析)Coverityはソースコード内の弱点や脆弱性を検出して排除するツールです。…

テクマトリックス株式会社

クラウド型 アプリケーションセキュリティVeracodeのご紹介…

記事情報や役立ち情報を発信します!
Click to Hide Advanced Floating Content
Click to Hide Advanced Floating Content