いわゆる「Web系」の開発組織に所属したり常駐したりすることが多かったので、厳密なコードフリーズというのをあまり体験していないな・・・とふと気づきました。とくに何か課題解決の方法や伝えたいメッセージがあるわけではないのですが、ふと思ったことなどつらつら書いておきます。
コードフリーズとは
コードフリーズ(Code Freeze)とは、ソフトウェア開発プロセスのある時点で、新規機能の追加や大規模なコード変更を停止し、既存のコードベースの安定化と品質向上に注力する期間を指します。一般的に、ソフトウェアリリースやマイルストーン達成の前に設定されます
Geminiの回答より。私は(おおざっぱに)「いじるな期間」と表現したりしています。
コードフリーズをした状態でテストをすれば、その時点のコードに対するテスト結果も固定されるので、もっともテスト結果の信頼度が高いと言えそうです。
Webサービス出してる会社でのコードフリーズはあまり見なかった
自分が出会っていないだけだと思いますが、いわゆるWeb系の会社でコードフリーズをあまり見ませんでした。
じゃあどのようにしているか、というと
- 環境ごとにコードのバージョンやブランチを分けて、その環境においてはコードフリーズと同じ状態にしたうえでテストするスタイル
- ステージングでテストしつつ気にせず改修もしていくスタイル
などでしょうか。
品質を保証する(ための正確な情報を得る)という意味では前者のほうが望ましいと思うものの、わりと後者もあるように思います。
後者の問題点としては、一度テストして「OK」や「Pass」となったテストがあったとしても、その後改修したせいで結果が変わっている可能性がある(かつそれに気づかないかもしれない)という点です。対応策として各テストレベルで自動テストを整備しておき、頻繁に回しておくのが基本でしょうか。
いちQAとしての「テスト結果の信頼性」を考えると、テストと改修並行はしたくないなーと思いつつ・・・コードフリーズもしくは環境完全に分けてテストとなると専任のテストチームが必要になるので、それもそれで。
いろいろな会社さんでどのようなやり方でやっているのか、気になります。