SHOEISHA iD

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

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

Developers Summit 2023 セッションレポート(AD)

アジャイル・DevOps時代に効く! 20年以上のテスト自動化経験から生まれたアシスト流アプローチ

【9-D-7】DevOps・アジャイル時代に効く! 20年以上のテスト自動化経験から語る「アプリ品質と開発スピード」両立へのアプローチ

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

テストやデリバリーの自動化、セキュリティのシフトレフト……活用シーン別にみる効果

 ここからは活用シーンごとに課題と効果を見ていこう。

活用シーン①:テスト設計とテスト自動化

 テストを自動化するにあたり「自動化対象となるシナリオが決まらない」。逆に「全てのテストケースを実施する」ために非効率で時間がかかってしまうこともある。そこでアプリケーションや構造の可視化を行うことで、どの機能を改修するとどこに影響があるのかを把握し、テストで注力すべき部分が明確化してくる。

 結果的にテスト自動化対象の選別が経験や勘といったものではなく、ツールを通じて効率的かつ正確に行えるといった効果が得られる。具体的に見ると、プログラムの変更分析にはChangeMiner、テスト自動化にはUFTを用いる。

図:活用シーン①
図:活用シーン①

活用シーン②:セキュリティのシフトレフト

 日々脆弱性が発見されており、開発段階でも脆弱性診断が必要だ。しかし脆弱性診断を開発の最終段階となるリリース直前に行うと、問題を発見しても改修の手戻りが大きくなり、コストもかかってしまう。そこで「シフトレフト」、いかに早い段階で実施していくかが課題となっている。

 実際にはコーディング段階でSASTツールで脆弱性チェックを自動化、加えてCIツールと連携することでコードのコミットからレビューまで自動化する。また指摘された課題の真偽も診断する。そして結果的にシフトレフトが実現する。つまり開発の早期段階で脆弱性の問題を発見できて、改修も効率的にできる。開発者は開発に専念できるようになる。

図:活用シーン②
図:活用シーン②

 具体的には、開発者がバージョン管理ツール(GitLab)にコードをプッシュやコミットすると、それをCIツール(Jenkins)にフックし、そこからソースコード解析ツール(Fortify SCA)に実行命令をかけ、解析結果が開発者に戻る。これにより大きくリードタイムを削減することが可能となる。

活用シーン③:アプリケーションデリバリーの自動化

 テストと本番で環境に差があると、リリース前のテストをクリアしても、本番環境で問題が生じる場合がある。またUIのテストケースが多く、リリースまでにテストケースを網羅できないという課題がある。そこでテスト環境構築手順をコード化(IaC)し、環境構築作業を自動化することが有効となる。結果的にテスト、検証、本番で同じ環境の構築が可能となる。また膨大なUIテストを自動化できて、コストがかかりがちなUIテストの省力化を実現できる。

図:活用シーン③
図:活用シーン③

 具体的には、活用シーン②同様に開発者がバージョン管理ツール(GitLab)にコードをプッシュまたはコミットすると、そこからCIツール(Jenkins)を通じて構成管理ツールに渡り、ステージング環境が構築される。続いてUIテスト(UFT)を実行し、結果を開発者に戻す。ここでもリードタイムが削減し、開発者は開発に専念できる。

活用シーン④:負荷テストとアプリケーションチューニング

 大規模負荷テストを実施するには負荷テストツールの環境準備が大変で、実運用を想定した負荷テストを実施するのは難しい。アプリケーションチューニングも環境準備の面では同様だ。こうした場合、汎用(はんよう)性のある負荷テストツールが有効だ。アプリケーションサーバーの分析にアプリケーションサーバーにAPMのエージェントを追加し、アプリケーションの遅延状況を把握できるようにする。結果的に、問題解析や改修の時間を削減できたり、運用時の適切な監視項目を割り出すことができる。

図:活用シーン④
図:活用シーン④

 具体的には、負荷テストツール(LoadRunner)で負荷をかける。近年クラウド版も登場し、大規模ユーザーの負荷テストも環境を用意せず実行することが可能となっている。アプリケーションサーバーにはJENNIFERのエージェントをインストールしておき、ここから性能情報を収集し、アプリケーション性能監視やボトルネック解析を行う。これにより性能問題の調査を迅速に行うことが可能となる。

 冒頭に述べた通り、近年では従来通りの品質を維持しつつも開発の高速化が求められており、いかにアジャイルやDevOpsを社内に浸透させるかが課題になっている。どこから着手すればいいか。矢野氏が考える改善ステップとしては、まずはアジャイル研修や各種勉強会などで情報収集を行い、次に社内プロセスの課題を整理し、改善し、同時にCI/CDの技術検証も行いながら、アジャイル開発や基盤構築の自動化も実践していくという順番になる。

図:改善ステップ
図:改善ステップ

 どの企業も今は開発プロセスの自動化に取り組んでいるところだろう。矢野氏の感覚だと「ここ1~2年、本格的なCD/CDパイプラインにチャレンジしているお客様が増えてきていると捉えています」と話す。また矢野氏は「DevOpsの取り組みは最初のきっかけと改善サイクルが重要です。我々アシストでは最初のステップとその後のステップアップをご支援させていただきたいと思っております」と述べてセッションを締めた。

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

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

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

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

提供:株式会社アシスト

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17527 2023/04/25 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング