Slide 1

Slide 1 text

テストコードを書きたいけど テスト対象がない。どうする? 2022-02-10 QA Tips LT会 #QATipslt サイボウズ株式会社 Garoon開発チーム 兼 生産性向上チーム 小山 晃久(@akihisa1210)

Slide 2

Slide 2 text

自己紹介 小山 晃久 (@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/

Slide 3

Slide 3 text

Cybozu Productivity Weekly • 開発者の生産性向上ネタを毎週共有 • CI/CDや自動テストの話題も • Zenn & Twitterで発信中!

Slide 4

Slide 4 text

本題

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

静的解析

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

CI

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

ユニットテスト

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

E2E テスト

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

最後に

Slide 27

Slide 27 text

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