Tôi hiện đang làm việc để xây dựng một bộ thử nghiệm chức năng/chấp nhận tự động cho một dự án, nhưng tôi không có nhiều kinh nghiệm viết các loại kiểm tra này, vì vậy tôi muốn có được một số đầu vào đúng cấu trúc chúng. Cụ thể, tôi đang làm việc với phần mở rộng Graphene của Arquillian.Cấu trúc đúng của các thử nghiệm chức năng/chấp nhận
Ví dụ, nói rằng tôi có 3 bài kiểm tra, A, B, và C.
Testa: Các thử nghiệm cách đăng nhập vào một tài khoản trong ứng dụng. Vì vậy, nếu thử nghiệm thành công, trình duyệt phải ở trên trang chủ/thông tin của tài khoản.
TestB: Kiểm tra sửa đổi mật khẩu của tài khoản. Điều này sẽ yêu cầu đăng nhập vào tài khoản, sau đó kiểm tra chức năng thay đổi mật khẩu.
TestC: Kiểm tra sửa đổi email của tài khoản. Điều này một lần nữa sẽ yêu cầu đăng nhập vào tài khoản, sau đó kiểm tra chức năng thay đổi email.
Nếu TestA thất bại do sự cố với mã đăng nhập, rõ ràng TestB và TestC cũng không thành công vì họ yêu cầu đăng nhập vào tài khoản.
Câu hỏi: Các thử nghiệm chức năng/chấp nhận tự động có trùng lặp với một quá trình cần thiết để hoàn thành bất kỳ thử nghiệm nào đang xác minh không? Trong trường hợp này, TestB và TestC cần phải đăng nhập vào tài khoản trước khi thực hiện bất kỳ điều gì khác. Nên mỗi bài kiểm tra một cách rõ ràng gọi cái gì đó như:
/* ...initial test setup code here */
LoginPage.login(username, password);
assertTrue(onCorrectAccountPage);
AccountModification.changePassword(newPassword);
Hoặc tôi nên sử dụng một số cách để chế giễu một tài khoản vào phiên có thể được sử dụng bởi các thử nghiệm B và C sao cho họ không thất bại ngay cả khi Testa (thực tế kiểm tra đăng nhập)?
Vì đây là những thử nghiệm chấp nhận bởi người dùng, nên tôi nên làm chính xác những gì người dùng sẽ làm và đăng nhập bất cứ khi nào cần thiết, nhưng tôi không chắc liệu đây có phải là bản sao không cần thiết. được xử lý như các đơn vị chức năng, tương tự như kiểm tra đơn vị tiêu chuẩn) và tôi muốn nhận phản hồi từ một người có nhiều kinh nghiệm hơn trong lĩnh vực này.
Xin cảm ơn trước. Hy vọng câu hỏi của tôi không quá phức tạp. :)
Được giải thích rõ ràng. Tôi đã suy nghĩ cùng những dòng này, nhưng ý tưởng "không trùng lặp" được khắc trong quá trình suy nghĩ của tôi rằng tôi không chắc chắn trong hoàn cảnh này. Cảm ơn câu trả lời của bạn. – whitlaaa