ジュミの質を向上させる

ユニットテスト

  • 複数のレベル依存関係にあるレース条件により,ジャミプロジェクトでユニットテストを行うのは難しい.

  • ユニットテストは30個程度で,覆盖率26%です. ユーザーに新しい機能を迅速に提供するジャミの高い需要のため,開発者またはQA部門によって維持されません.

  • 覆盖のICVを使用します. daemon's Makefile.am でICVの設定を見つけることができます.また,覆盖は https://docs.jami.net/coverage/で見つけることができます.

  • 統合前に新しいコードを ユニットテストに説得するために システムが導入されなければなりません

  • 試行錯誤を設定する場合は, make check をデモンフォルダまたは gdb: gdb ut_media_encoder で単体テストフォルダで別々に実行できます.

  • /設定コマンドで環境を --de-sharedで設定する必要があります

フレームワークテスト

  • ダイモンの Makefile.am でフレームワークテストを見つけ, make 統合でそれをランチすることができます. これは tools/dringctrl フォルダの jami_test.py スクリプトを呼びます. dringctrl.py と controller.py を使用し,Bash を介して Jami を制御することができます.

  • ネットワークが安定していることを確認するために一連の電話が作られています

  • 未来には他のフレームワークテストが実施され, Jamiの機能全体をテストする必要がある.

統合試験

  • 建設機械のドーカーで統合テストが行われます 詳細は jenkins.jami.net で確認できます

  • 代码レビューは,共同開発者によって行われ,時には同じ開発者によってレビューされる.これは,リンズ法を強調するために避けるべきである. ジェンキンス検証ラベルは,開発者から +1 で置き換えられ,これは避けられる.

  • Sonarqube は Jenkins に Jami を 構築し, linting を 検証させます.フィルターと結果 を: sonar- jami.savoirfairelinux.net で 見つけることができます. Sonar は clang-tidy を プリプロセッサ linting コンパイレーター として使用し, clangs の フィルタ を.clang-tidy ファイル で ダイモン フォルダー で 見つけることができます.

  • sflvault sonarqube は m#2637 サービスと s#7169 サービスで管理者ログインを検索できます

博士とフィードバック

  • 文書はdocs.jami.netですべて見つけることができます

  • git.jami.netで開発者またはユーザーによって問題が発生します

監視

  • 仮想マシンでは30分ごとにスクリプトが呼び出されます. sflvaultサービス s#7209 で検索し,他のクライアントに virtual jami-monitorpeer-02 (サービス s#7224) を呼び出しています.一連の電話が実行され,失敗率が返されます.すべての詳細は https://wiki.savoirfairelinux.com/wiki/Jami-monitorpeervm-01.mt.l.sfl で確認できます.

  • 必要な場合は,手動コマンドは./script.sh peer 031acbb73f2a3385b2babc7161f13325be103431です

  • リアルタイムでポイントグラフを追記する https://monitoring.savoirfairelinux.com/grafana/dashboard/script/dyndash.js?host=jami-monitorpeervm-01.mtl.sfl&service=Check%20JamiCall&panelId=1&fullscreen&orgId=1

煙の検査

各クライアントが 公開される前に シナリオのリストを 通り過ぎなければならない

シナリオはこちらで説明されています. [Jami煙検査]

開発者に送信する前に QA dptによってレビューされます

リリースにネットワークコンビットが統合された場合,QAデパートは,異なる接続性テストを自動化できる (コール設定で下記のように)

設定を呼びます

これはテストする必要があるネットワーク構成のリストです.

ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!ターン!

両側がTURN/STUN/UPnPなしでIPv4のみである場合,呼び出しはローカルのみである.

特別注:FDroid

MR生成のスクリプトはクライアント-Android repo (fdroidMergeRequest.sh) にあります

すべきこと

  • 60%に近いカバーを押し上げ

  • チーム内でユニットテストの維持と作成を保証するシステムを確立する.

  • 各主要機能はフレームワークテストを追加することで全体としてテストされるべき (つまりメッセージが受信され,呼び出しが両側でうまく終了したことを確認することなど)

  • 逆転を減らすために,新しい機能は,各プラットフォームで統合する前にテストされるべきです.

  • 各クライアントに sonarqube を統合する

  • ネットワーク互換性に関するJamiの行動のテストを自動化する

  • 窓にも適応できる make_ring.py スクリプトを作ります