Chúng tôi đang trong giai đoạn đầu của việc cố gắng thực hiện TDD. Tôi đã giới thiệu cho các công cụ TDD của Visual Studio Team System và nhóm nghiên cứu rất vui mừng về các khả năng. Hiện tại chúng tôi sử dụng Devpartner để bảo vệ mã, nhưng chúng tôi muốn loại bỏ nó bởi vì nó đắt tiền. Chúng tôi có kinh nghiệm rất hạn chế trong TDD và muốn đảm bảo rằng chúng tôi không đi sai hướng. Hiện tại chúng tôi đang sử dụng SourceSafe để kiểm soát nguồn nhưng sẽ di chuyển sang Hệ thống nhóm trong khoảng một năm.Bắt đầu với TDD?
Tôi có thể cho bạn biết các ứng dụng của chúng tôi rất tập trung vào dữ liệu. Chúng tôi có khoảng 900 bảng, 6000 thủ tục được lưu trữ và khoảng 45GB dữ liệu. Chúng tôi có rất nhiều tính toán dựa trên tỷ lệ người dùng và tỷ lệ khác nhau trong hệ thống. Ngoài ra rất nhiều mã của chúng tôi dựa trên thời gian (tính lãi cho ngày hiện tại). Một số tính toán này rất phức tạp và rất chuyên sâu (chỉ một số ít người biết chi tiết cho một số người trong số họ).
Chúng tôi muốn triển khai TDD để giải quyết các vấn đề về QA. Rất nhiều nhà phát triển buộc phải sửa lỗi trong các lĩnh vực mà họ không quen thuộc và cuối cùng phá vỡ một cái gì đó. Ngoài ra còn có các khu vực mà các nhà phát triển hầu như sợ liên lạc vì mã được sử dụng bởi tất cả mọi thứ trong hệ thống. Chúng tôi muốn giảm thiểu vấn đề này.
Tôi sợ vì mã của chúng tôi tập trung vào dữ liệu nên việc triển khai TDD có thể phức tạp hơn một chút so với hầu hết các hệ thống. Tôi đang cố gắng để tìm ra một gameplan mà tôi có thể trình bày để quản lý nhưng tôi muốn hy vọng không bị cuốn vào một số sai lầm mới bắt đầu TDD. Ngoài ra nếu các công cụ/cơ sở trong Team System làm cho TDD hoàn thiện hơn thì điều đó sẽ tốt đẹp nhưng chúng tôi không muốn đợi Team System bắt đầu.
Câu hỏi đầu tiên mà chúng tôi yêu cầu là chúng ta nên bắt đầu với các công cụ trong studio trực quan? Tôi đã đọc bài viết là mọi người phàn nàn về các công cụ nội tại trong studio trực quan (cần tạo một dự án riêng để tạo thử nghiệm) nhưng một điều về các công cụ trong studio trực quan là miễn phí và tích hợp tốt. Nếu chúng tôi quyết định sử dụng thứ gì đó như XUnit, MBUnit hoặc NUnit thì chúng tôi rất có thể sẽ có một số chi phí đáng kể:
1) Nếu chúng tôi muốn Tích hợp IDE (không đề cập đến hầu hết mã của chúng tôi) là VB.Net)
---TestDriven.Net hoặc Resharper hoặc ?????
2) Nếu chúng ta muốn bảo hiểm mã
--- NCover (Có vẻ khá đắt tiền cho các chức năng của nó)
Ngoài ra tôi đã nhìn thấy một số chức năng khá mát mẻ demoed trong visual studio 2010. Giống như khả năng để làm đầu vào kiểm tra (dữ liệu được nhập trên biểu mẫu) hoặc khả năng ghi lại những gì người dùng đã thực hiện và sau đó cấp dữ liệu đó vào thử nghiệm đơn vị của bạn để tạo lại sự cố.
Ngoài ra, mặc dù tôi không hoàn toàn nắm bắt được khái niệm đối tượng giả mạo, tôi biết rất nhiều người cảm thấy đó là điều phải. Câu hỏi đặt ra là tất cả các khuôn khổ giả mạo có thể cắm vào phiên bản TDD (MSTEST) của studio trực quan không?
Tôi đã khuyên quản lý rằng có lẽ chúng tôi chỉ nên thêm thử nghiệm hồi quy trong tương lai (phát triển mới hoặc lỗi tìm thấy) nhưng không cố gắng xem xét toàn bộ mã của chúng tôi và đưa vào kiểm tra đơn vị. Nó sẽ là quá lớn của dự án.
Dù sao, tôi sẽ đánh giá cao sự giúp đỡ của bất kỳ ai.
TDD! = Thử nghiệm đơn vị. Thả thẻ TDD - chỉ cần gọi nó là thử nghiệm. – Tim