End to end testing là gì năm 2024
Một học viên lớp DevOps nhắn tin cho tôi "Anh Cường, em không hiểu tại sao trong khoá học DevOps, mà bọn em phải lập trình kiểm thử là sao nhỉ. Em muốn được học về Kubernetes, AWS nhiều hơn". Rõ ràng là một câu hỏi rất thực dụng và đúng chất của một lập trình viên: rất thích công nghệ mới hot trend, và tránh công việc kiểm thử càng nhiều càng tốt. Show
Tuy nhiên kiểm thử tự động là một bước quan trọng trong cả quy trình CI/CD. Thử hình dùng mọi bước trong quy trình CI/CD đều được tự động, chạy rất nhanh, nhưng khi đến bước kiểm thử, phải mất vài ngày để kiểm tra chất lượng sản phẩm, toàn bộ quy trình sẽ bị ách tắc tại đây. Do đó để CI/CD vận hành đúng, cần có nhiều kịch bản kiểm thử tự động ở nhiều thành phần của sản phẩm để cải tiến chất lượng. End to End Testing khác gì với Unit Testing Ngày hôm nay, vận hành của một web site phức tạp hơn rất nhiều trước đây. Giao diện web sẽ kết nối tới một dịch vụ REST. Dịch vụ này có thể gọi tiếp đến nhiều dịch vụ REST hoặc gRPC phía sau. Nếu chỉ kiểm thử từng dịch vụ REST thì chưa đủ, và không đảm bảo giao diện hoạt động theo đúng ý người dùng. Do đó End to End Testing sẽ rất hữu ích đảm bảo trải nghiệm sử dụng được chức năng ứng dụng thay vì quá mất nhiều thời gian để viết unit test từng dịch vụ REST API. Tối ưu nhất là chúng ta viết đầy đủ Unit Test và End to End Test. Nhưng nếu do nguồn lực có hạn, thì nên ưu tiên viết End to End Test trước. Là người triển khai hệ thống automation test chắc hẳn sẽ có lúc bạn thắc mắc rằng, liệu khi bạn thực thi một file Trong bài này sử dụng Address module | Cybozu Garoon (username: brown / password: brown) để làm ví dụ minh họa. Cybozu Garoon là một sản phẩm làm việc cộng tác. Nó là một trong các sản phẩm chủ lực của tập đoàn Cybozu. Bạn có thể thử trải nghiệm online để biết thêm về sản phẩm Tổng quan về các thành phầnTrước tiên, để hiểu được quy trình hoạt động của hệ thống automation test, bạn cần hiểu được những thành phần nào sẽ liên quan từ lúc bắt đầu đến lúc kết thúc việc thực thi một Ví dụ 01:
Để thực thi được ví dụ trên, chúng ta cần 4 thành phần chính:
2 là những những liệu đã xác định cụ thể tham gia vào quá trình kiểm thử phần mềm. Nó nhằm xác định chương trình máy tính có phản hồi đúng với những gì mong đợi tương ứng với 2 cung cấp. Tùy vào góc nhìn, chúng ta có thể phân loại test data thành nhiều loại khác nhau. Ví dụ: 4 dùng cho positive/negative testing; hay input test data và expected test data... Mô tả chuyên sâu về test data hãy truy cập ở đây
Khi chúng ta dùng test runner thực thi một test spec (hay test script) thì chương trình sẽ xử lý theo flow bên dưới: Mô tả(1) Run command để thực thi test specVới webdriverio framework thì có thể run lệnh:
5 (tham khảo: https://webdriver.io/docs/gettingstarted) (2) Xử lý dataBước này sẽ tương ứng với phần code sau trên ví dụ 01:
(3) Test dataData được khai báo, khởi tạo sẽ được lưu trữ vào bộ nhớ của máy tính và sẽ được sử dụng ở các quy trình tiếp theo như truyền vào test-flow, page object, hoặc kiểm chứng kết quả. (4) Call test-flowThực thi một hoặc nhiều test flow của test spec. (5) Call input test dataĐây là quá trình gọi test data từ bộ nhớ của hệ thống và truyền vào các tham số của test-flow hoặc page object. (6) Call PageObjectsThực thi một hoặc nhiều page object của test spec, page object có thể được gọi trực tiếp từ test spec hoặc từ test flow, tùy vào cách thiết kế chương trình của bạn. (7) Thực thi các bước của test case trên UIỞ bước này chương trình sẽ tương tác với web element để thực thi các tính năng của ứng dụng, đối với những bước cần nhập data và UI thì sẽ dùng input data ở bước 5. Ví dụ một số phương thức: input username, input password, click Login. (8) Lấy giá trị trên UI sau khi ứng dụng thực thiĐể đảm bảo các tính năng của ứng dụng hoạt động đúng sau khi thực thi ở bước 7, chúng ta cần phải lấy được dữ liệu hiển thị thật sự lưu vào bộ nhớ và sử dụng cho việc so sánh ở bước 9. Ví dụ: sau khi login vào hệ thống ở bước 7, thì bước này sẽ lấy tên hiển thị sau khi đăng nhập và lưu vào bộ nhớ. (9) So sánh dataBước này sẽ so sánh giá trị sau khi ứng dụng thực thi và giá trị người developer mong muốn. Nếu hai giá trị này giống nhau thì test case sẽ cho kết quả passed và ngược lại. (10) Báo cáo kết quả testSau khi có kết quả passed/failed của tất cả các test cases trong test spec, hệ thống sẽ in ra danh sách báo cái kết quả của từng case, với thông tin và format tùy thuộc vào công cụ reporter mà hệ thống đang sử dụng, có thể là JUnit, Allure, Mocha... Một số lưu ýTrên đây là trình tự hoạt động từ lúc bắt đầu cho đến lúc kết thúc của một test spec. Bạn có thể cài đặt một môi trường để thực thi một test spec đơn giản và kiểm chứng lại những trình tự ở trên để hiểu một cách sâu sắc hơn. E2E là gì trong kinh doanh?E2E (End-to-end) là, “… một thuật ngữ được sử dụng để mô tả các sản phẩm hoặc giải pháp bao gồm mọi giai đoạn trong một quy trình cụ thể, thường không cần bất kỳ thứ gì được cung cấp bởi bên thứ ba. Hệ thống end to end là gì?End To End được hiểu là quá trình cung ứng sản phẩm từ đầu đến cuối. Nó mở ra một tầm nhìn bao quát, toàn diện trong việc quản lý nhà cung cấp, sản xuất và phân phối. Cụ thể, End To End là quá trình từ thiết kế sản phẩm, thu mua nguyên vật liệu, lên kế hoạch và sản xuất. Kết nối end to end là gì?End To End là thuật ngữ tiếng Anh dùng để chỉ một quy trình đầu cuối của các hệ thống hay phương pháp, dịch vụ nào đó. Chúng hầu như khép kín từ điểm đầu cho đến điểm kết thúc, loại bỏ càng nhiều giai đoạn trung gian càng tốt. Quy trình đầu cuối là gì?Qui trình đầu cuối (tiếng Anh: End-to-end) mô tả qui trình mà một hệ thống hoặc dịch vụ hoạt động từ đầu đến cuối và cung cấp một giải pháp chức năng hoàn chỉnh, thường là không cần sự trợ giúp từ bên thứ ba. |