Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
テストコードを書きたいけどテスト対象がない。どうする? / What to do to write test?
akihisa1210
February 10, 2022
Technology
2
600
テストコードを書きたいけどテスト対象がない。どうする? / What to do to write test?
QA Tips LT会 #QATipslt - connpass
https://rakus.connpass.com/event/234065/
akihisa1210
February 10, 2022
Tweet
Share
More Decks by akihisa1210
See All by akihisa1210
ソフトウェアテスト 2022 / Software Testing 2022
ak1210
1
5.1k
E2E自動テスト導入・運用をめぐる先入観と実際に起きたこと / Preconceptions and What Happened with E2E Testing
ak1210
8
2.1k
ここからはじめるスクラムQA(増補改訂版) / Getting started with QA in Scrum (revised)
ak1210
2
630
ここからはじめるスクラムQA / Getting started with QA in Scrum
ak1210
2
860
「開発チーム」とQA /"Development Team" and QA
ak1210
1
7.3k
Other Decks in Technology
See All in Technology
GitHub Codespaces が拡げる開発環境、いつでもどこでも Visual Studio Code で!
dzeyelid
0
150
ステート管理を超えるRecoil運用の考え方
uhyo
7
5.4k
LINE iOSエンジニアの日々 / LINE iOS Engineer Days
line_developers
PRO
1
130
日本ディープラーニング協会主催 NeurIPS 2022 技術報告会講演資料
tdailab
0
980
AKIBA.SaaS資料
yasumuusan
0
160
プログラミング支援AI GitHub Copilot すごいの話
moyashi
0
280
Media JAWS 2023/1
matsuihidetoshi
1
100
Exploring MapStore Release 2022.02: improved 3DTiles support and more
simboss
PRO
0
180
Periodic Multi-Agent Path Planning
hziwara
0
110
230120 ガンダムの事例にみる自動化の対象 Haruka Oh!さん
comucal
PRO
0
110
データ分析基盤の要件分析の話(202201_JEDAI)
yabooun
0
170
OpenShiftのリリースノートを整理してみた
loftkun
2
220
Featured
See All Featured
Facilitating Awesome Meetings
lara
33
4.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
7
570
The Invisible Side of Design
smashingmag
292
48k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Bash Introduction
62gerente
601
210k
Designing with Data
zakiwarfel
91
4.2k
How To Stay Up To Date on Web Technology
chriscoyier
779
250k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
10
1.3k
Robots, Beer and Maslow
schacon
154
7.3k
Typedesign – Prime Four
hannesfritz
34
1.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
217
21k
Three Pipe Problems
jasonvnalue
89
8.9k
Transcript
テストコードを書きたいけど テスト対象がない。どうする? 2022-02-10 QA Tips LT会 #QATipslt サイボウズ株式会社 Garoon開発チーム 兼
生産性向上チーム 小山 晃久(@akihisa1210)
自己紹介 小山 晃久 (@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/
Cybozu Productivity Weekly • 開発者の生産性向上ネタを毎週共有 • CI/CDや自動テストの話題も • Zenn &
Twitterで発信中!
本題
テストコードを書きたい! • テストコードを書いたことがないので書きたい! • あのテストフレームワークを使ってみたい! • 特に理由はないが書きたい!
テスト対象がない……。 • 何にテストコードを書こう?
なければ作ろう! • Webアプリケーションを作成する類の書籍を買ってくる • サンプルコードにテストを追加しながら進める
書籍を選ぶ際の注意 • 特定のユニットテストツールを使いたい場合は、そのツールが対 応している言語と同じ言語でアプリケーションを作る書籍を選ぶ • E2Eテストツールはテスト対象が何で実装されているかには依存 していないので大丈夫 • できれば新しめの書籍を選ぶ(余計な所でハマらないために)
静的解析
静的解析を導入する • 問題のある書き方を検出・自動修正する • 特定のスタイルを強制する • 「Linter」「Formatter」などで検索!
(参考)パッケージマネージャー • プロジェクトごとに、そのプロジェクトが使うパッケージを管理す るツール • ツール導入時に必要になることも
ローカル開発環境 静的解析 ソースコード
CI
CI? • Continuous Integration • コードに変更が加わるごとにビルドやテストを行う • 早いフィードバックで小さく修正 • 自動トリガーの恩恵(手動だと忘れる)
CIを設定する前に • コードをソースコード管理システムで管理する • サンプルコードのライセンスを要確認 • プライベートリポジトリと連携できるCIシステムもある
CIの設定 • 設定ファイルをソースコードと合わせて管理する • CIシステムがソースコード管理システムからコードを取得できる ようにする • CIシステム上で静的解析が実行されるようにする
ローカル開発環境 静的解析 ソースコード ソースコード管理システム ソースコード 静的解析 CI システム ソースコード
ユニットテスト
ユニットテストを書く • 関数やクラスに勝手にテストを書く • テストが書きづらい場合は、テストが書けるように修正してみる • ユニットテストもCIで流す
ローカル開発環境 静的解析 ユニットテスト ソースコード ソースコード管理システム ソースコード 静的解析 CI システム ユニットテスト
ソースコード
E2E テスト
E2Eテストを書く • ローカル開発環境でWebアプリケーションを立ち上げる • E2Eテストを書いてみる
ローカル開発環境 静的解析 ユニットテスト E2Eテスト ソースコード ビルド デプロイ ソースコード管理システム ソースコード 静的解析
CI システム ユニットテスト ソースコード
E2EテストをCIで動かす • CIシステムがアクセスできるところでWebアプリケーションを動 かす • CIシステム上でテストを実行する
ローカル開発環境 静的解析 ユニットテスト E2Eテスト ソースコード ビルド デプロイ ソースコード管理システム ソースコード 静的解析
CI システム ユニットテスト E2Eテスト デプロイ ビルド ソースコード
最後に
全部やらないといけないの? • やらなくても大丈夫です • 興味のあるところ、開発の効率が上がるところから