2008-10-24 21 views
10

Tôi thực sự muốn thúc đẩy phát triển TDD bên trong cửa hàng mà tôi đang làm việc. Rất nhiều người cao niên ở đó không làm việc với thử nghiệm đơn vị hoặc thử nghiệm đơn vị đã đánh vào cơ sở dữ liệu.Làm thế nào để chuyển đổi một cửa hàng phần mềm sang TDD?

Tôi rất muốn mang lại một số lý lẽ tốt, sách để đào tạo, huấn luyện viên có thể để dễ dàng chuyển đổi.

+0

Bất kỳ đề xuất nào khác? Sách? Huấn luyện viên? Chồn? –

Trả lời

14

Tôi nhận thấy rằng thường rất khó để đẩy TDD từ nhà phát triển lên. Những gì tôi có xu hướng làm là nói về những lợi ích của TDD càng nhiều càng tốt và bất cứ nơi nào có thể, giới thiệu các yếu tố của TDD bản thân mình từng chút một.

Nếu họ không quan tâm, hãy bắt đầu một dự án mới với các bài kiểm tra đơn vị trong đó (người quản lý hiếm khi nhớ thêm phạm vi kiểm tra) và bắt đầu tự mình phát triển theo cách đó. Từ từ cho thấy phần còn lại của nhóm của bạn những lợi ích và cố gắng để giành chiến thắng một số chuyển đổi. Khi bạn có một vài nhà phát triển khác ở bên cạnh bạn, hãy bắt đầu thúc đẩy quản lý để được đào tạo.

Bạn cũng có thể đề nghị chạy một số bữa ăn trưa-n-học về nó cho các nhà phát triển khác. Dạy học là cách học tốt nhất và hy vọng bạn sẽ có được đồng minh. Nếu bạn may mắn, bạn có thể nói sếp của bạn để mua pizza cho bữa trưa-n-learn và mọi lợi ích.

1

Nếu dự án không có đủ bài kiểm tra đơn vị, bạn có thể chỉ ra các lỗi trong cơ sở dữ liệu vấn đề có thể đã tránh được nếu đã có các bài kiểm tra đơn vị.

Để đẩy TDD, hoặc một số tôn giáo mã khác, đừng bận tâm.

Đối với một số người (và một số loại mã), TDD rất tuyệt. Một số người không làm việc theo cách đó, và không được hưởng lợi từ thử nghiệm đầu tiên. Miễn là họ không tránh thử nghiệm hoàn toàn, tôi không nghĩ rằng nó quan trọng.

3

Giống như Rob P nói - Tôi cũng thấy rằng việc rao giảng đã kết thúc tôi với một giọng khàn khàn và không ai nghe. Tôi nhận được kết quả nhanh hơn và phổ biến hơn bằng cách thực hiện và giữ cho phần đó hiển thị. Hãy cởi mở để đặt câu hỏi và đừng ép buộc nó. Khuyến khích và ca ngợi nhưng không thuyết giảng.

Kết hợp nó với việc xuất bản kết quả thử nghiệm của bạn- và tự động kiểm tra - bạn có thể gửi email có thể. Bạn muốn có nhiều nhắc nhở tinh tế để cho mọi người thấy phương pháp của bạn tốt đến mức nào.

3

Tôi nghĩ rằng một cách tốt để lẻn vào các hiệu trưởng TDD vào một sản phẩm hiện có là bắt đầu viết các bài kiểm tra đơn vị cho các lỗi. Bằng cách này bạn từ từ bắt đầu xây dựng một tập hợp các bài kiểm tra đơn vị để kiểm tra hồi quy trở thành một phần không thể tách rời của dự án, đặc biệt nếu bạn có thể chạy chúng như là một phần của quá trình xây dựng của bạn.

Rào cản duy nhất sẽ là mã hiện tại có thể có khả năng chống thử nghiệm, nhưng đó chỉ là một lý do khác để thực hiện một số phép tái cấu trúc.

