Nếu bạn đang xử lý một lượng lớn mã kế thừa hiện chưa được thử nghiệm, việc nhận được bảo hiểm thử nghiệm ngay bây giờ thay vì chờ đợi một bản viết lại lớn giả định trong tương lai là bước đi đúng đắn. Bắt đầu bằng cách viết bài kiểm tra đơn vị là không.
Nếu không có kiểm tra tự động, sau khi thực hiện bất kỳ thay đổi nào đối với mã, bạn cần thực hiện một số kết thúc thủ công để kết thúc kiểm tra ứng dụng để đảm bảo nó hoạt động. Bắt đầu bằng cách viết các bài kiểm tra tích hợp cấp cao để thay thế điều đó. Nếu ứng dụng của bạn đọc các tệp trong, xác thực chúng, xử lý dữ liệu theo cách thức nào đó và hiển thị kết quả mà bạn muốn kiểm tra nắm bắt tất cả điều đó.
Lý tưởng nhất là bạn sẽ có dữ liệu từ một kế hoạch kiểm tra thủ công hoặc có thể lấy một mẫu dữ liệu sản xuất thực tế để sử dụng. Nếu không, vì ứng dụng đang trong quá trình sản xuất, trong hầu hết các trường hợp, nó đang hoạt động như vậy, vì vậy chỉ cần tạo ra dữ liệu sẽ đạt được tất cả các điểm cao và cho rằng đầu ra là chính xác cho đến bây giờ. Không tệ hơn việc thực hiện một chức năng nhỏ, giả sử nó đang thực hiện tên của nó hoặc bất kỳ nhận xét nào cho thấy nó nên được thực hiện và viết các bài kiểm tra giả định rằng nó hoạt động chính xác.
IntegrationTestCase1()
{
var input = ReadDataFile("path\to\test\data\case1in.ext");
bool validInput = ValidateData(input);
Assert.IsTrue(validInput);
var processedData = ProcessData(input);
Assert.AreEqual(0, processedData.Errors.Count);
bool writeError = WriteFile(processedData, "temp\file.ext");
Assert.IsFalse(writeError);
bool filesAreEqual = CompareFiles("temp\file.ext", "path\to\test\data\case1out.ext");
Assert.IsTrue(filesAreEqual);
}
Khi bạn đã có đủ các bài kiểm tra cấp cao này được viết để ghi lại các ứng dụng hoạt động bình thường và hầu hết các trường hợp lỗi phổ biến, lượng thời gian bạn sẽ cần dành để đập bàn phím để thử và bắt lỗi từ mã đang làm gì đó ngoài việc bạn nghĩ rằng nó đáng lẽ phải làm sẽ giảm đáng kể làm cho việc tái cấu trúc trong tương lai (hoặc thậm chí là viết lại lớn) dễ dàng hơn nhiều.
Khi bạn có thể mở rộng phạm vi kiểm tra đơn vị, bạn có thể giảm bớt hoặc thậm chí rút lại hầu hết các kiểm tra tích hợp. Nếu ứng dụng đọc / ghi tệp của ứng dụng hoặc truy cập DB, kiểm tra các phần đó một cách cô lập và chế nhạo chúng hoặc bắt đầu kiểm tra bằng cách tạo cấu trúc dữ liệu đọc từ tệp / cơ sở dữ liệu là một nơi rõ ràng để bắt đầu. Trên thực tế, việc tạo ra cơ sở hạ tầng thử nghiệm sẽ mất nhiều thời gian hơn so với việc viết một tập các thử nghiệm nhanh và bẩn; và mỗi khi bạn chạy một bộ thử nghiệm tích hợp trong 2 phút thay vì dành 30 phút để kiểm tra thủ công một phần của những gì các thử nghiệm tích hợp bao gồm bạn đã kiếm được một chiến thắng lớn.