いわゆる「Web系」の開発組織に所属したり常駐したりすることが多かったので、厳密なコードフリーズというのをあまり体験していないな・・・とふと気づきました。とくに何か課題解決の方法や伝えたいメッセージがあるわけではないのですが、ふと思ったことなどつらつら書いておきます。

コードフリーズとは

コードフリーズ(Code Freeze)とは、ソフトウェア開発プロセスのある時点で、新規機能の追加や大規模なコード変更を停止し、既存のコードベースの安定化と品質向上に注力する期間を指します。一般的に、ソフトウェアリリースやマイルストーン達成の前に設定されます

Geminiの回答より。私は(おおざっぱに)「いじるな期間」と表現したりしています。

コードフリーズをした状態でテストをすれば、その時点のコードに対するテスト結果も固定されるので、もっともテスト結果の信頼度が高いと言えそうです。

Webサービス出してる会社でのコードフリーズはあまり見なかった

自分が出会っていないだけだと思いますが、いわゆるWeb系の会社でコードフリーズをあまり見ませんでした。

じゃあどのようにしているか、というと

  • 環境ごとにコードのバージョンやブランチを分けて、その環境においてはコードフリーズと同じ状態にしたうえでテストするスタイル
  • ステージングでテストしつつ気にせず改修もしていくスタイル

などでしょうか。

品質を保証する(ための正確な情報を得る)という意味では前者のほうが望ましいと思うものの、わりと後者もあるように思います。

後者の問題点としては、一度テストして「OK」や「Pass」となったテストがあったとしても、その後改修したせいで結果が変わっている可能性がある(かつそれに気づかないかもしれない)という点です。対応策として各テストレベルで自動テストを整備しておき、頻繁に回しておくのが基本でしょうか。

いちQAとしての「テスト結果の信頼性」を考えると、テストと改修並行はしたくないなーと思いつつ・・・コードフリーズもしくは環境完全に分けてテストとなると専任のテストチームが必要になるので、それもそれで。

いろいろな会社さんでどのようなやり方でやっているのか、気になります。