背景 私は、物流システムに取り組む 7 人の開発者と 2 人のテスターのチームで働いています。Delphi 2007 と、Bold for Delphiをフレームワークとして使用したモデル駆動型開発を使用しています。このシステムは現在約 7 年間運用されており、約 170 万行のコードがあります。4 ~ 5 週間後に本番環境にリリースし、ほぼすべてのリリース後に、見つかっていないバグに対していくつかのパッチを適用する必要があります。もちろん、これは私たちと顧客の両方にとって苛立たしいことです。
現在のテスト もちろん、ソリューションはより自動化されたテストです。現在、手動テストを行っています。空のデータベースで開始し、モデル化されたメソッドからデータを追加する Testdbgenerator。また、GUI をテストするための非常に基本的なスクリプトを実行するTestcompleteもあります。時間がないため、これ以上テストを追加することはできませんが、スクリプトはアプリケーションの変更にも敏感です。数年前、私は DUnit で単体テストを実際に試みましたが、数日後にあきらめました。ユニット同士のつながりが強すぎる。
単体テストの前提条件 単体テストの前提条件 をいくつか知っていると思います。
- 1 つのことを行う小さなメソッドを作成しますが、それをうまく実行します。
- 繰り返さないでください。
- 最初に失敗するテストを書き、次にテストがパスするようにコードを書きます。
- ユニット間の接続は緩んでいる必要があります。彼らはお互いについてあまり知らないはずです。
- 依存性注入を使用します。
使用するフレームワーク 主に 64 ビット コンパイラのため、Delphi XE2 にアップグレードする可能性があります。私はSpringを少し見てきましたが、これにはD2007からの更新が必要であり、今は起こりません. 多分来年。
質問 ほとんどのコードはまだ自動的にテストされていません。では、古いコードのテスト容易性を高めるための最善の道は何でしょうか? それとも、新しいメソッドのみのテストを書き始めるのが最善でしょうか? 自動テストを増やす最善の方法が何であるかはわかりませんが、それについてのコメントは大歓迎です。現在 D2007 + DUnit を使用して、後で Delphi XE2 + Spring に簡単に変更できますか?
編集:手動テストの現在のテスト方法論については、クリスが言うように、「それを叩いて壊そうとする」だけです。