何が起きたか
外部APIからデータを抽出してDBに保存する処理を業務委託で外注にお願いしていたときの話。
外注さん「開発完了しました。」
わい「単体テストまで行いましたか?」
外注さん「単体テスト実行しました」
わい「では、ちょっと動作確認しますね〜」
試しに実行してみたところ、何もDBに保存されない・・・。
わい「これ開発環境では動きました?」
外注さん「動きました」
わい「なんか何も保存されないんですよね〜。DBにデータ入りました?」
外注さん「そこまでは確認して無いです」
わい「えっ・・・。じゃあ何を単体テストしたんですか?」
外注さん**「バッチを実行してエラーが出ないことを確認しました」**
軽くソースみたところ単純なバグで何もせずに終了するようなバッチになっていた。
外注さんの中ではsyntaxエラーを無くすまでが単体テストだったようです・・・。
せめてDBに値が保存されるところまでは確認して欲しかった・・・。
何が問題だったのか
こちらもテスト仕様書のようなものは作っていなかったので、単体テストのゴールが不明確でした。
「基本機能くらいは何も言わなくてもテストしてくれるだろう」と勝手に期待していたのが問題でした。
テスト仕様書を作るまでしなくとも、最低限**「これができるようになることがゴール」**くらいは指示しておけば良かったです。
ちなみに
駆け出しエンジニアなどではなく、エンジニア歴30年のベテランさんでした。この30年一体何をしてきたのか気になりました。