Lựa chọn công cụ kiểm thử tự động là một trong những bước quan trọng nhất trước khi bắt đầu tự động hóa cho một dự án bất kỳ. Điều quan trọng là bởi vì công cụ này sẽ ảnh hưởng lớn hoàn toàn đến nỗ lực tự động hóa toàn bộ của bạn. Nếu công cụ này là tốt và cung cấp cho bạn các tính năng yêu cầu, tự động hóa sẽ trở nên dễ dàng và hiệu quả.
Nội dung
1. Tự động kiểm tra một giải pháp cho bạn?
Tôi đã làm nhiều dự án trong sự nghiệp của mình. Khi bạn làm việc cùng một dự án trong hơn một năm, bạn sẽ bắt đầu cảm thấy cần tự động hoá một số nhiệm vụ. Bạn bắt đầu suy nghĩ để giới thiệu về tự động kiểm thử dự án nếu nó từ trước đến nay chưa được xem xét bởi người quản lý dự án.
Một năm là đủ thời gian cho bất cứ ai để biết các ins of outs của bất kỳ dự án. Một khi bạn đã biết chi tiết chức năng của dự án sẽ trở nên dễ dàng hơn để quyết định những nhiệm vụ lặp đi lặp lại cần phải được tự động.
Một số Tester cũng nhận thấy sự nhàm chán khi thực hiện cùng một nhiệm vụ lặp đi lặp lại nhiều lần và họ bắt đầu cảm thấy sự cần thiết của việc ứng dụng kiểm thử tự động ngay vào dự án. Điều đó có nghĩa là bạn nên nhảy vào thử nghiệm tự động hóa ngay?
Chắc chắn không phải!
Có nhiều tiêu chí bạn cần phải làm trước khi quyết định liệu có phải tự động hóa là một giải pháp cho bạn hay không.
2. Đâu là thời điểm hợp lý để kiểm thử tự động?
- Khi có nhiều công việc kiểm thử lặp đi lặp lại
- Khi phải lặp lại công việc test hồi quy thường xuyên
- Khi bạn cần mô phỏng số lượng lớn người dùng đang sử dụng tài nguyên ứng dụng
- Khi AUT có giao diện tương đối ổn định
- Khi bạn có rất nhiều trường hợp BVT
- Khi bạn không thể chỉ dựa vào thực hiện kiểm tra thủ công cho các chức năng quan trọng
Một khi bạn biết rằng đó là thời điểm thích hợp để đầu tư thời gian và tiền của bạn vào một công cụ tự động hóa tốt, bạn có thể bắt đầu tìm kiếm công cụ tự động hóa phù hợp nhất với nhu cầu của bạn.
3. Làm thế nào để Chọn tool tự động hóa cho dự án của bạn?
Kiểm thử tự động thành công phần lớn phụ thuộc vào việc lựa chọn các công cụ kiểm tra đúng. Phải mất rất nhiều thời gian để đánh giá các công cụ tự động hiện có trên thị trường. Nhưng đây là việc bạn chỉ phải làm một lần mà sẽ mang lại lợi ích cho dự án của bạn trong thời gian dài.
Dưới đây là các tiêu chí bạn cần phải xem xét trước khi chọn bất kỳ công cụ kiểm tra nào:
Tiêu chí đánh giá tool kiểm thử tự động
- Bạn có nguồn lực cần thiết để phân bổ cho các nhiệm vụ tự động hóa?
- Ngân sách của bạn là bao nhiêu?
- Liệu tool này có đáp ứng được nhu cầu kiểm thử của bạn? Nó phù hợp với môi trường dự án và công nghệ bạn đang sử dụng không? Liệu nó có hỗ trợ tất cả các tool và các đối tượng được sử dụng trong code không? Đôi khi bạn có thể gặp khó khăn nhỏ trong quá trình thực hiện kiểm thử do tool không có khả năng xác định các đối tượng trong ứng dụng.
Đây là ba yếu tố là quan trọng nhất để lựa chọn bất kỳ một tool nào đó.
- Liệu tool này có cung cấp cho bạn phiên bản dùng thử miễn phí để bạn có thể đánh giá nó trước khi đưa ra quyết định? Ngoài ra, tool có tất cả các tính năng có sẵn trong phiên bản dùng thử không?
- Phiên bản hiện tại có ổn định không? Nhà sản xuất có cung cấp tài nguyên trực tuyến và hướng dẫn sử dụng nhằm hỗ trợ khách hàng không?
- Lộ trình học tập sử dụng tool đó như thế nào? Thời gian học tập có chấp nhận được cho các mục tiêu của bạn không?
- Bạn có muốn tool tự động hóa chỉ cho nhu cầu dự án của bạn hay bạn đang tìm kiếm một công cụ phổ biến cho tất cả các dự án trong công ty của bạn? Nó sẽ là một lựa chọn tốt nếu bạn chọn một công cụ hỗ trợ hầu hết các ngôn ngữ lập trình trên các dự án của bạn.
- Tool đó hỗ trợ các loại test nào? Một công cụ hỗ trợ các loại test tối đa (Đơn vị, chức năng, hồi quy v.v) luôn là một lựa chọn tốt. Cảnh báo – Không chọn một tool chỉ vì nó đang hỗ trợ tất cả các loại test. Điều quan trọng là tool nên đủ mạnh để tự động hoá các yêu cầu phức tạp của bạn.
- Liệu tool hỗ trợ giao diện dễ dàng để tạo và duy trì các test script? Tool có thể Record và playback với khả năng có thể chỉnh sửa các recorded scripts là một giải pháp tốt.
- Liệu nó cung cấp giao diện đơn giản nhưng các tính năng mạnh mẽ để thực hiện các nhiệm vụ phức tạp?
- Nó có dễ dàng cung cấp các dữ liệu đầu vào phức tạp hoặc load test. Tool hỗ trợ test data từ các file định dạng như Excel, XML, text file v.v. sẽ là một lợi thế lớn cho việc tự động hóa các kiểm thử.
- Liệu nó có thể cung cấp các báo cáo với giao diện đồ họa? Các báo cáo rõ ràng và súc tích sẽ luôn luôn giúp bạn kết luận nhanh kết quả kiểm thử của mình.
- Nó có tích hợp tốt với các tool test khác của bạn như lập kế hoạch dự án và các tool test khác?
Bạn có thể xem xét các tiêu chí khác như:
- Chính sách hoàn trả của nhà cung cấp tool
- Nhận xét của khách hàng hiện tại đối với công cụ
- Nhà cung cấp có hỗ trợ không?
Lời khuyên: Thu thập yêu cầu là bước đi quan trọng nhất để lựa chọn đúng công cụ. Đảm bảo phải phân loại các yêu cầu của bạn có, phải tốt, và các loại tính năng không bắt buộc. Điều này sẽ giúp bạn nhanh chóng đánh giá công cụ. Hãy nhớ rằng bạn sẽ không tìm thấy một tool có sẵn trên thị trường mà nó sẽ hỗ trợ tất cả các nhu cầu tự động hóa của bạn!
4. Các tool tự động hóa tốt nhất :
HP QTP / UFT và Selenium là hai lựa chọn test chức năng phổ biến nhất hiện nay. QTP / UFT là một công cụ test chức năng tốt nhất được hỗ trợ trên phạm vi rộng các ngôn ngữ lập trình và nền tảng trong khi đó Selenium là công cụ kiểm tra web chức năng mã nguồn mở tốt nhất.
5. 10 câu hỏi trước khi lựa chọn công cụ kiểm tra tự động hóa tốt nhất
Hỏi các câu hỏi sau đây bất cứ khi nào bạn ở trong một tình huống để lựa chọn công cụ tự động hóa cho dự án của bạn:
Câu hỏi 1 : Ngân sách của dự án bạn cho tool tự động là bao nhiêu?
Theo quan điểm của tôi, đây là điều quan trọng nhất để xem xét trong khi lựa chọn công cụ tự động hóa.
Tại sao cần tìm kiếm QTP / UFT và nghiên cứu về nó khi bạn không thể mua bản quyền? Công cụ QTP chi phí khoảng 8000$ (xấp xỉ). Nếu dự án của bạn có thể mua bản quyền và được chấp nhận, thì bạn nên tải về bản dùng thử và kiểm tra tính năng của nó bằng cách thực hiện test tự động dự án của mình. Nếu không, bạn không nên dành thời gian nghiên cứu về nó. (Tôi đang nói về trường hợp này nếu bạn muốn sử dụng QTP trên một dự án trực tiếp của công ty. Nếu bạn tải nó chỉ cho mục đích học tập, thì bạn cũng có thể tải về dùng thử.)
Câu hỏi 2 : Giá thực của tool là bao nhiêu?
Tiếp theo là giá của tool tự động hóa. Không chỉ có giá bản quyền mà còn giá của tiện ích bổ sung (nếu cần), phí hỗ trợ, phí đào tạo và phí nâng cấp.
Hãy nói về bản quyền đầu tiên.
a) Các loại phiên bản:
Có các loại phiên bản sau đây.
1) Phiên bản sử dụng Node-Locked.
Phiên bản Node-locked người dùng sẽ hỗ trợ tool test tự động để sử dụng trên một máy tính vật lý duy nhất trong mạng công ty của bạn. Bạn chỉ có thể chạy tool đó trên một máy tính được cấp phép tại một thời điểm. Phiên bản này thường bị ràng buộc vào tên của máy.
2) Phiên bản concurrent Floating User.
Phiên bản người dùng sẽ hỗ trợ tool test tự động để sử dụng trên một máy tính vật lý duy nhất trong mạng công ty của bạn. Nó không bị ràng buộc với tên máy hoặc bất cứ thứ gì, thay vào đó, nó sử dụng một trình quản lý phiên bản (được cài đặt trên máy chủ) để quản lý cùng một phiên bản trên các máy khác nhau.
Về cơ bản, với phiên bản Node-Locked, bạn không có quyền tự do cài đặt tool trên một máy, gỡ bỏ cài đặt và sau đó cài đặt lại nó trên bất kỳ máy khác. Nhưng với phiên bản concurrent Floating User, bạn được phép làm điều đó.
3) Phiên bản Run Time
Hai loại phiên bản nói trên thường được mua để “develop” các scripts. Đây là những phiên bản “develop”. Để thực hiện các scripts trên các máy khác nhau, bạn cần có bphiên bản “execution” hoặc “Runtime” cho mỗi máy.
Ví dụ :
Ví dụ, nếu một tester cần develop và thực hiện test script trên cùng một máy, thì một phiên bản develop là đủ.
Nhưng nếu anh ta cần develop trên một máy và thực hiện các test script trên ba máy ảo hoặc vật lý khác, anh ta cần mua một phiên bản “develop ” và ba phiên bản run time.
Một số nhà cung cấp cung cấp phiên bản run time miễn phí (Giống như Coded UI) và một số cung cấp với một mức giá (như Test Complete, Ranorex vv). Vì vậy, tất cả phụ thuộc vào nhà cung cấp.
4) Phiên bản Open Source
Đó là thường là lựa chọn của các công ty cho một tool thương mại và phải trả chi phí hoặc cho bất kỳ tool mã nguồn mở nào.
Các công cụ thương mại đắt tiền, nhưng chúng cung cấp sự hỗ trợ tuyệt vời và dễ sử dụng với rất nhiều tài liệu đào tạo. Các công cụ thương mại thường là “một công cụ cho mọi nhu cầu”. tool open source miễn phí nhưng thường khó học hơn. Có rất ít sự hỗ trợ chính thức, nhưng bạn có thể tìm thấy các giải pháp bằng cách truy cập các diễn đàn khác nhau. Giải pháp open source thường dành cho các nhu cầu cụ thể.
b) Phí hỗ trợ, nâng cấp và đào tạo:
Để được hỗ trợ lệ phí đào tạo và nâng cấp, bạn có thể cần phải gọi cho đại diện công ty. Một số công ty cung cấp giảm giá đặc biệt khi mua số lượng lớn các phiên bản, do vậy đôi khi thông tin này không được đề cập rõ ràng trên các trang web. Bạn sẽ nhận được thông tin qua cuộc gọi hoặc email.
Câu hỏi 3 : Công cụ này hỗ trợ Hệ điều hành nào / Trình duyệt hoặc Thiết bị nào mà ứng dụng của bạn đang chạy?
Câu hỏi này thường phụ thuộc vào loại ứng dụng mà bạn đang sử dụng.
a) Nếu là máy tính để bàn:
Nếu bạn đang làm việc với ứng dụng trên máy tính để bàn, bạn nên phác thảo rằng có bao nhiêu hệ điều hành bạn muốn test ứng dụng đó. Tôi đã làm việc trên một ứng dụng dựa trên máy tính để bàn và tôi muốn test nó trên windowns 7 và windowns 8.1. Vì vậy, tôi đã chọn Coded UI, bởi vì nó hỗ trợ cả hai.
b) Nếu dựa trên trình duyệt
Nếu bạn đang làm việc trên một ứng dụng web, bạn nên phác thảo rằng có bao nhiêu trình duyệt bạn muốn test ứng dụng này. Tôi muốn thực hiện các test case của tôi trên FireFox, Chrome và IE. Tôi đã chọn selenium cho ứng dụng web của tôi vì nó hỗ trợ tất cả các trình duyệt này. Đảm bảo rằng tool bạn chọn nên hỗ trợ cả phiên bản cũ và mới của các trình duyệt bạn yêu cầu.
c) Nếu dựa trên Điện thoại Di động
Nếu bạn đang làm việc trên các ứng dụng dành cho thiết bị di động, bạn nên biết rằng bạn cần chạy các test case nào trên hệ điều hành di động nào. Nếu ứng dụng của bạn chạy trên cả Android và IOS, công cụ của bạn sẽ hỗ trợ điều đó. Selenium có trình điều khiển riêng biệt để chạy các tập lệnh trên Android, IOS, Windows Phone và BlackBerry. Bạn cũng có thể sử dụng một công cụ riêng cho từng Hệ điều hành Điện thoại di động. Có Robotium cho Android, Appium cho cả IOS và Android và CodedUI cho các ứng dụng điện thoại Windows.
Một lần nữa, điều này dẫn đến cuộc cạnh tranh của các phiên tool nguồn mở vs thương mại. Như bạn thấy, có các công cụ mã nguồn mở riêng biệt để test các ứng dụng nền dựa trên web , điện thoại di động và máy tính để bàn. Nhưng nếu bạn sử dụng một công cụ thương mại như Test complete, Ranorex hoặc Test Studio, chúng có thể test cả ba loại (Mobile, Desktop và các ứng dụng dựa trên trình duyệt). Vì vậy, trong trường hợp tool thương mại, bạn chỉ cần học một tool để test các ứng dụng web, máy tính để bàn và ứng dụng di động.
Câu hỏi số 4 : Tool hỗ trợ công nghệ và điều khiển bên thứ ba được sử dụng trong ứng dụng của bạn?
Đây là một khía cạnh rất quan trọng trong khi lựa chọn công cụ. Bạn nên biết trước rằng những công nghệ gì đang được sử dụng trong ứng dụng của bạn. Tham khảo ý kiến các developer của bạn để hiểu hơn về nó. Nếu họ đang sử dụng HTML 5 hoặc SilverLight trong các ứng dụng web, hãy cẩn thận, không có nhiều tool tự động hóa để hỗ trợ chúng. Nếu tool bạn cần yêu cầu hỗ trợ cho các công nghệ này, hãy tải xuống phiên bản dùng thử của tool đó và cố gắng xác định các đối tượng khác nhau trong ứng dụng của bạn. Nếu tool không xác định được chúng thì tool đó không phù hợp. Hoạt động đó sẽ giúp bạn thoát khỏi những rắc rối sau đó.
So sánh tool
Bảng sau so sánh các tool khác nhau liên quan đến giá cả bản quyền và sự hỗ trợ của nhà cung cấp đối với các công nghệ khác nhau. (Bạn nên lấy biểu đồ này làm cơ sở để xem xét sự so sánh giữa các công cụ khác nhau nhưng độ chính xác của dữ liệu không phải là 100%)
Y = Hỗ trợ, N = Không được hỗ trợ, U = Không biết
Câu hỏi số 5 : Tool hỗ trợ bao nhiêu ngôn ngữ? Bạn có kỹ năng về các ngôn ngữ này không?
Học cách sử dụng tool một khía cạnh. Học ngôn ngữ là một khía cạnh khác. Nếu bạn có kiến thức chuyên môn trong Java và tool của bạn không hỗ trợ Java, thời gian để học ngôn ngữ mới sẽ được thêm vào nỗ lực tự động hóa của bạn.
Một khía cạnh khác là nếu sản phẩm của bạn được xây dựng trên Java, bạn phải có một đội ngũ chuyên gia phát triển Java. Những developer này cũng có thể giúp nhóm tự động hóa về Các vấn đề liên quan đến Ngôn ngữ. Lựa chọn tool cung cấp ngôn ngữ quen thuộc với kỹ năng của bạn rất quan trọng và nó sẽ giúp bạn giảm thiểu quá trình tìm hiểu cho các nguồn lực của bạn.
Câu hỏi số 6 : Tool có hỗ trợ kết nối với các Nguồn dữ liệu khác nhau không?
Nếu chúng ta đang sử dụng automation framework như keyword driven hoặc data-driven, chúng ta cần phải có khả năng kết nối công cụ của chúng ta với bất kỳ nguồn dữ liệu nào. Nếu công cụ cung cấp kết nối với các nguồn dữ liệu khác nhau một cách dễ dàng, nó sẽ rất có lợi.
Xem sự hỗ trợ cho các nguồn dữ liệu phổ biến như file .SV, tệp Excel, tệp XML và Cơ sở dữ liệu. Nếu tool có hỗ trợ những vấn đề này thì đây là điều tốt đáng để bạn lưu tâm khi lựa chọn.
Câu hỏi số 7 : Cơ chế báo cáo của tool tự động hoá như thế nào?
Khi chúng tôi thực hiện chạy các script, nó sẽ pass hoặc fail. Trong trường hợp pass , không có nhiều thông tin cần thiết ngoại trừ thông tin về thời gian và môi trường. Nhưng trong trường hợp fail, chúng ta cần một báo cáo toàn diện về việc bị fail đó. Báo cáo nên cho chúng ta biết chính xác bước mà script không thành công. Bản chụp về thời điểm fail sẽ là một lợi thế.
Ngoài ra, báo cáo này phải được xuất sang các định dạng khác nhau để chúng ta có thể chia sẻ điều này với các bên liên quan. Trong nhiều tool, các tùy chọn này được tích hợp sẵn và trong một số tool, có nhiều cách để làm cho báo cáo của bạn toàn diện hơn. Đây là một điều khác cần chú ý khi bạn tải xuống phiên bản dùng thử của tool. Nếu nó đưa ra các báo cáo toàn diện về việc chạy script fail, thì đó là một lợi thế.
Câu hỏi # 8 : Liệu công cụ có thể được tích hợp với các test case và các trình quản lý bug?
Các công ty rõ ràng muốn tool tự động của họ được tích hợp với công cụ quản lý test case hiện tại của họ để toàn bộ vòng đời ứng dụng của họ được quản lý chính xác. Khía cạnh này cũng nên được chú ý trong khi lựa chọn các công cụ tự động kiểm tra.
QTP hỗ trợ QLM, Coded UI hỗ trợ TFS và TestComplete hỗ trợ QAComplete. Một số công cụ mã nguồn mở cũng có hỗ trợ tích hợp với các công cụ quản lý test out source hiện có. Tất cả phụ thuộc vào những gì dự án của bạn thực sự đang sử dụng.
Câu hỏi số 9 : Sự hỗ trợ kỹ thuật của công cụ như thế nào?
Ở đây chúng ta chỉ nói đến các công cụ thương mại. Khi bạn chọn một công cụ thương mại, khía cạnh hỗ trợ của chúng là rất quan trọng. Xem tài liệu đào tạo được cung cấp trên trang web. Trang web có chứa video và hướng dẫn không? Trang web có một diễn đàn chính thức để đặt câu hỏi không? Tải xuống bản dùng thử và đăng một câu hỏi trên diễn đàn của họ và xem bao nhiêu ngày câu hỏi đó được trả lời. Họ có hỗ trợ qua cuộc gọi không?
Các câu hỏi trên cần được hỏi mỗi lần bởi vì bạn đang bỏ ra nhiều chi phí cho tool đó. Nếu tool không hỗ trợ tốt, đừng mua nó.
Câu hỏi số 10 : Một số khía cạnh kỹ thuật cần xem xét
Có một số khía cạnh kỹ thuật khác cần xem xét như:
a) Hỗ trợ Record và playback
Nó không phải là một vấn đề quá quan trọng trong việc test, nhưng tốt hơn hết là tool đó có hỗ trợ. Nó đơn giản hóa quá trình sử dụng tool và giúp các testcase dễ dàng được dễ dàng tự động hóa.
b) Phương pháp nhận dạng đối tượng khác nhau và hỗ trợ lập Object Mapping
Cần có nhiều lựa chọn đối tượng cùng với các phương pháp khác nhau. Một số vật thể khó nhận ra. Vì vậy, sự đa dạng của các phương pháp lựa chọn luôn hữu ích. Ví dụ , selenium hỗ trợ chọn đối tượng bằng id, tên, lớp, liên kết kiểm tra, XPATH , chọn CSS và JavaScript. Nếu một phương pháp đã chọn không hoạt động, chúng ta có thể có nhiều phương pháp khác nhau luôn hữu ích để lựa chọn.
c) Hỗ trợ Checkpoints hoặc Assertion khác nhau.
Trường hợp testcase đã pass hoặc fail dựa trên Checkpoints hoặc Assertion. Nếu tool có nhiều phương pháp để kiểm tra kết quả mong đợi của bạn, nó sẽ có lợi thế. QTP có nhiều checkpoints như Standard, Bitmap, Table, XML, Database và nội dung file Check Points.
d) Giải quyết các tình huống Handling.
Nếu trường hợp test case fail và bạn muốn tiếp tục thực hiện, liệu công cụ này có hỗ trợ không? Nếu scenarios phục hồi dễ quản lý trong tool, nó sẽ cho phép bạn thực hiện các trường hợp test mà không có bất kỳ trục trặc nào. Bạn có thể chạy các test case vào ban đêm và vào buổi sáng bạn nhận được kết quả xác định các test case nào fail và các test case nào đã pass. Điều này sẽ xảy ra chỉ khi việc recovery từ các test case fail có thể dễ dàng quản lý bằng tool. Nếu không, một lượng lớn nỗ lực tự động hóa sẽ bị lãng phí trong việc handling recovery scenarios.
Phần kết luận
Luôn luôn nhớ rằng không có công cụ nào hoàn toàn tốt hay hoàn toàn kém. Tất cả phụ thuộc vào yêu cầu và bản chất của sản phẩm. Selenium có thể là công cụ tự động phổ biến nhất, nhưng nếu sản phẩm của bạn là máy tính để bàn, công cụ này không có ích cho bạn. Hiểu sản phẩm của bạn trước tiên và sau đó tìm kiếm công cụ thích hợp phù hợp với yêu cầu của bạn bằng cách sử dụng các nguyên tắc được đề cập trong hướng dẫn này. Lựa chọn công cụ tự động lựa chọn đóng một vai trò quan trọng để tự động hóa thành công.
Nguồn: