Tìm hiểu tổng quan về Automation Testing
1.Automation Testing (Kiểm thử tự động hóa) là gì?
Automation Testing là một kỹ thuật kiểm thử phần mềm để kiểm tra và so sánh kết quả thực tế với kết quả mong đợi. Automation Testing được thực hiện bằng cách viết các kịch bản thử nghiệm và sử dụng công cụ. Kỹ thuật kiểm thử này được sử dụng để kiểm tra các nhiệm vụ lặp đi lặp lại và các nhiệm vụ thử nghiệm khác khó thực hiện thủ công.
2.Ưu, nhược điểm của Automation Testing
2.1 Ưu điểm
- Cải thiện hiệu quả:
Đầu tiên, lợi ích cụ thể được nói đến là ”Nâng cao hiệu quả”. Khi cần kiểm tra hồi quy hay phải hao phí về mặt thời gian thì kiểm thử tự động mang lại hiệu quả rõ rệt (có thể thực hiện kiểm thử ngay cả khi không có người bất kể ngày hay đêm)
- Cải thiện độ chính xác:
Khi dùng kiểm thử tự động, dù có lặp đi lặp lại bao nhiêu lần thì cũng cho ra các thao tác và kết quả giống nhau. Do đó tránh được những rủi ro không cần thiết. Ngoài ra, nếu một lỗi được tìm thấy, nó có thể được tái tạo bằng cách đơn giản là thực hiện cùng một kịch bản tự động, dẫn đến cải thiện khả năng tái lỗi. Kiểm thư tự động còn có tính năng các thao tác test được lưu lại tự động, dễ dàng kiểm tra và cưỡng chế lỗi trong thời gian kiểm thử.
Automation Testing với nhiều ưu điểm vượt trội
2.2 Nhược điểm
Trong một số trường hợp kiểm thử tự động chứng tỏ được sự quan trọng của nó. Nhưng nó cũng chứa một số rủi ro cần phải được xem xét trước khi áp dụng kiểm thử tự động cho dự án của bạn:
- Chi phí khởi đầu cho kiểm thử tự động rất cao
Bất kỳ dự án lớn nào cũng cần một đội ngũ kiểm thử, việc thuê số lượng người thử nghiệm thủ công thực sự hiệu quả về chi phí. Chi phí tự động hóa là nhiều hơn cho thiết lập ban đầu như: chi phí mua công cụ tự động hóa, đào tạo và bảo trì các kịch bản kiểm thử chi phí rất cao.
- Kiểm thử tự động không phải là 100%
Kiểm thử tự động không thể là 100%. Kiểm thử tự động có thể được áp dụng cho việc kiểm thử hồi quy, hiệu suất (performance), chịu tải (load/stress test). Các lĩnh vực như giao diện người dùng, tài liệu, cài đặt, khả năng tương thích và phục hồi thì phải được thực hiện thủ công.
- Không kiểm thử tự động với trường hợp UI không cố định
Nếu giao diện người dùng luôn thay đổi, chi phí liên quan đến bảo trì tập lệnh sẽ rất cao.
- Người kiểm thử nên có kiến thức lập trình tốt
Người kiểm thử có kiến thức lập trình tốt có thể sử dụng công cụ tự động hóa tốt hơn và giải quyết vấn đề ứng dụng tốt hơn.
3.Xây dựng kịch bản Automation Testing tốt nhất.
Trước khi xây dựng kịch bản Automation Testing, chúng ta cần xác định rõ chúng ta muốn đạt được gì? Một kịch bản Automation Testing không chính xác có thể làm phá hỏng toàn bộ công việc và người kiểm thử cũng sẽ mất nhiều thời gian để sửa lỗi kịch bản, gây ảnh hưởng đến kế hoạch kiểm thử. Sau đó cần xây dựng chiến lược Automation Testing phù hợp với sản phẩm. Hãy nhóm các test case có cùng đặc điểm thành một nhóm. Hình ảnh dưới đây mô tả cách các test case được chia thành các nhóm nhỏ.
4.Ví dụ đơn giản về tự động hóa thử nghiệm
Khi kiểm tra một phần mềm trên máy tính, chúng ta sử dụng chuột và bàn phím để thực hiện các bước của mình. Công cụ dùng để thực hiện Automation Testing sẽ giả lập các thao tác bằng bàn phím và chuột tương tự như tester thao tác bằng cách sử dụng một kịch bản hoặc ngôn ngữ lập trình
Ví dụ: Bạn cần kiểm tra chức năng tính toán bằng một phép cộng hai số nguyên. Kịch bản sẽ thực hiện các thao tác tương tự khi sử dụng chuột và bàn phím. Các bước kiểm tra thủ công là:
- Mở máy tính
- Nhấn 1
- Nhấn +
- Nhấn 2
- Nhấn = Kết quả hiển thị là 3
- Tắt máy tính
Khi chuyển sang chạy bằng kịch bản script thì sẽ như sau:
Câu lệnh Assert.AreEqual("5", txtResult.DisplayText,”Calculator is not showing 5); nghĩa là gì?
Mong muốn kết quả của phép tính trên là 3 sẽ hiển thị trên màn hình nhưng trên thực tế có thể sẽ có kết quả khác được hiển thị. Với tất cả các test case, chúng ta luôn so sánh kết quả mong đợi và kết quả thực tế của phép tính.
Trường hợp kết quả hiển thị không phải là 3 thì tức là trường hợp kiểm tra này không thành công. Trong đoạn script trên, 3 là kết quả mong đợi, txtResult. DisplayText là kết quả thực tế . Nếu chúng không bằng nhau thì thông báo rằng "Calculator is not showing 5" sẽ được hiển thị.
5.Các loại Automation Testing
Automation Testing được chia thành các loại khác nhau dựa trên các tiêu chí như loại kiểm thử, giai đoạn kiểm thử, phương pháp kiểm thử. Chúng ta cùng tìm hiểu kỹ hơn về 3 loại Automation Testing phổ biến
Automated Unit Tests
Automation Testing được viết để kiểm tra code. Lỗi được xác định trong các chức năng, phương thức và thói quen code bởi các nhà phát triển.
Một số công cụ phổ biến nhất hiện có là NUnit và JUnit. Microsoft cũng cung cấp công cụriêng để thử nghiệm đơn vị gọi là MSTest.
Automated Web Service / API Tests
Giao diện lập trình ứng dụng (API) giúp phần mềm có thể nói chuyện với các ứng dụng phần mềm khác. Cũng giống như bất kỳ phần mềm nào khác, API cần phải được kiểm tra.
Những gì chúng ta kiểm tra ở đây thường là các vấn đề về chức năng, tuân thủ về bảo mật. Trong các ứng dụng web, chúng ta có thể kiểm tra yêu cầu và phản hồi của ứng dụng xem chúng có an toàn và được mã hóa hay không.
Automated GUI Tests
Loại thử nghiệm Automation này là hình thức tự động hóa khó khăn nhất vì nó liên quan đến giao diện người dùng của ứng dụng.
GUI rất có thể thay đổi. Nhưng loại thử nghiệm này cũng gần nhất với những gì người dùng sẽ làm với ứng dụng. Vì người dùng sẽ sử dụng chuột và bàn phím, các kiểm tra GUI tự động cũng bắt chước hành vi tương tự bằng cách sử dụng chuột và bàn phím để nhấp hoặc ghi vào các đối tượng có trên giao diện người dùng. Do đó, chúng ta có thể tìm thấy các lỗi sớm và nó có thể được sử dụng trong nhiều tình huống như kiểm tra hồi quy hoặc điền vào các biểu mẫu mất quá nhiều thời gian.
Các công cụ kiểm tra GUI phổ biến nhất là Micro Focus Unified Functional tests (UFT), Selenium, Test Complete và Microsoft Coded UI (là một phần của phiên bản cao cấp và cao cấp của Visual Studio).
6.Công cụ thực hiện Automation Testing
Một số công cụ về Automation Testing phổ biến như:
- Selenium: Công cụ thử nghiệm Ứng dụng web. Cung cấp nhiều hỗ trợ trình duyệt.
- Junit và Nunit: Công cụ chủ yếu được sử dụng để kiểm tra Unit tests.
- QTP: Công cụ cho các ứng dụng không phải web
- Sikuli: Công cụ mã nguồn mở để kiểm tra GUI.
- Soap UI: Công cụ kiểm tra API.
- Rest Assured: Công cụ kiểm tra API.
- Appium: Công cụ hỗ trợ kiểm tra ứng dụng di động.
- Jmeter: Công cụ được sử dụng để kiểm tra hiệu suất.
- Test NG: Test NG không phải là một công cụ tự động hóa, tuy nhiên, nó cung cấp hỗ trợ tuyệt vời cho các tự động hóa được xây dựng bằng selen, appium, yên tâm
Nguồn tham khảo : https://www.softwaretestinghelp.com/automation-testing-tutorial-1/?fbclid=IwAR38qdVJacmg4T9YIueBVnhDNV3VWp0Hb6pIF5ZkNseSaYe67toK2K4WWSU