2009-06-19 23 views
7

Tôi vừa đọc cuốn sách tuyệt vời của Michael C. Feathers Working Effectively with Legacy Code, kinh thánh giới thiệu các bài kiểm tra cho mã kế thừa. Trong cuốn sách này ông mô tả một cái gì đó gọi là Sửa-kích hoạt thử nghiệm:Kiểm tra kích hoạt chỉnh sửa có phải là bước tiếp theo không?

Nếu nó không phải là do thời điểm cuốn sách này được phát hành, tôi nghi ngờ rằng ai đó sẽ sớm phát triển một IDE cho phép bạn chỉ định một thiết lập các bài kiểm tra sẽ chạy ở mọi phím tắt. Nó sẽ là một cách tuyệt vời để đóng vòng lặp phản hồi.

Điều này phải xảy ra. Nó dường như không thể tránh khỏi. Đã có các IDE kiểm tra cú pháp trên mỗi lần nhấn phím và thay đổi màu của mã khi có lỗi. Thử nghiệm kích hoạt chỉnh sửa là bước tiếp theo.

Khi tôi đọc điều này, tôi chưa từng nghe về bất kỳ IDE hoặc công cụ nào hỗ trợ điều này. Tuy nhiên, tôi chỉ tìm thấy một dự án có tên là Infinitest hỗ trợ điều này cho Java.

Câu hỏi của tôi là:

  1. Có bất kỳ công cụ khác/khuôn khổ hỗ trợ này (hy vọng cũng cho Visual Studio)?
  2. Kinh nghiệm của bạn với loại thử nghiệm này (hiệu quả, làm chậm IDE, vv) là gì?
  3. Đây có phải là bước tiếp theo của TDD không?

Cập nhật:

  • Hãy xem một cái nhìn tại screencast này để xem Infinitest trong hành động cho Eclipse.
  • Chỉ tìm thấy một blog nơi Brett Schuchert chia sẻ một số experiences with Infinitest.
+0

Thú vị khái niệm! Tôi nghĩ rằng nó sẽ được một lúc trước khi điều này là đáng tin cậy và performant mặc dù. –

Trả lời

0

Vâng, về bản chất nó là phát triển theo hướng thử nghiệm, với các thử nghiệm đang chạy liên tục, khi bạn nhập? Vì vậy, tôi sẽ không nói "kiểm tra kích hoạt chỉnh sửa" là một kỹ thuật phát triển mới, nhưng chỉ đơn thuần là một tính năng của IDE của bạn.

Về tốc độ của tính năng này, tôi đoán nó thực sự phụ thuộc vào dự án phức tạp của bạn, trình biên dịch và ngôn ngữ bạn đang sử dụng và những thay đổi bạn đang thực hiện. Nếu bạn đang sửa đổi một số thư viện cơ sở được sử dụng trong suốt dự án, trình biên dịch của bạn sẽ phải biên dịch lại một phần lớn chương trình của bạn để có thể chạy thử nghiệm trong các thư viện khác bằng mã của bạn.

+0

Đồng ý rằng nó không phải là một kỹ thuật phát triển mới, nó là nhiều hơn về rút ngắn phản hồi từ các bài kiểm tra. – BengtBe

1

Autotest cho ruby. Nó liên tục chạy thử nghiệm đơn vị khi bạn chỉnh sửa tệp, sử dụng một số quy ước đơn giản để ánh xạ tệp nguồn để kiểm tra tệp. Ngoài ra còn có một plugin cho nó tôi đã thấy rằng màu sắc mã kiểm tra màu đỏ hoặc màu xanh lá cây trong emacs tương tác. Tôi nghĩ ý tưởng này về phản hồi trực quan ngay lập tức khi truyền/thất bại trong trình chỉnh sửa mã là rất lớn.

+0

+1 để tìm một công cụ hỗ trợ tính năng này! – BengtBe

1

Đã một vài năm kể từ câu hỏi ban đầu và có một vài công cụ có sẵn cho .NET (Tôi cho rằng không gian này cũng đã phát triển cho các ngôn ngữ khác).

Có phiên bản .NET của Autotest (mentioned previously in this thread) được gọi là AutoTest.NET, đã được chia nhỏ và cập nhật thành công cụ đầy đủ tính năng hơn được gọi là ContinuousTests.Tôi đã thử nó khoảng một năm trước đây, và nó có vẻ có nhiều tiềm năng vào thời điểm đó, nhưng không may, có vẻ như họ đã quyết định ngừng phát triển. Tuy nhiên, ở phía trên, bây giờ là free!

Tôi chưa sử dụng NCrunch, nhưng đó là một sản phẩm thương mại dường như được tích cực phát triển.

script-based tools mà cũng có thể phù hợp với những hóa đơn cho những gì bạn đang hỏi về

Xem thêm những câu hỏi này: How do I do continuous testing in .NET?

Các vấn đề liên quan