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
16
インターン生がテスト未経験から様々なテスト手法を実践してみた話
sunamoto-mikiya
February 22, 2024
Tweet
Share
Featured
See All Featured
Producing Creativity
orderedlist
PRO
341
39k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
328
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
Measuring & Analyzing Core Web Vitals
bluesmoon
2
51
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Typedesign – Prime Four
hannesfritz
39
2.4k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8k
Docker and Python
trallard
40
3.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
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/