OMAKASE BDD

AGESTの次世代QAエンジニアが
BDDの導入からリソース管理までサポート

こんな課題はありませんか?

高いコードカバレッジと品質とのギャップ

開発者テストの品質の不確かさ

テスト内容の透明性の不足

テストコードのメンテナンス工数肥大化

これらの課題はAGESTの「OMAKASE BDD」で解決できます!

サービス概要

BDD (Behavior Driven Development) とは?

BDDは自然言語でソフトウェアの振る舞い(シナリオ)を記述し、このシナリオに基づきテストコードを作成・実行することで、テスト内容が直感的に理解しやすくなる手法です。

BDDによって得られるメリット

通常の開発者テストではテストコードからテスト内容を把握する必要がありますが、BDDでは自然言語で書かれたシナリオとテストコードを対応付ける為、非エンジニアでもテストの内容が把握できます。

その結果、以下のようなメリットが得られます。

  • 非エンジニア(エンドユーザや品質保証チームなど)、エンジニア間の認識齟齬の減少
  • 非エンジニアによるテストケースの作成
  • 仕様誤り・漏れの早期発見
  • テストのパス数からの進捗の可視化
  • テスタビリティの向上

BDDの導入で解決される課題

OMAKASE BDD の実施プロセス

AGESTの強み

1. AGESTの次世代QAエンジニアによるBDDのサポート

当社の次世代QAエンジニアは、開発と品質保証の知識を組み合わせてBDDを支援します。

開発スキルとQAスキルを活用した、開発者テスト工程で適切なテストケースを作成することにより、BDDで発生しがちなエッジケースなどのテストケースの抽出不足を解決します。

2. AGESTの独自ツールとプロセスによるリソース管理の効率化

BDDで発生しがちな課題であるテストケースやテストコード管理の複雑化に対応するため、当社では独自の管理ツールとプロセスを提供します。

これにより、仕様の追加や変更が継続的に行われる開発でも、メンテナンスの持続性を確保できます。

※次世代QAエンジニアとは?

現代の開発では、単なるコーディングやテスト専門の役割ではなく、開発と品質保証の両方のスキルを持つエンジニアが求められており、AGESTではこれを「次世代QAエンジニア」と呼んでいます。

次世代QAエンジニアは開発・QA両面の知識を持ち、開発段階からプロジェクトのQAをサポートします。

導入事例

事例①

導入対象
  • 開発手法:ウォーターフォール
  • テスト対象機能:新規機能
  • 対象レイヤー:バックエンド
  • テスト粒度:AP
導入背景
  • 複雑な要件に対して、テストの工期があまりとられておらず品質に不安があった
  • 開発者のテストに対する知見が乏しく、テストの漏れを懸念していた
実施作業
  • テストケース作成
  • テストコード実装
  • 独自ツールの導入
お客様の声
  • 独自ツールの導入により、短期間でも、品質担保に十分なパターンのテスト作成が行えた
  • 次世代QAエンジニア参画により開発と並行しながら質の高いテストを作成、実施することができた
  • 進捗状況をテストのパス数から可視化できるようになった

事例②

導入対象
  • 開発手法:アジャイル
  • テスト対象機能:開発済み機能
  • 対象レイヤー:バックエンド
  • テスト粒度:パブリック関数単位 ※1
導入背景
  • リリース前後に不具合が大量発生しており、多くは仕様の考慮漏れが原因であり対策が必要となっていた
  • 開発者テストでは下記問題があった
    -適切なアサーションがされていない、正常系の1ケースしかないなど品質が低い
    -テストコードからの確認観点が読み取りにくく不足に誰も気づけなかった
実施作業
  • テストケース作成
  • テストコード実装
  • 独自ツールの導入
お客様の声
  • 開発済みの機能へのテストが充実し、新たな不具合を発見することができた
  • 開発者テストの確認観点が明確となり、レビュー効果が向上したことで漏れのないテストができた
  • テストケース作成時にあいまいな仕様やエッジケースなどの確認、明確化により仕様の考慮漏れを検知することができた

※1 当初はAPI単位のテストを予定していたが、ひとつのAPIが多くの挙動を含んでおり、テスト粒度を下げた方が漏れなくテストしやすいと判断したため、パブリック関数単位となった

よくあるご質問

Q. OMAKASE BDDを適用すべきテスト工程はどこ?

A. 開発者テスト工程です。早期から導入いただくことでシフトレフトによる品質向上が実現可能となります。

Q. 通常の単体テストとの使いわけは?

A. 単体テスト(コードカバレッジを高めるテスト)は、BDDより高速で細部までのテストが可能です。そのため、コード内部の詳細なテストを行いたい場合は、単体テストの方が有効です。

Q. 対応する開発言語は?

A. Python、JavaScript、Java、C#、PHP、Ruby、Kotlin、Go、Rust等、多くの言語に対応しています。
他の言語についてもまずはお問い合わせください。

Q. 既存製品の仕様変更やサービス追加などの改修・追加開発時での導入は可能か?

A. 可能です。重要度の高い箇所から少しずつ導入していくことで、無理なく効果をあげていくことができます。

Q. 導入に向けたトレーニングやサポートは提供されるか?

A. はい。導入および継続的に実施いただくためのトレーニングやサポートを提供いたします。

関連リンク

BDDについて ~ ソフトウェアの振る舞いに焦点を当て、要件を明確にし、コミュニケーションを改善 ~(外部サイト)

本記事ではBDDの特徴やメリット、進め方について詳しく説明します。

エンジニアリングを進化させる品質メディア「Sqripts」
https://sqripts.com/2023/11/07/76822/

TDDとBDD/ATDD(1) TDDはテスト手法ではない(外部サイト)

本記事ではBDDやATDDとは何か、どのように活用すれば良いのかをご紹介します。

エンジニアリングを進化させる品質メディア「Sqripts」
https://sqripts.com/2023/07/03/54058/

ソフトウェア開発におけるアジャイルテストとは?(外部サイト)

アジャイル開発とは変化するビジネス要件に素早く対応するためのソフトウェア開発手法です。この記事では、その重要な一部であるアジャイルテストについて詳しく説明します。

エンジニアリングを進化させる品質メディア「Sqripts」
https://sqripts.com/2023/08/14/62244/