Ngược lại với previous question, tôi sẽ cố gắng đưa ra các yêu cầu của tôi.Cách tự động hóa các bài kiểm tra chức năng/tích hợp và khôi phục cơ sở dữ liệu
Tôi cố gắng để tìm thấy một số khuôn khổ/phương pháp/"điều" mà sẽ phù hợp với những điều sau đây:
- Có khả năng viết một bài kiểm tra tự động, tốt nhất là viết bằng Visual Studio, sử dụng C#.
- Thử nghiệm sẽ thúc đẩy trình duyệt web và tương tác với SUT giống như người dùng.
- Kiểm tra sẽ có thể thiết lập kịch bản thử nghiệm trong DB.
- Kiểm tra sẽ có thể khẳng định rằng tương tác của người dùng có hiệu quả mong đợi trong DB.
- Sau khi thử nghiệm hoàn tất, nó sẽ có thể khôi phục tất cả các thay đổi được thực hiện trong DB.
Nỗ lực đầu tiên của tôi là sử dụng thử nghiệm NUnit để điều khiển Selenium (và Watin trước đó), nhưng tôi gặp phải một chút vấn đề (kiểm tra liên kết ở trên) trong khi sử dụng TransactionScope để quay lại các thay đổi đã làm trong DB.
Có ai đã làm bất cứ điều gì như thế này trong "thế giới thực" không? Tôi đã tìm thấy một số tài liệu tham khảo thông qua Google, nhưng không thể tìm thấy bất kỳ ví dụ cụ thể nào về cách triển khai điều này. Sẽ không có vấn đề gì nếu tôi làm thử nghiệm đơn vị. Trong trường hợp đó, TransactionScope sẽ khá là đủ.
Chỉnh sửa: R. Harvey đã chỉ cho tôi câu hỏi this, gần như giống với hoàn cảnh của tôi.
Tuy nhiên câu hỏi đó chỉ là gần như giống hệt nhau. Ứng dụng của tôi là một phần của một nhóm dịch vụ, tất cả chúng đều truy cập vào cùng một bộ các bảng cơ sở dữ liệu. Số lượng dữ liệu thử nghiệm được yêu cầu không cho phép sử dụng hiệu quả các tập lệnh thả/tạo, vì vậy có một số giải pháp thay thế cho điều này?
Chúng tôi đang sử dụng SQL Server 2005 và tôi không thành thạo về ma thuật cơ sở dữ liệu, vì vậy nếu có cách nào đó để sử dụng kịch bản lệnh sql khác với thả/tạo, thì đó có thể là một tùy chọn.
Chỉnh sửa 2:
Dựa trên các câu trả lời và một số người đứng đầu thêm trầy xước, chúng tôi sẽ đi cho cơ sở dữ liệu trọng lượng nhẹ hơn cho các nhà phát triển để thực hiện unit-, thử nghiệm integration- và chức năng. Điều này cho phép chúng tôi sử dụng các tập lệnh sql để thiết lập và rà soát bài kiểm tra.
Điều này có thể giúp: http://stackoverflow.com/questions/768944/rollback-database-after-integration-selenium-tests –
Có, tôi không gặp vấn đề gì với Selenium. Có vẻ là một công cụ tuyệt vời! Vấn đề nằm trong việc quay trở lại những thay đổi Selenium broser hướng vào db. – juarola
Ôi trời, làm thế nào tôi có thể bỏ lỡ điều đó. Tôi đã cố gắng tìm kiếm rộng rãi trước khi đăng bài này, nhưng kịch bản trong câu hỏi đó gần như là một bản sao. Tôi sẽ thêm một điểm vào câu hỏi của mình để phân biệt với tình huống của họ ... – juarola