2010-02-10 37 views
8

Tôi đã được thử nghiệm với một số khái niệm từ XP, giống như sau:Lập trình cực có cần các công cụ lập trình không?

  1. Pair Programming
  2. thử nghiệm đầu tiên trình
  3. Việc giao hàng Incremental
  4. Ruthless Refactoring

Cho đến nay rất tốt cho đến khi tôi có một gốc cây chính:

Tôi làm cách nào để ký các trường hợp thử nghiệm của tôi khi chưa có mã nào? Tôi phải thiết kế chúng dựa trên nền tảng nào? Từ những giả định đơn giản? Từ các yêu cầu ban đầu?

Hoặc đây có phải là sơ đồ UML và "giai đoạn phân tích" phù hợp không? Chỉ cần phải hỏi vì trong một số cuốn sách XP tôi đã đọc, có rất ít hoặc không có thảo luận về bất kỳ công cụ lập sơ đồ nào (có một gợi ý tôi đưa ra giả và một vài loại sơ đồ ... nhưng nó đã được đề cập đến.). không giúp tôi viết các bài kiểm tra của tôi)

+1

btw, Kiểm tra lập trình đầu tiên (TFP) bây giờ thường được gọi là Kiểm tra phát triển theo hướng (TDD) và tôi không nghĩ rằng nó đã từng là Tái cấu trúc không cần thiết, nhưng thay vào đó được kết hợp trong TDD. – quamrana

Trả lời

6

Quy trình nhanh thường dựa trên giấy, nhưng điều này làm cho một số giả định cơ bản có thể không đúng trong môi trường công ty.

Ngay cả khi nhóm của bạn được phân phối, bạn vẫn có thể sử dụng bút và giấy (với máy quét màu) hoặc bảng trắng (với máy ảnh kỹ thuật số giá rẻ). Việc chụp ảnh theo cách này có thể nhanh nhẹn hơn là cố gắng sử dụng các công cụ phần mềm chuyên dụng hơn vì bạn có xu hướng tập trung giải quyết vấn đề, thay vì hướng công cụ hoặc tinh chỉnh trình bày trực quan.

Tôi làm cách nào để thiết kế các trường hợp thử nghiệm của mình khi chưa có mã nào? Từ cơ sở nào tôi phải thiết kế chúng? Từ các giả định đơn giản? Từ các yêu cầu ban đầu?

Bạn bắt đầu từ câu chuyện của người dùng được thông báo bởi các yêu cầu ban đầu và thảo luận với "khách hàng tại chỗ" nếu bạn đủ may mắn để có.

Ý tưởng là bạn viết kiểm tra trước mã, để bạn biết khi nào bạn đã hoàn tất. Mã có thể không chạy đúng, hoặc thậm chí biên dịch, từ điểm mà bạn bắt đầu viết bài kiểm tra cho đến khi bài kiểm tra chạy và trôi qua. Điều này tương tự như phát triển "thử nghiệm cuối cùng" truyền thống, ngoại trừ thời gian mã bị hỏng có xu hướng ngắn hơn và bạn được đảm bảo có thử nghiệm ở cuối.

Thay đổi cách phát triển được thúc đẩy từ "Tôi sẽ viết mã nào tiếp theo?" để "Tôi sẽ viết bài kiểm tra gì tiếp theo?" Câu hỏi thứ hai là dễ dàng hơn để trả lời miễn là bạn có một ý tưởng cơ bản về những gì bạn muốn làm.

+0

Tôi đồng ý với @richj. Bạn đang phải tự hỏi những gì để kiểm tra không có mã. Mặc dù thực tế này, bạn có thể có một ý tưởng về những gì hệ thống của bạn nên thực hiện, và những gì các lớp đối tượng bạn cần. Sau khi tạo các lớp sơ khai, hãy viết các bài kiểm tra xung quanh đối tượng của bạn và các phương thức của nó, nếu bạn sử dụng một phương pháp OOP. Nếu không, nếu bạn đang sử dụng Mẫu thiết kế nhà máy, có lẽ bạn nên thử nghiệm chức năng thay thế. Dù bằng cách nào, bạn phải kiểm tra những gì mà người quản lý dự án hoặc khách hàng của bạn yêu cầu. –

