Tôi là một chút của một người ủng hộ giọng nói của phương pháp phát triển hướng hành vi (hay còn gọi là BDD). Tôi đã áp dụng BDD được vài năm rồi và đã áp dụng StoryQ làm khuôn khổ lựa chọn của tôi khi phát triển các ứng dụng DotNet. Mặc dù tôi đã thử nghiệm đơn vị trong nhiều năm và trước đây đã chuyển sang cách tiếp cận thử nghiệm đầu tiên, tôi nhận thấy rằng tôi nhận được nhiều giá trị hơn khi sử dụng khung BDD, bởi vì các thử nghiệm của tôi nắm bắt được ý định của các yêu cầu trong tương đối xóa tiếng Anh trong mã của tôi và bởi vì các bài kiểm tra của tôi có thể thực hiện nhiều xác nhận mà không kết thúc bài kiểm tra giữa chừng - có nghĩa là tôi có thể thấy các xác nhận cụ thể nào vượt qua / thất bại trong nháy mắt mà không cần gỡ lỗi để chứng minh.
Đây thực sự là phần nổi của tảng băng đối với tôi, vì tôi cũng nhận thấy rằng tôi có thể gỡ lỗi cả mã kiểm tra và mã triển khai theo cách được nhắm mục tiêu hơn, với kết quả là năng suất của tôi tăng lên đáng kể và tôi có thể nhiều hơn dễ dàng xác định nơi xảy ra lỗi nếu xảy ra sự cố để chuyển tất cả sang bản dựng tích hợp do đầu ra đi vào nhật ký bản dựng. Hơn nữa, StoryQ api có một cú pháp lưu loát đáng yêu, dễ học và có thể được áp dụng theo một số cách đặc biệt, không yêu cầu phụ thuộc bên ngoài để sử dụng nó.
Vì vậy, với tất cả những lợi ích này, bạn sẽ nghĩ thật dễ dàng để giới thiệu khái niệm này với phần còn lại của nhóm. Thật không may, các thành viên khác trong nhóm không ngần ngại nhìn vào StoryQ để đánh giá nó một cách chính xác (chứ đừng nói đến việc giải trí ý tưởng áp dụng BDD) và đã thuyết phục nhau thử và loại bỏ một số yếu tố StoryQ khỏi khung thử nghiệm cốt lõi của chúng ta, thậm chí mặc dù ban đầu họ ủng hộ việc sử dụng StoryQ và mặc dù mã họ muốn xóa không ảnh hưởng đến bất kỳ phần nào khác trong hệ thống thử nghiệm của chúng tôi. Làm như vậy sẽ giúp tăng khối lượng công việc của tôi một cách đáng kể và thực sự đi ngược lại, vì tôi bị thuyết phục qua kinh nghiệm thực tế rằng đó là cách tốt hơn để làm việc theo cách thử nghiệm đầu tiên trong môi trường làm việc cụ thể của chúng tôi và chỉ có thể dẫn đến lớn hơn cải thiện chất lượng phần mềm của chúng tôi, cho tôi đã tìm thấy nó dễ dàng hơn để gắn bó với thử nghiệm đầu tiên bằng cách sử dụng BDD. Để làm rõ hơn, phần lớn các bài kiểm tra đơn vị chúng tôi có xu hướng khá dễ vỡ và khó bảo trì, một sự kiểm soát từ nhiều năm thử nghiệm được áp dụng kém trong đó việc miễn cưỡng tuân thủ quy trình dựa trên thử nghiệm đã thấy các nhà phát triển bỏ thói quen cũ và thực hiện tất cả các thử nghiệm của họ khi kết thúc dự án (những người này tự xưng là Agile!).
Vì vậy, câu hỏi thực sự đi xuống như sau:
- Tôi có thể sử dụng những lý lẽ nào để thực sự lái xe về nhà rằng nhóm này sẽ tốt hơn khi sử dụng StoryQ, hoặc ít nhất là áp dụng phương pháp của BDD?
- Bạn có thể chỉ cho tôi bất kỳ bằng chứng giai thoại nào mà tôi có thể sử dụng để hỗ trợ cho lập luận của mình để áp dụng BDD làm phương pháp lựa chọn tiêu chuẩn của chúng tôi không?
- Những đối số truy cập nào bạn có thể nghĩ về điều đó có thể gợi ý rằng mong muốn của tôi để khuyến khích nhóm áp dụng BDD có thể bị lỗi? Có, tôi rất vui khi được chứng minh là sai với điều kiện là một lý lẽ hợp lý.
LƯU Ý : Tôi không ủng hộ rằng chúng tôi viết lại toàn bộ các thử nghiệm của mình, mà chỉ đơn giản là bắt đầu làm việc theo cách khác cho tất cả các công việc thử nghiệm trong tương lai và tốt nhất là theo cách chúng tôi thu hút khách hàng.
Và đối với những người bạn muốn tìm hiểu thêm về BDD, các liên kết sau có thể hữu ích:
- http://dannorth.net/int Giới thiệu-bdd /
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Intesistion
Đối với những người quan tâm đến nhiều chi tiết hơn, chúng tôi là một nhóm nhỏ gồm 4 người đang thực hiện khoảng 5 dự án lớn. "Thử nghiệm thí điểm" cho BDD ban đầu được thực hiện trong khoảng 2 tháng, với khoảng thời gian khoảng 4 tháng sau đó. Nhóm chấp nhận rằng tôi nên tiếp tục làm việc theo cách này và được thực hiện thử nghiệm của riêng họ. Tôi đã bị BDD khoảng 2 năm kể từ khi thử nghiệm kết thúc, trong khi những người khác đã trở nên rất giỏi trong việc giải quyết vấn đề. Thay vì buộc phải "đối đầu" về vấn đề này, tôi đang tìm cách để nhẹ nhàng thuyết phục đội thoát khỏi hậu phương tập thể của họ và dành thời gian để làm việc của họ.