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

テストコードを書きたいけどテスト対象がない。どうする? / What to do to write test?

77fa3ebbf229a884c74c905034b1f4c2?s=47 akihisa1210
February 10, 2022

テストコードを書きたいけどテスト対象がない。どうする? / What to do to write test?

QA Tips LT会 #QATipslt - connpass
https://rakus.connpass.com/event/234065/

77fa3ebbf229a884c74c905034b1f4c2?s=128

akihisa1210

February 10, 2022
Tweet

More Decks by akihisa1210

Other Decks in Technology

Transcript

  1. テストコードを書きたいけど テスト対象がない。どうする? 2022-02-10 QA Tips LT会 #QATipslt サイボウズ株式会社 Garoon開発チーム 兼

    生産性向上チーム 小山 晃久(@akihisa1210)
  2. 自己紹介 小山 晃久 (@akihisa1210) サイボウズ株式会社 Garoon開発チーム 兼 生産性向上チーム 品質、テスト、CI/CD、アジャイル 趣味は読書

    Twemoji https://twemoji.twitter.com/content/twemoji-twitter/en.html Copyright 2020 Twitter, Inc and other contributors Graphics licensed under CC-BY 4.0: https://creativecommons.org/licenses/by/4.0/
  3. Cybozu Productivity Weekly • 開発者の生産性向上ネタを毎週共有 • CI/CDや自動テストの話題も • Zenn &

    Twitterで発信中!
  4. 本題

  5. テストコードを書きたい! • テストコードを書いたことがないので書きたい! • あのテストフレームワークを使ってみたい! • 特に理由はないが書きたい!

  6. テスト対象がない……。 • 何にテストコードを書こう?

  7. なければ作ろう! • Webアプリケーションを作成する類の書籍を買ってくる • サンプルコードにテストを追加しながら進める

  8. 書籍を選ぶ際の注意 • 特定のユニットテストツールを使いたい場合は、そのツールが対 応している言語と同じ言語でアプリケーションを作る書籍を選ぶ • E2Eテストツールはテスト対象が何で実装されているかには依存 していないので大丈夫 • できれば新しめの書籍を選ぶ(余計な所でハマらないために)

  9. 静的解析

  10. 静的解析を導入する • 問題のある書き方を検出・自動修正する • 特定のスタイルを強制する • 「Linter」「Formatter」などで検索!

  11. (参考)パッケージマネージャー • プロジェクトごとに、そのプロジェクトが使うパッケージを管理す るツール • ツール導入時に必要になることも

  12. ローカル開発環境 静的解析 ソースコード

  13. CI

  14. CI? • Continuous Integration • コードに変更が加わるごとにビルドやテストを行う • 早いフィードバックで小さく修正 • 自動トリガーの恩恵(手動だと忘れる)

  15. CIを設定する前に • コードをソースコード管理システムで管理する • サンプルコードのライセンスを要確認 • プライベートリポジトリと連携できるCIシステムもある

  16. CIの設定 • 設定ファイルをソースコードと合わせて管理する • CIシステムがソースコード管理システムからコードを取得できる ようにする • CIシステム上で静的解析が実行されるようにする

  17. ローカル開発環境 静的解析 ソースコード ソースコード管理システム ソースコード 静的解析 CI システム ソースコード

  18. ユニットテスト

  19. ユニットテストを書く • 関数やクラスに勝手にテストを書く • テストが書きづらい場合は、テストが書けるように修正してみる • ユニットテストもCIで流す

  20. ローカル開発環境 静的解析 ユニットテスト ソースコード ソースコード管理システム ソースコード 静的解析 CI システム ユニットテスト

    ソースコード
  21. E2E テスト

  22. E2Eテストを書く • ローカル開発環境でWebアプリケーションを立ち上げる • E2Eテストを書いてみる

  23. ローカル開発環境 静的解析 ユニットテスト E2Eテスト ソースコード ビルド デプロイ ソースコード管理システム ソースコード 静的解析

    CI システム ユニットテスト ソースコード
  24. E2EテストをCIで動かす • CIシステムがアクセスできるところでWebアプリケーションを動 かす • CIシステム上でテストを実行する

  25. ローカル開発環境 静的解析 ユニットテスト E2Eテスト ソースコード ビルド デプロイ ソースコード管理システム ソースコード 静的解析

    CI システム ユニットテスト E2Eテスト デプロイ ビルド ソースコード
  26. 最後に

  27. 全部やらないといけないの? • やらなくても大丈夫です • 興味のあるところ、開発の効率が上がるところから