Trang chủ » AUTOMATION TESTING LÀ GÌ? TẠI SAO NÊN LỰA CHỌN AUTOMATION TESTING

AUTOMATION TESTING LÀ GÌ? TẠI SAO NÊN LỰA CHỌN AUTOMATION TESTING

Đinh Thao 30 Th8, 2021

Kiểm thử là công việc tìm kiếm các lỗi, sai sót, hay bất cứ vấn đề nào mà có thể ảnh hưởng đến chất lượng phần mềm trước khi đưa phần mềm vào sử dụng. Khi nói đến kiểm thử chúng ta không thể nào không nhắc đến Manual testing và Automation testing. Tuy nhiên với sự phát triển của thời đại 4.0 thì Automation testing lại là sự lựa chọn tối ưu hơn vậy chúng ta cùng xem điều đó có đúng không nhé.

AUTOMATION TESTING LÀ GÌ

AUTOMATION TESTING LÀ GÌ

Automation testing là gì?

Automation testing (Kiểm thử tự động) là quá trình sử dụng các công cụ, script và phần mềm để thực hiện các trường hợp kiểm thử, bằng cách lặp lại những hành động được xác định trước. 

Kiểm thử tự động là một kỹ thuật tự động hóa, trong đó người kiểm thử tự viết các tập lệnh và sử dụng phần mềm phù hợp để kiểm thử phần mềm. Về cơ bản nó là một quá trình tự động hóa của một quy trình thủ công. Giống như kiểm thử hồi quy, kiểm thử tự động cũng được sử dụng để kiểm tra ứng dụng theo quan điểm load, performance và stress test.

Nói cách khác, kiểm thử tự động sử dụng các công cụ tự động hóa để viết và thực hiện các test case, không cần sự tham gia thủ công trong khi thực hiện một test suite. Thông thường, người kiểm thử viết test script và test case bằng cách sử dụng công cụ tự động hóa và sau đó nhóm thành các test suite.

Kiến thức cần có trước khi bắt đầu Automation testing:

AUTOMATION TESTING LÀ GÌ

Để trở thành một Automation Tester, đầu tiên bạn phải nắm rõ những kiến thức cơ bản sau:

Types testing: Unit/Integration/System/Sanity/Regression test/…. là gì?

Testing Techniques: Phân tích giá trị biên/Phân vùng tương đương/Biểu đồ kết quả/Đoán lỗi/… là gì?

Nắm rõ về HTML và XPath để nhận dạng đúng test objects/elements mà mình cần thao tác.

Thành thạo ít nhất một ngôn ngữ lập trình thông dụng, hỗ trợ cho việc scripting trên test tools: Java/C#/Python/Ruby/JS/…

Sử dụng thành thạo thư viện của Selenium WebDriver API bởi Selenium open source, dễ sử dụng, cộng đồng lớn.

Sử dụng thành thạo ít nhất 1 framework testing: Junit/Testing/NUnit/… Từ đây sẽ giúp bạn rất nhiều trong việc build framework, hỗ trợ trong việc phân nhóm, quản lý test script, report, prepare data/environment/browsers.

Tìm hiểu về software design pattern để build framework/common library

Sử dụng/build framework thành thạo từ Page Object Model pattern.

Kỹ năng về coding/IDE: Debug, coding convention, source version control (GIT, SVN,…), cách sử dụng IDE: Visual Studio, Eclipse, IntelliJ…, làm việc với database…

Học hỏi công nghệ mới trong mảng automation testing: build tools: Maven, ANT…, CI/CD: Jenkins, TeamCity, CircleCI, TFS, Docker.., Cloud: AWS, Saucelab, Browserstack, Testingbot…, big data: Hadoop, HBase, Hive…, mobile: Appinum…

Các bước tiến hành Automation testing:

Lựa chọn công cụ kiểm thử

Xác định được mục tiêu kiểm thử, loại kiểm thử để lựa chọn công cụ kiểm thử phù hợp. Khi lựa chọn công cụ để test bạn cần chú ý sau:

Nó có dễ dàng để phát triển và duy trì các script cho công cụ hay không?

Nó có hoạt động trên các nền tảng như web, điện thoại di động, máy tính để bàn, v.v… không?

Công cụ có chức năng báo cáo kiểm thử không?

Công cụ này có thể hỗ trợ bao nhiêu loại kiểm thử?

Công cụ hỗ trợ bao nhiêu ngôn ngữ?

Xác định phạm vi tự động hóa

Bạn cần quyết định trường hợp kiểm thử nào sẽ tự động hóa dựa trên những điều sau:

Các tình huống có một lượng lớn dữ liệu

Những trường hợp thử nghiệm có chức năng chung trên các ứng dụng

Tính khả thi về kỹ thuật

Mức độ có thể sử dụng lại các thành phần của doanh nghiệp

Sự phức tạp của các trường hợp kiểm thử

Lập kế hoạch, thiết kế và phát triển

Phát triển các trường hợp kiểm thử: Các bài kiểm tra tự động lớn, phức tạp luôn rất khó chỉnh sửa và gỡ lỗi. Tốt nhất nên chia các bài kiểm tra thành nhiều bài kiểm tra đơn giản, logic và nhỏ hơn.

