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
76
インターン生がテスト未経験から様々なテスト手法を実践してみた話
sunamoto-mikiya
February 22, 2024
Tweet
Share
More Decks by sunamoto-mikiya
See All by sunamoto-mikiya
Mountpoint for Amazon S3 徹底検証 FSx for Lustre 比較で見えた書き込み処理における特性について
mi1k1i
0
2
福岡新卒エンジニアの会
mi1k1i
0
20
福岡未踏-qrec-spacelaunchin九州
mi1k1i
0
8
Fusic x ゆめみ 〜集え若手LT祭り〜
mi1k1i
0
20
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
470
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Become a Pro
speakerdeck
PRO
31
5.8k
Facilitating Awesome Meetings
lara
57
6.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Rails Girls Zürich Keynote
gr2m
96
14k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Design in an AI World
tapps
0
150
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Language of Interfaces
destraynor
162
26k
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/