
執筆者
S.G.
2年目エンジニアの実感

Webエンジニアとして働き始めて1年が経過し、2年目に突入しました。
この1年間さまざまなプロジェクトに携わる中で、最も重要だと感じたことが「テスト」の存在です。
これまでの業務を振り返りながら、テストがなぜ重要なのかを実体験を交えてお話しします。
1年目の葛藤:手動テストに時間をかけすぎていた
◆当時の状況
入社当初、完璧主義な性格もあり、実装後の動作確認には特に力を入れていました。
ブラウザで何度も画面を操作し、あらゆるパターンを手動で確認する日々。バグを出してはいけないという強い思い
◆気づきのきっかけ
追加・修正をするたびに、
既存機能への影響がないか不安になり、関連する部分まで手動で確認をしてしまっていました。
効率が悪いとは感じていましたが、他にどうすればいいのか分からなかったのです。
そんな中、
技術書やエンジニアブログで「自動テスト」という言葉を目にするようになりました。
・テストコードを書けば、ボタン一つで何度でも同じ確認ができる
・リファクタリング時も安心してコードを変更できる
コードの品質を担保する
テストを書くことで、自分のコードが意図した通りに動作するかを確認できます。
特に、複雑なビジネスロジックを実装する際、テストがあることで安心して開発を進められます。
◆安心感のある開発
テストがあることで、複雑なビジネスロジックの実装中も自信を持って進められます。
変更のたびに全体を手動確認する必要がなくなります。
◆Laravelのテスト機能
現在携わっているプロジェクトではLaravelを使用しています。
Laravelには優れたテスト機能が備わっており、効率的にテストを実装できます。
◆PHPUnitによる検証
PHPUnitを使った単体テストや、HTTPテストを通じてルーティングやコントローラーの動作を検証できるため、品質担保が容易になります。
私のテスト実践方法

これから取り組みたいこと
2年目に入り、自動テストに本格的に取り組んでいきたいと考えています。
LaravelにはPHPUnitが統合されており、比較的簡単にテストを始められる環境が整っています。
ステップ1:基礎学習
Laravelのドキュメントを読みながら、シンプルな単体テストから書き始めます。
ステップ2:ビジネスロジックのテスト化
計算処理やバリデーションロジックなど、入力と出力が明確な部分から自動テスト化を試みます。
ステップ3:Factory・モックの習得
Factoryを使ったテストデータの生成方法や、モックの使い方を少しずつ習得していきます。
ステップ4:HTTPテストの自動化
HTTPテストを使ってコントローラーの動作確認も自動化し、手動の画面操作確認を大幅に削減します。
JSTQBで体系的な知識を習得中
テストの重要性を実感した私は、より体系的にテストについて学ぶため、現在JSTQB(Japan Software Testing Qualifications Board)の資格取得に向けて勉強しています。
◆テスト設計技法
同値分割や境界値分析といったテスト設計技法を学び、実務で感覚的に理解していたことを理論的に整理できています。
◆テストの種類と概念
ブラックボックステストとホワイトボックステストの違い、テストレベルの概念など、体系的な知識を習得しています。
◆重要な原則:完全なテストは不可能
すべてのパターンをテストすることはできないからこそ、リスクベースでテストの優先順位をつけることが重要だと学びました。
JSTQBの学習を通じて、テストには様々な技法や考え方があることを知りました。
理論と実践の両輪で、エンジニアとしての成長を目指しています。
2年目の決意

1年間の実務経験を経て
私はテストがソフトウェア開発において欠かせない要素であることを確信しています。
テストを書くことは時間がかかるように見えますが、長期的には開発速度を向上させ、バグを減らし、コードの保守性を高めてくれます。
◆開発速度の向上
自動テストにより、手動確認の時間を削減し、長期的な開発スピードを上げていきます。
◆チームへの貢献
JSTQBの学習で得た知識を実務に活かし、チーム全体のテスト文化向上に貢献していきたいと考えています。
◆学び続ける姿勢
テストは面倒な作業ではなく、より良いソフトウェアを作るための強力なツール。その可能性を信じて、これからも学び続けていきます。
『テストは面倒な作業ではなく、より良いソフトウェアを作るための強力なツール』
その可能性を信じて、これからも学び続けていきます。













