Better Software Testing

ソフトウェアテストをもっと良くしたい

「品質文化」とは言うけれど

個人開発やってると、正直、「動くものを作るのに精一杯で品質のこと考えている余裕がない」と思うことが頻繁にある。

QA界隈では「開発チーム(実装担当者やPdM、デザイナー等ステークホルダー)に対して品質を意識する文化を築いていこう」的なムーブメントがあるように思うんだが、これって彼らにとっては結構な負担じゃないか、などと想像したりする。

僕のソフトウェア開発スキルが弱いだけかもしれないが、僕がQA以外のステークホルダーだったら「いや趣旨は分かるんですが実際問題こっちも余裕なくてですね、、」と言いたくなりそうな気がしている。

各企業のテックブログなんか読んでいると、「開発者が品質を意識してくれるようになりました」「E2EテストやAPIテストを実装してくれるようになりました」みたいな記事が散見されるんだけど、これって開発者の(品質を意識することにより増幅した)負荷をどれくらい考慮したものなんだろう、気づけているのかな、どうやって負荷を増やさずに品質文化を醸成しているんだろう、果たして??なんて疑ってみたりもする。

上記はあくまで個人開発をやっている中での感想だが、チームでアジャイル開発をやるとなると2-3週間毎に実装開始~リリースまで到達しなくちゃいけなくて、自動テストはおろか、コーナーケースや異常系を考慮しながら実装するのも大変に困難ではないかと思う。

  • 仕様やアーキテクチャを検討している段階で不具合/違和感に気づけたら良いよね
  • コーナーケースや不具合発生時のインパクトを考慮しながら実装できたら良いよね
  • 不具合の検出は早ければ早いほど修正コストが低くなるから、テスト環境にデプロイする前に実装担当者側で最低限テストしたほうが良いよね

いずれも正論だと思う。しかし、じゃあ実践できるの?と問われたらかなり厳しいんじゃないだろうか。もし僕が、切羽詰まった(例えばスプリント後半の)段階でこれを言われたら

そうですよね、全くもってあなた方が正しいです。それでは、次回から2-3スプリントほどで良いので実践していただけますか?口を動かさなくて結構です、頭と手を動かしてやって見せてください。私のロールモデルになってください。

などと噛み付いてしまうかもしれない。

もちろん私は、QA側の発言に敵意がない(むしろチーム/会社に寄り添った意図での振る舞いである)ことは知っている。ステークホルダーも特に反論しようとは思わないだろう。そのうえで、品質文化について言及したりそれを浸透させようという行動を起こすときには慎重になったほうが良いんだろうなと思う。例えば、開発者が意識せずともある程度の品質が自動的に担保されるような環境をQA側で提供しながら対話を進めると良いかもしれない。ビジネスをやっている以上、品質は間違いなく大事で、それは皆分かっている。分かっていながら実現が困難であるという状況を起点として歩んでいけると良いのではないかと思う。