Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
インターン生がテスト未経験から様々なテスト手法を実践してみた話
Search
sunamoto-mikiya
February 22, 2024
0
10
インターン生がテスト未経験から様々なテスト手法を実践してみた話
sunamoto-mikiya
February 22, 2024
Tweet
Share
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
30
2.8k
How GitHub (no longer) Works
holman
310
140k
Done Done
chrislema
180
16k
Six Lessons from altMBA
skipperchong
26
3.4k
Facilitating Awesome Meetings
lara
49
5.9k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
30
2.3k
Designing the Hi-DPI Web
ddemaree
278
34k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
A Tale of Four Properties
chriscoyier
155
22k
Documentation Writing (for coders)
carmenintech
65
4.3k
Transcript
テスト未経験から様々な テスト⼿法を実践してみた話 2023.08.30 砂本 樹⽮ 1
⾃⼰紹介 砂本 樹⽮ - Work at - 株式会社 Fusic (フュージック)
エンジニアインターン - 九州⼯業⼤学 情報⼯学部4年 - Skill - PHP/ Laravel /CakePHP/TypeScript/NestJs 2
本⽇の内容 ◦ Unitテストのフレームワーク⽐較 ・Unitテストとは ・PHPUnitとPestの⽐較 ◦ e2eテストのフレームワーク⽐較 ・e2eテストとは ・PlaywrightとDuskの⽐較 3
01 Unitテストの フレームワーク⽐較
Unitテストとは 5 「壊れる可能性のあるものは すべてテストする」 ・最⼩単位の振る舞いをテスト ・早期バグ発⾒ ・品質の担保 ・テスト量が膨⼤ ・⼯数が多くかかる
テストフレームワークの紹介 6 PHPのUnitテストといえばコレ︕ ・アサーションメソッドが豊富 ・フレームワークの公式サポート ・情報が多い
テストフレームワークの紹介 7 PHPUnitの進化系 ・Jestと似ている ・シンプルさを重視 ・情報少ない
8 さっそく⽐較
9 先に結論
Pestの⽅が シンプルに書けて便利 10
Pest便利機能① 11 dataset
テスト対象のメソッド 12
PHPUnitでのテストメソッド 13 テストメソッド テストデータの集まり
PHPUnitのテスト 14 ・テストデータの組み合わせを考える必要がある ・データ量が増えると,記述量が⼀気に増加 ・テストデータの組み合わせに抜けが出る可能性 ・Data Providerを使っても可読性が下がる
Pestでのテストメソッド 15 テストメソッド テストデータの集まり
datasetを使うと 16 テストデータを⾃動で組み合わせてくれる ・データ量が増えても記述量が膨⼤には増えない ・抜けなくテストができる
Pest便利機能② 17 メソッドチェーンで 複数のテストをかける
テスト対象のコード 18
テストメソッド 19 PHPUnit Pest 記述量 減 可読性 増
その他Pestの特徴 20 ・Assertionsも使える ・jestと同じように書ける ・PHPUnitで使えるものは⼤体使える ・LaravelのFactory ・PHPUnitからの移⾏コストも少ない ・テスト⽤DBがそのまま使える
Unitテストフレームワーク⽐較 まとめ 21 PestはPHPUnitの機能を損なわずに,PHPUnitよりもシンプルに書くことが できるので,PHPUnitが主流ではあるがPestを使っていきたい.
02 e2eテストの フレームワーク⽐較
e2eテストとは 23 期待どおりに動作し適切に 機能することを確認する ・ユーザ視点での動作検証 ・ソフトウェアのテストにかかる時間 を短縮 ・レポート作成 ・実⾏スピードが遅い ・変更に弱い
テストフレームワークの紹介 24 ・JavaScriptで記述 ・Chromium, Firefox ,WebKitに対応 ・マイクロソフトが中⼼となって開発 ・ジェネレーターが便利
テストフレームワークの紹介 25 ・Laravelとの相性が良い ・PHPで記述 ・Chromiumに対応
26 ⽐較
Duskの優位性 27 Laravelとの相性が良い
Duskの優位性 28 インストールがラク ディレクトリ構成が綺麗
Duskの優位性 29 アサーションと名前付きルートが使える
Playwrightの優位性 30 コード記述が簡単 e2eテストはブラウザ操作のコードを 書く必要がある
Duskのコード記述 31 value属性,name属性で操作する要素を指定 Duskで書いたログイン操作
Duskのテストコード記述 32 ・操作が複雑になるほど⼯数がかかる ・UI/UXを変更した際のテスト修正コストが⾼い ・実際の操作をコードに落とし込むのが難しい
Playwrightテストジェネレーター 33 テストしたいページ ⽣成されたコード
e2eテストフレームワーク⽐較 まとめ 34 DuskはPHPで書けたりLaravelとの相性が良かったりするが・・・ 最も⼯数を使う画⾯操作のコード記述が,圧倒的にPlaywrightの⽅が ラクで正確なので,Playwrightを使っていきたい
まとめ 35 ⽤途にあったテストフレームワークを選択 し,テストをラクに正確に書けるのが理想
ご清聴いただきありがとうございました Thank You We are Hiring ! https://recruit.fusic.co.jp/