Phát triển bộ kiểm thử: Bộ thử nghiệm đảm bảo rằng các trường hợp thử nghiệm tự động chạy lần lượt mà không cần bất kỳ sự can thiệp thủ công nào. Bây giờ, điều này có thể dễ dàng được thực hiện bằng cách tạo một bộ kiểm thử có nhiều trường hợp thử nghiệm, một thư viện và công cụ dòng lệnh chạy bộ kiểm thử.

Thực thi kiểm thử

Các script tự động hóa được thực thi trong giai đoạn này. Ngoài ra, việc thực thi có thể được thực hiện bằng cách sử dụng công cụ tự động hóa trực tiếp hoặc thông qua công cụ quản lý kiểm thử sẽ gọi công cụ tự động hóa.

Bảo trì

Khi các trường hợp kiểm thử được thực thi, bước tiếp theo là tạo báo cáo để ghi lại các hoạt động diễn ra trong quá trình kiểm thử. Khi các chức năng mới được thêm vào phần mềm mà bạn đang thử nghiệm với những chu kỳ liên tiếp, các script tự động hóa cần được thêm, xem xét và duy trì cho mỗi chu kỳ phát hành. Do đó, việc bảo trì trở nên cần thiết để nâng cao hiệu quả của tự động hóa.

Các phương pháp tiếp cận Automation Testing

Có 3 cách tiếp cận chính được xem xét cho Automation Testing:

Theo hướng code

Cách tiếp cận này chủ yếu tập trung vào việc thực thi trường hợp thử nghiệm để tìm hiểu xem các phần code khác nhau có đang hoạt động như mong đợi hay không. Nó là phương pháp được dùng nhiều trong phát triển phần mềm nhanh.

Test giao diện người dùng đồ họa (GUI)

Tester có thể dùng đồ họa (Gui) ghi lại hành động của người dùng và phân tích chúng bao nhiêu lần tùy ý. Ngoài ra, các trường hợp kiểm thử có thể được viết bằng một số ngôn ngữ lập trình như C#, Java, Perl, Python, v.v…

Test Automation Framework

Framework là một tập hợp các hướng dẫn được sử dụng để tạo ra những kết quả có lợi của hoạt động kiểm thử tự động. Ngoài ra, nó còn tập hợp các thư viện chức năng, nguồn dữ liệu thử nghiệm, chi tiết đối tượng và những mô-đun có thể tái sử dụng khác.

Tại sao nên lựa chọn Automation testing?

Độ tin cậy cao: Công cụ kiểm thử tự động có sự ổn định cao vì hoạt động theo quy trình định sẵn, đặc biệt trong trường hợp nhiều test case, các bài kiểm tra tiêu chuẩn lặp đi lặp lại nhàm chán không thể bỏ.

Khả năng lặp: Mình có thể test cách phần mềm xử lý (tính năng/hiệu năng) khi gặp tình huống chạy lặp đi lặp lại nhiều lần trên cùng script test giúp các Tester xử lý trường hợp lặp đi lặp lại các thao tác như: click, nhập dữ liệu, check kết quả,…) Đây còn gọi là performance/load testing.

Khả năng tái sử dụng: Các script có thể sử dụng lại và bạn không cần script mới mọi lúc. Ngoài ra, bạn có thể thực hiện lại các bước chính xác như những gì đã diễn ra trước đó.

Tiết kiệm thời gian: Automation test giúp chạy test nhanh hơn với tốc độ nhanh hơn ít nhất 10 lần so với tốc độ kiểm thử thủ công. Nếu cần 5 phút để thực thi một test case cách thủ công thì chỉ cần khoảng 30s để thực thi tự động.

Chi phí thấp: nếu áp dụng kiểm thử tự động đúng cách, chúng ta có thể tiết kiệm được nhiều chi phí về thời gian và nhân lực.

Chạy kiểm thử 24/7: Bạn có thể thực hiện kiểm thử bất kỳ đâu, lúc nào, thậm chí có thể làm điều đó từ xa nếu bạn ko có đủ thiết bị hay khả năng mua chúng.

Cả hai phương pháp kiểm thử là Manual testing hay Automation testing cũng đều là phương pháp đem lại hiệu quả công việc cao và chúng có những ưu nhược điểm nhất định vì thế bạn xem xét lượng chọn kiểm thử theo phương phương pháp nào cho phù hợp với mục tiêu, nhu cầu của doanh nghiệp mà với chi phí là thấp nhất, đem lại hiệu quả cao nhất.

Đinh Thao

Đinh Thao

Tôi là Đinh Thị Thao, hiện đang là giáo viên giảng dạy tại trung tâm testerpro và cũng là tác giả chính các bài blog liên quan đến tester, ngành công nghệ thông tin tại trên trang testerpro.vn. Với 5 năm kinh nghiệm làm việc, giảng dậy tại trung tâm thì tôi hy vọng sẽ có thể truyền tải cho các bạn những kiến thức tốt nhất của tester giúp các bạn phục vụ trong công việc của bản thân.

Từ khóa:
Bình luận
Icon Phone Icon Zalo