Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
インターン生がテスト未経験から様々なテスト手法を実践してみた話
Search
sunamoto-mikiya
February 22, 2024
0
20
インターン生がテスト未経験から様々なテスト手法を実践してみた話
sunamoto-mikiya
February 22, 2024
Tweet
Share
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Ruby is Unlike a Banana
tanoku
97
11k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
0
54
Typedesign – Prime Four
hannesfritz
40
2.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Fireside Chat
paigeccino
34
3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
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/