Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SONiCコミュニティにて実施されている品質向上の取り組み テストポリシーや使用されているフレ...

SONiCコミュニティにて実施されている品質向上の取り組み テストポリシーや使用されているフレームワーク

SONiCコミュニティにて実施されている品質向上の取り組み
テストポリシーや使用されているフレームワーク

APRESIA Systems株式会社
大渕 光希

SONiC Workshop Japan 2026
https://sonic.connpass.com/event/385386/

Avatar for SONiC Users Group Japan

SONiC Users Group Japan

June 22, 2026

More Decks by SONiC Users Group Japan

Transcript

  1. 3 SONiC Workshop 2026 ◆SONiCコミュニティのテストケースやテスト用のコードは以下にて管理 ◊ https://github.com/sonic-net/sonic-mgmt ◊ 最初のコミットは2016年2月26日 −

    10年ほど前からテストの自動化に取り組んでいる(ただし、少しやり方が今としては古いかも) ◊ ここ一か月で、マージされたPRが400回越え SONiCコミュニティにおけるテストの重要性
  2. 4 SONiC Workshop 2026 ◆開発工程内のテストのかかわり方 SONiCコミュニティのテスト方針 HLD (High Level Design)

    実装仕様書作成 実装 + テスト実行 レビュー/承認 レビュー/承認 HLDの段階でテストプランを書く必要あり PTFなどのツールを使って、テストを自動化 (結果の判定も含めて) テストケースをコードとして記載しておくことで、 機能追加を実装する場合に、過去に書いたテストも実行す ることで、ソフトウェアが壊れることを防ぐ効果(主観) テストプランを予め書くことで、設計・実装段階での 検討漏れを抑制する効果(主観)
  3. 7 SONiC Workshop 2026 ◆FRRoutingではtopotestsを使い、テストを「仮想環境」で実行 ◊https://github.com/FRRouting/topotests/ ◊topotestsにてできること − トポロジーの定義(以下) −

    各テスト対象の装置の設定の投入 − テストシナリオの実行(プロトコルの接続やテストフレームの送受信) − テストの成否の判定 テストの実行環境: FRRoutingの場合 https://github.com/FRRouting/topotests/blob/master/GUIDELINES.md
  4. 8 SONiC Workshop 2026 SONiCにて実施が必要なテストの方向性 SONiC ホワイトボックススイッチ デバイス Linux (OS)

    SWSS Syncd デバイス制御ソフト SAI SONiCアプリ(コンテナ) FRRoutingなど ハードウェアの通信パフォーマンスはベンダにて実施 ⇒ SONiCコミュニティのテストは不要 FRRoutingなどのアプリは各コミュニティにて試験を実施 ⇒ SONiCコミュニティのテストは不要 上位のアプリと、ハードウェアを接続する中間のソフトウェ アがSONiCコミュニティのテストの重点対象部分 ⇒ ソフトとハードを連携した機能確認がテストの中心 SONiCのテストはスイッチハードウェアでの実施が必要 一方で、柔軟なトポロジーの定義も必要
  5. 9 SONiC Workshop 2026 SONiCコミュニティの物理スイッチのテスト構成(Testbed) https://github.com/sonic-net/sonic-mgmt/blob/master/docs/testbed/README.testbed.Overview.md PTF (Packet Test Framework)

    を実行するサーバ環境 テスト対象のSONiC物理スイッチ サーバとスイッチをつなぐFanoutスイッチ 外部ソフトウェア(Ansible)から本スイッチを設 定することで、任意のサーバのポートが、任意の SONiC DUTのポートにつながるよう構成を変更
  6. 10 SONiC Workshop 2026 ◆T0:TORスイッチのネットワークを模擬した環境 ◊VMがLeafスイッチを模擬 ◊PTFがサーバを模擬 ◆T1:Leafスイッチのネットワークを模擬した環境 ◊VMが上位Spineと下位ToRスイッチを模擬 SONiC

    Testbedにて疑似するネットワーク環境の例 https://github.com/sonic-net/sonic-mgmt/blob/master/docs/testbed/README.testbed.Overview.md VMはcEOSやSONiC KVM仮想マシンを使用
  7. 11 SONiC Workshop 2026 ◆DC内のファブリック構成を意識したときの各階層のスイッチの接続を疑似 SONiC Testbedにて疑似するネットワーク環境の例 ToR スイッチ ToR

    スイッチ ToR スイッチ ToR スイッチ Leaf スイッチ Leaf スイッチ Leaf スイッチ Leaf スイッチ Spine スイッチ Spine スイッチ サーバ サーバ https://github.com/sonic-net/sonic-mgmt/blob/master/docs/testbed/README.testbed.Overview.md
  8. 12 SONiC Workshop 2026 ◆PTF: Packet Test Framework ◊https://github.com/p4lang/ptf −

    P4言語と一緒に開発された、テストフレームの送受信フレームワーク(Pythonベース) − テストフレームの送受信はScapyを使用 SONiC内で使用しているテストフレームワーク SONiC DASHのテスト環境を仮想マシンで作ってみた https://www.apresiatac.jp/blog/202402208006/