2010-04-20 31 views
10

Có công cụ hoặc khung công tác nào có thể giúp kiểm tra phần mềm phân tán được viết bằng Java dễ dàng hơn không? Hệ thống của tôi đang thử nghiệm là một phần mềm ngang hàng, và tôi muốn thực hiện thử nghiệm bằng cách sử dụng một cái gì đó như PNUnit, nhưng với Java thay vì .Net.Framework hoặc công cụ cho "testing unit unit"?

Hệ thống đang thử nghiệm là một khuôn khổ tôi đang phát triển để xây dựng các ứng dụng P2P. Nó sử dụng JXTA làm hệ thống phụ thấp hơn, cố gắng che giấu một số phức tạp của nó. Nó hiện là một dự án học thuật, vì vậy tôi đang theo đuổi sự đơn giản vào lúc này. Trong bài kiểm tra của tôi, tôi muốn chứng minh rằng một đồng đẳng (chạy trong tiến trình riêng của nó, có thể với nhiều luồng) có thể khám phá một số khác (chạy trong một tiến trình khác hoặc thậm chí một máy khác) và chúng có thể trao đổi một vài thông điệp. Tôi không sử dụng mocks và stubs vì tôi cần phải nhìn thấy cả hai bên làm việc cùng một lúc. Tôi nhận ra rằng một số loại cơ chế phối hợp là cần thiết, và PNUnit dường như có thể làm điều đó.

Tôi đã tham gia một số sáng kiến ​​như Pisces, nhằm cung cấp môi trường thử nghiệm phân tán mở rộng JUnit, giúp nhà phát triển/người thử khả năng chạy JUnits từ xa và tạo các bộ thử nghiệm phức tạp bao gồm một số JUnit từ xa thử nghiệm chạy song song hoặc serially ", nhưng dự án này và một vài người khác tôi đã tìm thấy dường như đã chết từ lâu.

+9

Umm ... Tôi sẽ không gọi thử nghiệm đơn vị đó. Tôi muốn gọi nó là thử nghiệm hệ thống hoặc tích hợp của thử nghiệm chức năng hoặc thử nghiệm hiệu năng/tải. –

+0

Vâng, tôi có xu hướng đồng ý với bạn, Stephen. Trong trường hợp của tôi, đây không phải là hiệu suất (tải, căng thẳng, bạn đặt tên nó) thử nghiệm vì mục đích của thử nghiệm là để hiển thị các bộ phận của hệ thống làm việc như kế hoạch. Ví dụ, mỗi thành phần sẽ có thể khám phá những người khác, gửi và trả lời tin nhắn, v.v. Vì vậy, tôi muốn nói đây là một bài kiểm tra chức năng hoặc thậm chí một bài kiểm tra tích hợp nhỏ vì nó tập trung vào một vài tương tác liên quan đến một cặp . Vui lòng xem mô tả bổ sung ở trên để biết thêm chi tiết về phần mềm và cảm ơn sự quan tâm của bạn. – msugar

Trả lời

2

Kiểm tra phần mềm phân phối phụ thuộc rất nhiều vào loại phần mềm đó là gì, do đó, để có câu trả lời hoàn chỉnh, tôi sẽ cần phải biết phần mềm của bạn làm gì. Tuy nhiên nhìn vào PNUnit nó seams rằng hầu hết những gì nó làm là cho phép đồng bộ hóa, đặt hàng và thực hiện song song các bài kiểm tra. TestNG cũng hỗ trợ này, ví dụ, bạn có thể làm:

@Test(threadPoolSize = 3, invocationCount = 10, timeOut = 10000) 
public void testServer() { 
    : 
} 

mà sẽ gọi hàm Tuyên chiến gấp mười lần từ ba chủ đề khác nhau. Nhật ký thay đổi của TestNG 4.5 cũng gợi ý về khả năng chạy thử nghiệm từ xa, thông tin thêm có sẵn trong bài đăng blog this.

Hoặc bạn có thể kiểm tra phần mềm ConTest của IBM để kiểm tra phần mềm song song và phân phối (có mô tả tuyệt vời về cách sử dụng phần mềm here). Tôi đã có thành công lớn khi sử dụng nó để phơi bày lỗi trong các ứng dụng đồng thời của mình.

+0

Lars, cảm ơn bạn rất nhiều. Tôi đã tăng cường mô tả về phần mềm. Vui lòng cho tôi biết nếu bạn cần thêm chi tiết để tìm hiểu rõ hơn. Trong trường hợp đặc biệt này, tôi nghĩ PNUnit gần hơn để đáp ứng các yêu cầu của tôi hơn TestNG (thật không may, tôi không muốn làm việc với một nền tảng khác ngoài Java, vì vậy PNUnit không có vấn đề gì đối với tôi), nhưng sự thật là tôi don ' t biết TestNG cũng như JUnit. Tôi sẽ chú ý nhiều hơn, nhưng tôi sợ tôi đang ở trong một con hẻm mù ở đây ... – msugar

0

Vâng, có một cách rất đơn giản và không cần phải tìm hiểu bất kỳ khung công tác mới nào. Bạn có thể kiểm tra các bản ghi được tạo ra bởi các ứng dụng trên môi trường phân tán của bạn bằng grep4j. Có giao diện herehere để biết thêm thông tin.

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