Khi mọi người bắt đầu nhận ra những lợi ích mà động lượng sẽ phát triển, nhưng bạn cần phải đi tiên phong.

0

Một thách thức lớn với TDD được đưa vào "từ dưới lên" là khi đẩy xô đẩy (vì nó chắc chắn sẽ xảy ra khi thời hạn tiếp cận), quản lý sẽ vượt quá sự nhấn mạnh vào các thử nghiệm: "Chúng tôi không đủ khả năng để kiểm tra! Chúng ta phải hoàn thành dự án! " Tất nhiên, đây là tình hình rất (hạn chót hiện ra lờ mờ, tồn đọng đáng kể, tiến độ không đúng với lời hứa, dẫn đến chuyển dịch ưu tiên và nhiệm vụ nhanh chóng), nơi mà những lợi ích của TDD thực sự bắt đầu. dự án/lặp lại bắt đầu tách rời trong cùng một tuổi, và quản lý nhìn lại và nói "Chúng tôi đã thử TDD và nó không giúp gì cả."

3

Trong khi tôi không thể nói cho bạn biết những gì sẽ làm việc, tôi có thể cho bạn biết một số điều mà chắc chắn sẽ không làm việc và nên tránh:

Tôi sẽ viết mã, bạn viết thử nghiệm

Điều này luôn xuất hiện lúc đầu, mọi người cho rằng vì bạn quá gung-ho về thử nghiệm, bạn nên là người viết bài kiểm tra, điều này không làm việc gì cả và bỏ lỡ toàn bộ vấn đề. Bạn đã viết bài kiểm tra vi phạm, vì vậy bạn phải sửa nó.

Nếu bạn bắt đầu viết kiểm tra cho mã của mình, chắc chắn ai đó sẽ phá vỡ các thử nghiệm đó. Sau đó, nếu bạn yêu cầu họ sửa chữa nó, họ thường sẽ nói đó là trách nhiệm của bạn. Điều này không nhất thiết là họ bị giật, nó chỉ có thể là họ không hiểu quá trình. Đây là nơi bạn sẽ cần sao lưu quản lý.

Tôi sẽ bắt đầu và mọi người sẽ theo dõi.

Giống như những người khác đã nói, TDD không hỗ trợ quản lý là rất khó. Nếu có bất kỳ devs người không "uống Cool-Aid" sau đó họ sẽ liên tục được phá vỡ các xét nghiệm của bạn và không quan tâm. Nếu bạn không thể làm cho họ tin, thì bạn cần quản lý nói với họ đó là công việc của họ.

Điều cuối cùng mang lại cho tôi xung quanh là xem sự sụp đổ của dự án do có quá nhiều lỗi. Nó thuyết phục tôi rằng tôi đã làm điều gì đó sai lầm về cơ bản. Một nghiên cứu nhỏ đưa tôi đến thử nghiệm tự động, và với một chút quyết tâm, tôi đã tự học những điều cơ bản. Có lẽ nói chuyện với các đồng nghiệp của bạn về các dự án tương tự (tất cả chúng ta có ít nhất một ...) sẽ giúp họ nhận ra rằng họ có thể muốn thử một cái gì đó mới.

2

Chì bằng ví dụ:

  • sử dụng TDD trên tất cả các mã bạn viết
  • cho họ thấy những lợi ích ngay sau khi bạn có cơ hội (hồi quy phát hiện bởi các đơn vị kiểm tra hoặc cố tái tạo trong của bạn môi trường kiểm tra đơn vị)
  • cung cấp "mã sạch mà làm việc"
  • đề nghị giúp đỡ của bạn cho người khác
  • đừng giáo điều - TDD là không phải viên đạn bạc
  • làm cho các bài kiểm tra đơn vị của bạn hiển thị: chúng phải biên dịch cùng với mã họ kiểm tra
Các vấn đề liên quan