忘れてしまいそうなので、QAから開発に異動して思うことをまとめておきます。
これまでの経緯
転職挫折しました(SIer QA)〜After Story〜 - mhlyc -practice
紆余曲折あって開発に異動したのが昨年の12月です。4ヶ月くらい開発の仕事をやってみて、いろいろなことを感じたのでそれをまとめてみます。
簡単な実装なのに意外とバグを作り込むこと
一番ショックだったのはこれでした。
処理条件に「注文日付」を指定するはずが、「発送日付」を指定してしまうとか
日付の"年"で比較をするはずが、"月"で比較をしてしまうとか
チーム内でレビューもしていたし、自分で見直しもしていたのですが、見逃していました。
これまではQAとして「難しい実装でバグを作り込むのはわかるけど、簡単な実装でバグを作り込むわけがない。注意力が散漫すぎる」という感じに思っていました。今思うと、なんという勘違い野郎なのでしょうか。
自分で仕事としてお客さんに開発成果物を納品するというのをやってみて、「ミスをしてバグを作り込むのは、注意力とかやり方を工夫しても避けようがないこと。どれだけ丁寧に作業してセルフチェックをしてもレビューをしても、見逃しはあるもの。テストをして品質を担保することは絶対に必要」という考え方に変わりました。
ユニットテストにかかる労力の大きさ
次に思ったのはこちらです。
ユニットテスト、C0/C1のカバレッジもそうですが、ユニットテストでテストしないといけないパターンは非常に多いです。また、修正が入って再テストする機会も多いので、単純にテストやり直すだけでほぼ一日なくなってしまったりするんですよね…
そして、Javaで開発をしていて、初めてJUnitを使ったのですが…めっちゃ便利ですね!
あとでJUnitについては勉強したことをまとめて発表する機会を持ちたいと思っています。
ユニットテストについても、これまではそんなに経験がなかったので、テスト自動化の重要さも頭でわかったつもりになっていました。しかし、実際やってみると…全てのテストパターンが正常に通った時の感動といったら!すごく嬉しい気持ちになったのを覚えています。また、修正後の再テストも非常に楽なので、トイレに行って帰ってきたらテストが終わっていたとか、テスト自動化の素晴らしさを何度も感じました。
こういったことも、実際にやってみないと腹落ちしないというか、わかったつもりで止まってしまうので、体験することは大事だなと思いました。これからも、気づきがあったらどんどん書きためていきたいと思います。