Nền Tôi làm việc trong một nhóm gồm 7 nhà phát triển và 2 người kiểm tra hoạt động trên hệ thống hậu cần. Chúng tôi sử dụng Delphi 2007 và modeldriven phát triển với khuôn khổ Bold for Delphi. Hệ thống đã được sản xuất khoảng 7 năm nay và có khoảng 1,7 triệu dòng mã. Chúng tôi phát hành sản xuất sau 4-5 tuần và sau hầu hết mọi bản phát hành, chúng tôi phải thực hiện một số bản vá lỗi cho các lỗi mà chúng tôi không tìm thấy. Điều này tất nhiên gây khó chịu cho cả chúng tôi và khách hàng.Tăng khả năng thử nghiệm, khi mã hóa bằng Bold cho khung Delphi
Thử nghiệm hiện tại Giải pháp dĩ nhiên là thử nghiệm tự động hơn. Hiện tại chúng tôi có kiểm tra thủ công. Một Testdbgenerator bắt đầu với một cơ sở dữ liệu rỗng và thêm dữ liệu từ các phương thức được mô hình hoá. Chúng tôi cũng có Testcomplete chạy một số tập lệnh rất cơ bản để kiểm tra GUI. Thiếu thời gian ngăn chúng tôi thêm các kiểm tra khác, nhưng các tập lệnh cũng nhạy cảm với những thay đổi trong ứng dụng. Đối với một số năm trước, tôi thực sự đã thử nghiệm đơn vị với DUnit, nhưng tôi đã từ bỏ sau một vài ngày. Các đơn vị có kết nối quá mạnh.
điều kiện tiên quyết Đơn vị kiểm tra Tôi nghĩ rằng tôi biết một số điều kiện tiên quyết cho kiểm tra đơn vị:
- Viết phương pháp nhỏ mà làm một chuyện, nhưng làm điều đó tốt.
- Đừng lặp lại chính mình.
- Trước tiên hãy viết bài kiểm tra không thành công, sau đó viết mã để vượt qua bài kiểm tra.
- Các kết nối giữa các đơn vị bị bung lỏng. Họ không nên biết nhiều về nhau.
- Sử dụng tính năng tiêm phụ thuộc.
Framework để sử dụng Chúng tôi có thể nâng cấp lên Delphi XE2, chủ yếu là do trình biên dịch 64-bit. Tôi đã xem Spring một chút nhưng điều này yêu cầu cập nhật từ D2007 và điều đó sẽ không xảy ra ngay bây giờ. Có thể năm sau.
Câu hỏi Hầu hết mã vẫn không được kiểm tra tự động. Vậy con đường nào tốt nhất để tăng khả năng kiểm tra mã cũ? Hoặc có lẽ tốt nhất là bắt đầu viết các bài kiểm tra cho các phương thức mới? Tôi không chắc chắn cách tốt nhất để tăng thử nghiệm tự động và nhận xét về nó là gì. Chúng ta có thể sử dụng D2007 + DUnit bây giờ và sau đó dễ dàng chuyển sang Delphi XE2 + Spring sau đó không?
CHỈNH SỬA: Giới thiệu về phương pháp thử nghiệm hiện tại để kiểm tra thủ công chỉ là "pound vào nó và cố gắng phá vỡ nó" là Chris gọi nó.
Bỏ phiếu để di chuyển sang Lập trình viên. Đó là một câu hỏi hay và phù hợp hơn ở đó tôi tin. –
+1 Cảm ơn bạn đã đặt câu hỏi này. – jrodenhi