I. Kiểm thử tự động là gì ?
Trong lĩnh vực kiểm thử phần mềm, kiểm thử tự động là việc sử dụng các phần mềm đặc biệt, tách biệt với phần mềm đang được kiểm thử, để điều khiển việc thực hiện kiểm thử và so sánh kết quả thực tế với kết quả mong muốn. Kiểm thử tự động có thể tự động hóa một số công việc lặp đi lặp lại nhưng cần thiết trong quá trình kiểm thử phần mềm, hoặc một số công việc khó thực hiện một cách thủ công.
II. Ưu điểm và Nhược điểm của kiểm thử tự động.
1. Ưu điểm
a. Kiểm thực tự động giúp tiết kiệm thời gian và tiền bạc.
Quá trình kiểm thử phần mềm thường phải lặp lại trong suốt vòng đời phát triển của phần mềm để bảo đảm chất lượng của sản phẩm. Việc kiểm thử sẽ phải lặp lại mỗi khi mã nguồn có sự thay đổi. Mỗi phiên bản phần mềm sẽ cần phải kiểm thử trên nhiều hệ điều hành, nhiều cấu hình phần cứng, nhiều môi trường khác nhau. Việc kiểm thử thủ công các công việc này sẽ tốn rất nhiều thời gian và tiền bạc. Kiểm thử tự động sau khi được tạo ra sẽ có thể chạy lặp đi lặp lại rất nhiều lần mà không phát sinh thêm chi phí, đồng thời kiểm thử tự động cũng nhanh hơn rất nhiều so với kiểm thử thủ công, mà tiết kiệm được thời gian cũng chính là tiết kiệm được chi phí bỏ ra cho công việc kiểm thử.
b. Kiểm thử tự động giúp tăng độ chính xác.
Ngay cả những Tester tận tâm nhất cũng có thể mắc phải sai lầm trong suốt quá trình kiểm thử thủ công đơn điệu. Kiểm thử tự động thực hiện các bước trong quá trình kiểm thử một các chính xác và không bao giờ quên ghi lại các kết quả chi tiết trong mỗi lần kiểm thử.
c. Kiểm thử tự động giúp tăng phạm vi kiểm tra.
Kiểm thử phần mềm tự động có thể tăng độ sâu và phạm vi kiểm tra để giúp cải thiện chất lượng phần mềm. Các bước kiểm thử mất thời gian, vốn bị hạn chế trong quá trình test thủ công, sẽ được chạy tự động mà không cần giám sát. Kiểm thử tự động thậm chí có thể chạy cùng lúc trên nhiều máy tính với các cầu hình khác nhau. Kiểm thử tự động có thể kiểm tra bên trong các ứng dụng, đọc nội dung bộ nhớ, bảng dữ liệu, xem nội dung các tập tin và trạng thái của các chương trình nội bộ, để quyết định xem sản phẩm có hoạt động giống như mong đợi hay không. Kiểm thử phần mềm tự động có thể dễ dàng chạy hàng nghìn testcase có độ phức tạp khác nhau trong mỗi lần chạy, giúp tăng phạm vi kiểm thử mà quá trình kiểm thử thủ công không thể nào đạt được. Tester sẽ được giải phóng khỏi các công việc kiểm thử lặp đi lặp lại, và có nhiều thời gian hơn để tạo ra các testcase kiểm thử tự động mới và xử lý các tính năng phức tạp.
d. Kiểm thử tự động có thể làm được việc kiểm thử thủ công không làm được.
Ngay cả các công ty phát triển phầm mềm lớn nhất cũng không thể thực hiện được công việc kiểm thử với hàng nghìn người sử dụng. Kiểm thử tự động có thể giả lập hàng chục, hàng trăm, thậm chí hàng nghìn người sử dụng ảo cùng tương tác với hệ thống.
e. Kiểm thử tự động có thể làm được việc kiểm thử thủ công không làm được.
Việc sử dụng kiểm thử tự động có thể được chia sẻ cho các Developer, giúp họ nhanh chóng tìm ra lỗi trước khi chuyển sang cho QA. Việc kiểm thử sẽ được tự động chạy mỗi khi mã nguồn có sự thay đổi, và được thông báo cho cả team hoặc developer khi phát hiện ra lỗi. Chức năng này giúp cho developer tiết kiệm được thời gian và tăng sự tự tin của họ.
2. Nhược điểm
a. Nguồn lực chuyên môn
b. Chi phí khởi tạo cho kiểm thử tự động rất cao
Test tự động phải sử dụng một số tool để thực hiện quá trình kiểm thử, tuy nhiên không phải tool nào cũng miễn phí vậy nên chúng ta phải bỏ một số chi phí nhất định để mua tool phục vụ cho quá trình kiểm thử tự động
c. Không thể kiểm thử tự động khi giao diện chưa ổn định
Nếu giao diện của đối tượng ta cần test thay đổi thường xuyên hoặc giao diện mới ở những phần đầu của quá trình phát triển phần mềm dẫn đến sự thay đổi lớn về mặt giao diện thì rất khó có thể áp dụng test tự động cho các đối tượng này. Vì vậy kiểm thử tự động chỉ thích hợp với những đối tượng test mà giao diện đã ổn định, không có quá nhiều thay đổi.
d. Không thể kiểm thử tự động 100%
Có một số chức năng không thể áp dụng kiểm thử tự động hoặc khi áp dụng thì thuật toán viết ra rất phức tạp, ví dụ như nhưng test case liên quan đến nhận diện khuôn mặt, nhận diện màu sắc, nhận diện chủ thể là cái gì vv....
III. Khi nào có thể dùng kiểm thử tự động ?
- Regression test (Test hồi quy) lặp đi lặp lại.
- Test chịu tải với việc giả lập nhiều người sử dụng.
- Giao diện tương đối ổn định, nhưng có nhiều chức năng thường xuyên thay đổi.
IV. Các tool kiểm thử tự động.
- Telerik Test Studio
- HP-QuickTest Professional
- Watir
- TOSCA Testsuite
- Selenium
- Visual Studio Test Professional
- Rational Functional Tester
- TestComplete
- Testpartner
- Parasoft SOAtest
- TestDrive
- Katalon
- JMeter
Trong những tool trên không phải tool nào cũng miễn phí vì vậy tester phải cân nhắc sử dụng tool nào để có thể phù hợp với chi phí của dự án.
V. Quy trình kiểm thử tự động.
Sau đây là các giai đoạn triển khai sử dụng một công cụ kiểm thử tự động. Mỗi một giai đoạn tương ứng với một hoạt động cụ thể và mỗi giai đoạn có một kết quả nhất định.
2. Lựa chọn công cụ kiểm thử tự động thích hợp.
Bước quan trọng tiếp theo là lựa chọn công cụ kiểm thử tự động thích hợp. Điều này phụ thuộc vào công nghệ được sử dụng của các ứng dụng, chức năng và cách sử dụng ứng dụng.
3. Đánh giá các framework thích hợp.
4. Xây dựng tài liệu chứng minh khả năng (POC).
a. POC là gì ?
Proof Of Concept (Viết tắt là POC) được xây dựng với một kịch bản từ đầu đến cuối, để đánh giá xem công cụ được lựa chọn có thể giúp cho ứng dụng cần kiểm thử chạy một cách tự động được không. Vì nó thực hiện một kịch bản từ đầu đến cuối nên sẽ bảo đảm được các chức năng chính có thể tự động hóa.
b. Làm sao để tạo POC cho dự án hiện tại ?
Trong khi tạo tài liệu POC Tester nên sẵn sàng trả lời các câu hỏi sau đây:
- Dự án chúng ta chuẩn bị test là loại ứng dụng gì ? Nó là web, desktop, ứng dụng di động, hay bắt kỳ loại ứng dụng nào khác.
- Những loại test sẽ thực hiện trong dự án này là gì ? Smoke testing(Test thực hiện sau bản build mới) hay regression testing(Test hồi quy) vv...
- Ngân sách( Buget) công ty có trong dự án này là bao nhiêu ? Chúng ta sẽ được sử dụng tool trả phí như HP-QuickTest Professional hay miễn phí như Selenium.
- Nhiệm vụ trước khi thực hiện tự động hóa là gì ? Cài đặt dữ liệu, tool...
- Chọn một hay hai tool phù hợp, nếu công cụ đó mất phí thì hãy chạy thử bản dùng thử của tool đó để đưa ra kết luận xem nó có phù hợp hay không, còn nếu tool đó miễn phí thì đánh giá xem hạn chế của nó là gì và so sánh giữa tool trả phí và miễn phí.
- Mỗi công cụ hãy chạy thử những test scrpit tự động đơn giản xem kết quả và so sánh hai kết quả sau khi chạy bằng hai tool với nhau.
- Nếu các tính năng hoạt động tốt thì tester trình bày với sếp của mình về các bước tiếp theo sẽ thực hiện.
Lưu ý: Tester cũng nên tạo một tài liệu mẫu cho các script đã tạo trong quá trình chạy thử.
5. Xây dựng framewwork kiểm thử tự động.
Sau khi xây dựng POC, việc phát triển framework sẽ được thực hiện. Đó là một bước quan trọng cho sự thành công của bất kỳ dự án kiểm thử tự động nào. Framework nên được phát triển sau khi nghiên cứu chuyên sâu về công nghệ được sử dụng trong ứng dụng cần test và các chức năng chính của nó.


0 Bình luận:
Đăng nhận xét