5

Làm cách nào để thiết kế các trường hợp thử nghiệm của tôi khi chưa có mã nào? Từ những gì cơ sở nào tôi phải thiết kế chúng? Từ giả định đơn giản? Từ các yêu cầu ban đầu?

Để viết bài kiểm tra bạn không cần bất kỳ mã nào. Bạn biết đầu vào của bạn và bạn biết kết quả mong đợi của bạn. Vì vậy, bạn có thể thiết kế một trường hợp thử nghiệm để thực hiện nó.

Tôi không thấy mối quan hệ chặt chẽ nào giữa nội dung UML và XP. UML là để thiết kế phần mềm và XP là quá trình bạn theo dõi để phát triển phần mềm đó. Vì vậy, hãy làm rõ câu hỏi nếu có thể.

+0

Có, với báo trước rằng trường hợp thử nghiệm của bạn phải đẩy những đầu vào đó vào mã không tồn tại của bạn và đọc kết quả đầu ra từ nó. Đây là điểm bạn bắt đầu hình thành các giao diện của các lớp học của bạn. và sử dụng triển khai thực hiện cho đến khi bạn có bài kiểm tra được viết. – Paolo

5

Các trường hợp kiểm tra đến từ các yêu cầu ban đầu. Họ chỉ định những gì bạn sẽ xây dựng, vì vậy các thử nghiệm khác sẽ đến từ đâu?

Một kỹ thuật mà bạn có thể thấy hữu ích là lấy một đối tượng địa lý và chia nhỏ nó thành ba phần tử: Given, When, Then. Được cung cấp là dữ liệu ban đầu, Khi là cuộc gọi chương trình, Sau đó, là kết quả mong muốn. Vấn đề là, bất kỳ yêu cầu nào bạn không thể phân tích như thế này có thể không chính xác, hoặc ít nhất là cần thêm chi tiết.

Nhóm thử nghiệm của Google rất thích cách tiếp cận này và đã viết blog rộng rãi về phương pháp này. Find out more.

2

XP không có "giai đoạn phân tích".

Bạn không cần sử dụng công cụ lập sơ đồ với XP, mặc dù không có gì ngăn bạn nếu bạn chọn sử dụng.

Bạn muốn tạo mô hình gì?

Có vẻ như bạn muốn mô tả miền sự cố (ví dụ: lập mô hình phân tích) thay vì ghi lại việc triển khai. XP không hoạt động như các phương pháp thông thường mà một chuyên gia thực hiện "phân tích" và một chuyên gia khác "viết mã". Trong XP, có khả năng là nhà phân tích là một nhà phát triển làm việc với ai đó trong doanh nghiệp làm việc cùng nhau để chia nhỏ câu chuyện của người dùng và ước tính họ.

Bạn thường không bắt đầu các trường hợp kiểm tra tài liệu - chúng tôi viết kiểm tra tự động bằng mã, hoặc bằng mã hoặc trong một đặc tả thực thi như JBehave hoặc dưa chuột. Đó là về nỗ lực nhiều như sơ đồ chúng nhưng với lợi tức đầu tư tốt hơn nhiều.

+0

không có yêu cầu thu thập? không wireframing? ngay sau khi họ cung cấp cho bạn dự án bạn nhảy thẳng để mã hóa nó? – yretuta

+0

bạn cần ít nhất đã lên kế hoạch cho một công việc lặp đi lặp lại - điều đó có nghĩa là có ít nhất ước tính đủ cho một đến ba tuần giá trị công việc ... sẽ bao gồm các cuộc thảo luận với cuộc trò chuyện kinh doanh - không khai thác các tệp của sơ đồ. – daf

+0

bạn đã từng làm việc với XP chưa? Tôi đã giới thiệu XP ở đây trong văn phòng nhưng thời điểm chúng tôi có một dự án mới, người lập trình chính chỉ nắm lấy nó và đi thẳng vào mã. làm thế nào tôi có thể thuyết phục các up cao hơn để có một dự án được chạy dưới XP? – yretuta

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