Tôi chỉ muốn thêm và cung cấp thêm một số bối cảnh về lý do tại sao chúng tôi có các cấp độ kiểm tra này, ý nghĩa thực sự của chúng với các ví dụ
Mike Cohn trong cuốn sách của mình, thành công với Agile, đã đưa ra thử nghiệm Kim tự tháp thử nghiệm như một cách để tiếp cận các thử nghiệm tự động trong các dự án. Có nhiều cách hiểu khác nhau về mô hình này. Mô hình giải thích loại thử nghiệm tự động nào cần được tạo, tốc độ họ có thể đưa ra phản hồi về ứng dụng đang được thử nghiệm và ai viết các thử nghiệm này. Về cơ bản có 3 cấp độ kiểm tra tự động cần thiết cho bất kỳ dự án nào và chúng như sau.
Kiểm tra đơn vị - Những kiểm tra thành phần nhỏ nhất trong ứng dụng phần mềm của bạn. Đây thực sự có thể là một hàm trong mã tính toán giá trị dựa trên một số đầu vào. Chức năng này là một phần của một số chức năng khác của cơ sở mã phần cứng / phần mềm tạo nên ứng dụng.
Ví dụ: Hãy sử dụng ứng dụng máy tính dựa trên web. Các thành phần nhỏ nhất của ứng dụng này cần được kiểm tra đơn vị có thể là một hàm thực hiện phép cộng, một hàm khác thực hiện phép trừ, v.v. Tất cả các chức năng nhỏ này kết hợp lại tạo nên ứng dụng máy tính.
Nhà phát triển trong lịch sử viết các bài kiểm tra này vì chúng thường được viết bằng ngôn ngữ lập trình giống như ứng dụng phần mềm. Các khung kiểm tra đơn vị như JUnit và NUnit (cho java), MSTest (cho C # và .NET) và Jasmine / Mocha (cho JavaScript) được sử dụng cho mục đích này.
Ưu điểm lớn nhất của các bài kiểm tra đơn vị là, chúng chạy rất nhanh bên dưới giao diện người dùng và chúng tôi có thể nhận được phản hồi nhanh về ứng dụng. Điều này sẽ bao gồm hơn 50% các bài kiểm tra tự động của bạn.
Các thử nghiệm tích hợp / API - Những thử nghiệm các thành phần khác nhau của hệ thống phần mềm với nhau. Các thành phần có thể bao gồm cơ sở dữ liệu thử nghiệm, API (Giao diện lập trình ứng dụng), các công cụ và dịch vụ của bên thứ 3 cùng với ứng dụng.
Ví dụ: Trong ví dụ về máy tính của chúng tôi ở trên, ứng dụng web có thể sử dụng cơ sở dữ liệu để lưu trữ các giá trị, sử dụng API để thực hiện một số xác thực phía máy chủ và nó có thể sử dụng công cụ / dịch vụ của bên thứ 3 để xuất bản kết quả lên đám mây để cung cấp thông tin khác nhau nền tảng.
Trong lịch sử, một nhà phát triển hoặc QA kỹ thuật sẽ viết các thử nghiệm này bằng nhiều công cụ khác nhau như Postman, SoapUI, JMeter và các công cụ khác như Testim.
Chúng chạy nhanh hơn nhiều so với kiểm tra UI vì chúng vẫn chạy bên dưới mui xe nhưng có thể tiêu tốn thời gian hơn một chút so với kiểm tra đơn vị vì nó phải kiểm tra giao tiếp giữa các thành phần độc lập khác nhau của hệ thống và đảm bảo chúng có tích hợp liền mạch. Điều này sẽ bao gồm hơn 30% các bài kiểm tra tự động.
Kiểm tra giao diện người dùng-
Cuối cùng, chúng tôi có các bài kiểm tra xác thực giao diện người dùng của ứng dụng. Các thử nghiệm này thường được viết để kiểm tra dòng chảy từ đầu đến cuối thông qua ứng dụng.
Ví dụ: Trong ứng dụng máy tính, có thể kết thúc luồng kết thúc, mở trình duyệt-> Nhập url ứng dụng máy tính -> Đăng nhập bằng tên người dùng / mật khẩu -> Mở ứng dụng máy tính -> Thực hiện một số thao tác trên máy tính -> xác minh những kết quả đó từ UI -> Đăng xuất khỏi ứng dụng. Đây có thể là một kết thúc để kết thúc dòng chảy sẽ là một ứng cử viên tốt cho tự động hóa giao diện người dùng.
Trong lịch sử, QA kỹ thuật hoặc người kiểm tra thủ công viết bài kiểm tra UI. Họ sử dụng các khung công tác nguồn mở như Selenium hoặc các nền tảng thử nghiệm UI như Testim để tác giả, thực hiện và duy trì các thử nghiệm. Các thử nghiệm này cung cấp nhiều phản hồi trực quan hơn khi bạn có thể thấy các thử nghiệm đang chạy như thế nào, sự khác biệt giữa kết quả thực tế và dự kiến thông qua ảnh chụp màn hình, nhật ký, báo cáo thử nghiệm.
Hạn chế lớn nhất của các bài kiểm tra UI là, chúng tương đối chậm so với các bài kiểm tra cấp độ Đơn vị và API. Vì vậy, nó chỉ bao gồm 10-20% các bài kiểm tra tự động tổng thể.
Hai loại thử nghiệm tiếp theo có thể khác nhau dựa trên dự án của bạn nhưng ý tưởng là-
Kiểm tra khói
Đây có thể là sự kết hợp của 3 cấp độ thử nghiệm ở trên. Ý tưởng là chạy nó trong mỗi lần kiểm tra mã và đảm bảo các chức năng quan trọng của hệ thống vẫn hoạt động như mong đợi; sau khi thay đổi mã mới được hợp nhất. Họ thường cần chạy trong 5 - 10 phút để nhận phản hồi nhanh hơn về các lỗi
Kiểm tra hồi quy
Chúng thường được chạy ít nhất một lần một ngày và bao gồm các chức năng khác nhau của hệ thống. Họ đảm bảo ứng dụng vẫn hoạt động như mong đợi. Chúng có nhiều chi tiết hơn các thử nghiệm khói và bao gồm nhiều kịch bản của ứng dụng bao gồm cả những tình huống không quan trọng.