2010-09-26 28 views
7

Tôi đã đọc "Phát triển phần mềm hướng đối tượng, hướng dẫn bằng thử nghiệm" gần đây. Tác giả của cuốn sách này sugested để luôn bắt đầu phát triển một tính năng với bài kiểm tra chấp nhận đầu cuối (trước khi bắt đầu chu kỳ TDD) để không mất quá trình theo dõi và đảm bảo rằng bạn vẫn ở trên cùng một trang kiểm tra đơn vị."Zero Iteration" - kết thúc để kết thúc kiểm tra chấp nhận trong tính năng liên lạc đơn giản hình thức

Ok, vì vậy tôi đã bắt đầu viết một ứng dụng đơn giản về veeeery trong python + django chỉ để thử cách tiếp cận này. Tôi muốn Người dùng có thể đặt câu hỏi qua biểu mẫu liên hệ, câu hỏi sau đó phải được lưu trữ trong một db và một tín hiệu sau khi hoàn thành sẽ được gửi để thông báo cho người gửi thư sẽ gửi thông báo tiếp theo.

Câu hỏi là - cách bạn tiếp cận thử nghiệm đầu cuối đầu tiên này trong trường hợp này? Bạn có chứa tất cả các khả năng trong bài kiểm tra đầu tiên này không, hoặc có lẽ tôi hiểu lầm toàn bộ kỹ thuật này.

Bất kỳ ví dụ nào cũng được hoan nghênh nhất.

Trả lời

1

Bạn không phải chứa tất cả các khả năng trong các bài kiểm tra chấp nhận - bạn vẫn sẽ viết các bài kiểm tra đơn vị. Vì vậy, tôi sẽ nói rằng một thử nghiệm duy nhất "người dùng có thể điền vào biểu mẫu, lưu và tải lại" là đủ để bắt đầu. Sau đó, bạn có thể thêm các thử nghiệm khác nếu bạn nghĩ rằng một khía cạnh cụ thể của hệ thống của bạn là đủ quan trọng để nó cần một bài kiểm tra chấp nhận. Đừng lo lắng về việc xử lý tất cả các khả năng ở đây, bạn vẫn sẽ viết tấn các bài kiểm tra đơn vị, nơi bạn sẽ kiểm tra tất cả mọi thứ! Cách đơn giản nhất để bắt đầu là tăng thử nghiệm chấp nhận của bạn song song với mã: vì vậy hãy bắt đầu với thử nghiệm mà người dùng có thể nhập dữ liệu, triển khai nó cho đến khi dừng, sau đó thêm vào kiểm tra điều kiện mà người dùng có Nó sẽ mất một lúc để thực hiện cơ sở hạ tầng ban đầu cho bài kiểm tra chấp nhận, trước khi bạn bắt đầu viết mã sản xuất, nhưng bạn không thể thoát khỏi nó, và có nhiều lợi ích khác nhau để kiểm tra trước.

+0

vì vậy trong ví dụ tầm thường này, kiểm tra chấp nhận có thể là một cái gì đó như thế này: http://dpaste.com/249285/? – bx2

+0

@ bx2, đây có vẻ là một nơi tốt để bắt đầu – Grzenio

0

Trường hợp sử dụng này dẫn đến một số trường hợp kiểm tra (mỗi lần kiểm tra một đường dẫn có thể thực hiện riêng).

Khi viết các bài kiểm tra tập trung vào một kết quả có thể, sau khi bộ kiểm tra trong khi phát triển. Các xét nghiệm đầu tiên sau đó cũng cung cấp cho bạn mạng lưới an toàn như các xét nghiệm hồi quy để không phá vỡ bất cứ điều gì mà bạn đã thực hiện thành công.

thử nghiệm đầu tiên của tôi sẽ là:

  • Chúc mừng con đường phần 1 frontend dạng + lớp điều khiển: Người dùng đi dữ liệu chính xác, điều khiển lấy mẫu và đăng nhập để an ủi/stdout
  • Chúc mừng con đường phần 2: Thay vì đăng nhập vào stdout, mọi thứ được lưu trữ vào cơ sở dữ liệu
  • Đường dẫn hạnh phúc Phần thứ ba: Thư tiếp theo được gửi và nhận bởi Người dùng
  • xử lý lỗi xác thực (người dùng điền biểu mẫu không chính xác, ví dụ: trường bắt buộc, sai email mẫu)
  • ...

Điền phần còn lại;) Phụ thuộc vào các yêu cầu chi tiết hơn ...

Hãy nhớ triển khai trên như đơn giản càng tốt. Khi tất cả các thử nghiệm được đặt ra, refactor tàn nhẫn để làm cho "chất lượng nội bộ" tốt đẹp.

+0

Đây không phải là những gì tôi đề cập. Bạn đã cho tôi danh sách các bài kiểm tra đơn vị có thể - thật dễ dàng.Tôi đã hỏi về ** bài kiểm tra chấp nhận đầu tiên ** như trong BDD, chỉ bao gồm tính năng kết thúc từ đầu đến cuối của tính năng đã cho. Nó sẽ được sử dụng thêm để có nghĩa là. theo dõi sự tiến bộ của bạn vv Đó là lý do tại sao câu hỏi này là một IMHO phức tạp. Tôi không biết nếu bạn đọc cuốn sách tôi đã đề cập? – bx2

+0

xin lỗi, chưa đọc sách, nhưng biết nội dung của nó gần như. imho ở trên không phải là đơn vị kiểm tra nhưng end-to-end (điền từ, gửi đến máy chủ, nhận được nhận thư). cùng với các bài kiểm tra này, tôi sẽ viết các bài kiểm tra đơn vị của mình trong nội bộ. tôi cũng sẽ thiết kế các bài kiểm tra từ đầu đến cuối để tập trung tốt hơn. –

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