Chúng tôi đang sử dụng BDD và sử dụng SpecFlow để thúc đẩy sự phát triển của chúng tôi (ATDD).Sử dụng SpecFlow để kiểm tra hồi qui từ đầu đến cuối
Nhóm QA của chúng tôi muốn xác định các thử nghiệm hồi quy đầu cuối của riêng mình (trong Gherkin/SpecFlow) và tái sử dụng các bước mà chúng tôi đã xác định.
(Xin lưu ý - Tôi biết rằng đây không phải là một ví dụ tuyệt vời nhưng nó phải cung cấp đủ thông tin chi tiết)
Xét nghiệm có thể bao gồm ..
- Đăng nhập
- Tìm kiếm một sản phẩm
- Chọn sản phẩm để mua
- Tạo đơn đặt hàng
- Chọn tùy chọn phân phối.
- Gửi đơn đặt hàng.
- Hủy đơn đặt hàng.
sẽ Điều này cho thấy một kịch bản như ..
Given Tôi đăng nhập
Khi tôi Tìm kiếm một sản phẩm
Và tôi Chọn một sản phẩm để mua
Và tôi Tạo đơn đặt
Và Tôi Chọn tùy chọn phân phối
Và tôi Gửi đơn đặt hàng
Và tôi Hủy đơn đặt hàng
Sau đó ?? !!
Điều này rõ ràng là sai vì chúng tôi không kiểm tra đầu ra ở từng bước.
Vì vậy này có thể được giải quyết như một chuỗi các kịch bản:
Kịch bản 1:
Với tôi đăng nhập
Khi tôi Tìm kiếm một sản phẩm
Sau đó, tôi nhìn thấy một danh sách các sản phẩm
Kịch bản 2:
Khi tôi chọn một sản phẩm để mua
Sau đó, tôi có thể tạo đơn đặt hàng
Kịch bản 3:
Khi tôi tạo ra thứ tự
Và tôi Chọn tùy chọn phân phối
Sau đó, tôi có thể gửi lệnh
vv vv
Vấn đề chính với điều này là rằng có vẻ như không có cách để xác định thứ tự/chuỗi mà các kịch bản được chạy trong (một đặc tính của nUnit?). Bởi vì có sự phụ thuộc giữa các kịch bản (chúng không được thiết lập cho một điểm bắt đầu biết) chúng phải được chạy theo thứ tự.
Câu hỏi của tôi là:
a) Chúng tôi đang cố gắng vừa với một chốt vuông trong một lỗ tròn?!
b) Có ai biết nếu có cách sử dụng SpecFlow/Gherkin theo cách này không?
c) Hoặc có ai biết lựa chọn thay thế nào không?
Rất cám ơn!
Rất cám ơn câu trả lời của Marcus và các bài viết bạn liệt kê - rất hữu ích! Bây giờ tôi đã rõ ràng hơn một chút về quesion từ bài kiểm tra. Đó là 'chúng ta có là khả năng chuỗi các kịch bản đã viết với nhau để chạy theo thứ tự để thực hiện các kiểm tra hệ thống từ đầu đến cuối?' ví dụ. Đăng nhập sau đó duyệt các sản phẩm sau đó gửi đơn đặt hàng sau đó đăng ký tài khoản rồi chỉnh sửa tài khoản sau đó tìm kiếm đơn đặt hàng sau đó xem lệnh rồi hủy lệnh sau đó vv vv. dường như không phải là cách để chạy các kịch bản theo thứ tự cụ thể. –
Cập nhật: nếu các kịch bản có tên '001 Thực hiện việc này', '002 Thực hiện việc đó', v.v. thì chúng được chạy theo thứ tự đó. Cảm thấy một chút hacky nhưng cho mục đích của chúng tôi điều này sẽ làm cho đến khi một giải pháp tốt hơn có thể được tìm thấy. –
Tôi chắc chắn sẽ khuyên bạn nên chống lại các kịch bản viết phụ thuộc vào thứ tự. Điều đó sẽ khó duy trì ... –