Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
インターン生がテスト未経験から様々なテスト手法を実践してみた話
Search
sunamoto-mikiya
February 22, 2024
91
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
インターン生がテスト未経験から様々なテスト手法を実践してみた話
sunamoto-mikiya
February 22, 2024
More Decks by sunamoto-mikiya
See All by sunamoto-mikiya
Mountpoint for Amazon S3 徹底検証 FSx for Lustre 比較で見えた書き込み処理における特性について
mi1k1i
0
26
福岡新卒エンジニアの会
mi1k1i
0
30
福岡未踏-qrec-spacelaunchin九州
mi1k1i
0
17
Fusic x ゆめみ 〜集え若手LT祭り〜
mi1k1i
0
26
Featured
See All Featured
Believing is Seeing
oripsolob
1
210
We Have a Design System, Now What?
morganepeng
55
8.3k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
970
Test your architecture with Archunit
thirion
2
2.4k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Designing for humans not robots
tammielis
254
26k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
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/