Automation Testing Là Gì ?(Kiểm Thử Tự Động Là Gì ?)

Automation Testing Là Gì

Quá trình kiểm thử phần mềm liên quan đến hai loại kiểm thử khác nhau – thủ công và tự động. Có sự khác biệt rõ ràng giữa các loại thử nghiệm này. Kiểm thử thủ công đòi hỏi thời gian và nỗ lực để bảo đảm code phần mềm làm được mọi thứ. Ngoài ra, những người kiểm tra thủ công phải ghi lại những phát hiện của mình. Trong bài viết này, Techacademy sẽ cùng bạn đọc tìm hiểu Automation testing là gì và nó hoạt động như thế nào.

Danh Mục Bài Viết

I. 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 những 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. Automation testing tập trung vào việc thay thế hoạt động thủ công của con người bằng các hệ thống hoặc thiết bị.

Bởi vì Automation testing được thực hiện thông qua một công cụ tự động hóa, nên nó tiêu tốn ít thời gian hơn trong các thử nghiệm khám phá và hiệu quả hơn trong việc duy trì các script kiểm tra, đồng thời nâng cao phạm vi kiểm tra tổng thể.

Automation testing thích hợp nhất cho các dự án lớn yêu cầu kiểm tra lặp lại các khu vực giống nhau và những dự án đã trải qua quá trình thử nghiệm thủ công ban đầu.

Automation Testing Là Gì
Automation Testing Là Gì

II. Ưu, Nhược Điểm Của Automation Testing So Với Manual Testing

+ Ưu điểm:

  • Độ tin cậy cao: công cụ kiểm thử tự động có sự ổn định cao hơn so với con người, đặc biệt trong trường hợp nhiều test cases, nên độ tin cậy cao hơn so với kiểm thử thủ công.
  • Khả năng lặp: công cụ kiểm thử tự động ra đời là để giúp cho các tester không phải lặp đi lặp lại các thao tác (ví dụ: nhập dữ liệu, click, check kết quả…) 1 cách nhàm chán với độ tin cậy và ổn định cao.
  • Khả năng tái sử dụng: với 1 bộ kiểm thử tự động, người ta có thể sử dụng cho nhiều phiên bản ứng dụng khác nhau, đây được gọi là tính tái sử dụng.
  • Tốc độ cao: do thực thi bởi máy nên tốc độ của kiểm thử tự động nhanh hơn nhiều so với tốc độ của con người. Nếu cần 5 phú để thực thi một test case một cách thủ công thì có thể người ta chỉ cần khoảng 30s để thực thi một cách tự động.
  • Chi phí thấp: nếu áp dụng kiểm thử tự động đúng cách, người ta có thể tiết kiệm được nhiều chi phí, thời gian và nhân lực, do kiểm thử tự động nhanh hơn nhiều so với kiểm thử thủ công, đồng thời nhân lực cần để thực thi và bảo trì scripts không nhiều.

Nhược điểm:

  • Khó mở rộng, khó bảo trì: trong cùng một dự án, để mở rộng phạm vi cho kiểm thử tự động khó hơn nhiều so với kiểm thử thủ công vì cập nhật hay chỉnh sửa yêu cầu nhiều công việc như debug, thay đổi dữ liệu đầu vào và cập nhật code mới.
  • Khả năng bao phủ thấp: do khó mở rộng và đòi hỏi nhiều kỹ năng lập trình nên độ bao phủ của kiểm thử tự động thấp xét trên góc nhìn toàn dự án.
  • Vấn đề công cụ và nhân lực: hiện nay cũng có nhiều công cụ hỗ trợ kiểm thử tự động khá tốt nhưng chúng vẫn còn nhiều hạn chế. Ngoài ra nhân lực đạt yêu cầu (có thể sử dụng thành thạo các công cụ này) cũng không nhiều.
Ưu Nhược Điểm Của Automation Testing So Với Manual Testing
Ưu Nhược Điểm Của Automation Testing So Với Manual Testing

III. Automation Test Làm Những Công Việc Gì?

Thông thường những công việc của automation test sẽ bao gồm:

– Automate TC (ATC): thực hiện các bước trong MỘT kịch bản test, mô phỏng các thao tác của người sử dụng một cách tự động hóa

– Automate automated TC (AATC): thực hiện chạy TOÀN BỘ các kịch bản test (test suite) một cách tự động hóa và report.

Chi tiết:

ATC bao gồm các bước

– Chuẩn bị test data (nếu cần): ví dụ lựa chọn test data hợp lệ bao gồm 1 email và 1 password ngẫu nhiên để đăng ký tài khoản mới, bạn phải tự động tạo 1 email hợp lệ sau mỗi test case.

– Thực hiện mô phỏng các thao tác của người dùng trong kịch bản test bằng việc viết các script sử dụng các ngôn ngữ hỗ trợ khác nhau.

– Thực hiện việc so sánh kết quả thực tế và kết quả mong đợi trong mỗi kịch bản test

– Cập nhật kết quả test của kịch bản test

AATC bao gồm các bước:

– Chuẩn bị môi trường để test: bước này có thể sẽ phải triển khai môi trường cho automation test, hoặc chuẩn bị các file cài đặt, các test data….

– Khởi chạy test suite: theo cấu hình hoặc yêu cầu từ trước, ví dụ như: chạy các test case UAT, hoặc các nhóm test case liên quan tới 1 function nào đó….

– Báo cáo: việc báo cáo có thể được thực hiện update dần thông qua từng kịch bản test (như extend report, allure report), hoặc có thể tạo DB report riêng và dashboard riêng để hiển thị kết quả. Ngoài ra, tùy theo yêu cầu của project mà report được thông báo với các bên liên quan thông qua các công cụ hỗ trợ, như slack, skype, email, jira…..

 Automation Test Làm Những Công Việc Gì
Automation Test Làm Những Công Việc Gì

IV. Quy Trình Automation Test

Thành công trong tự động hóa việc thử nghiệm đòi hỏi việc lập kế hoạch và thiết kế cẩn thận. Các bước sau được thực hiện theo quy trình tự động hóa:

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

Trước khi áp dụng Automation testing, bạn nên xác định mục tiêu. Bây giờ, lúc bạn chắc chắn mình đang thực hiện loại kiểm tra nào, bạn cần chọn công cụ kiểm thử phần mềm. Bạn cần cân nhắc những điểm sau khi chọn công cụ:

  • 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

  • Tiếp theo, bạn cần xác định phạm vi tự động hóa. Vì vậy, 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

Sau khi xác định mục tiêu và loại thử nghiệm nào cần tự động hóa, bạn nên quyết định những hành động mà Automation testing sẽ thực hiện. Việc lập kế hoạch, thiết kế và phát triển bao gồm:

– 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 bảo đảm 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 1 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 những trường hợp kiểm thử được thực thi, bước tiếp theo là tạo báo cáo để những hành động thực hiện trong quá trình thử nghiệm được ghi lại. 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.

Quy Trình Automation Test
Quy Trình Automation Test

V. Khi Nào Nên Áp Dụng Automation Testing

  • Trường hợp kiểm thử cần thực hiện nhiều lần, thường xuyên phải thực hiện regression test, một số lượng test data lớn cần hoàn thành trong một thời gian ngắn.
  • Kiểm thử cần thực hiện ở môi trường khác nhau
  • Áp dụng với những project ổn định, đặc điểm kĩ thuật được xác định trước, chức năng không thay đổi trong tương lai
  • Kiểm thử hoạt động cơ bản mà phải thực hiện lặp lại với lượng test data lớn
  • Kiểm tra nhiều màn hình trong thời gian ngắn, liên tục
  • Thực thi test performance test hoặc load test thì kiểm thử tự động gần như là lựa chọn duy nhất
Khi Nào Nên Áp Dụng Automation Testing
Khi Nào Nên Áp Dụng Automation Testing

VI. Học Gì Để Trở Thành Automation Tester ?

+ Nắm kiến thức về Manual Testing

  • Các loại kiểm thử: Unit Test, Intergration Test, System Test, Acceptance Test, Regression Test, Sanity Test, Smoke Test… là gì?
  • Các kiến thức căn bản: Phân tích giá trị biên, phân vùng tương đương, biểu đồ kết quả, đoán lỗi…
  • Rèn luyện khả năng quan sát và nhìn nhận vấn đề đối với 1 case nào đó bất kỳ. Cần kiểm tra cái gì, đến mức độ nào, cái nào quan trọng hơn cái nào,…Để sau còn biết cái nào mang sang Auto Test cái nào giữ lại cho Manual Test.

Tại sao phải trang bị những kiến thức này, bởi vì một Automation Tester sẽ không design được đúng hoặc đủ tất cả những Cases mà mình cần nếu không nắm chắc những nội dung này. Và trong trường hợp bạn phải ôm xô cả vai trò của Manual Tester hoặc phải design Test Case trước khi thực hiện viết kịch bản Auto thì chắc hơi căng đấy =))

+ Hiểu về HTML, CSS và Xpath

  • Để nhận dạng đúng Test Objects/ Elements mà mình cần thao tác cho auto test.
  • Vô cùng quan trọng: việc nhận dạng đúng đối tượng cần thao tác sẽ tăng sự ổn định và độ chính xác của Test Script.

+ Học ít nhất một ngôn ngữ lập trình

Để hỗ trợ cho việc viết kịch bản trên test tools

  • Java/ C#/ Python/ Ruby/ Javascript/ Groove…

Đây là phần cực kì quan trọng nếu bạn muốn làm tốt và phát triển công việc của một Automation Tester.

Riêng ở Việt Nam thì An gợi ý là học ngôn ngữ Java để kết hợp Selenium Java. Các công ty đang làm và tuyển dụng phổ biến.

+ Sử dụng thư viện hỗ trợ auto test

Phần này khá là quan trọng trong thời điểm hiện tại, Selenium được sử dụng tại hầu hết các công ty có làm Automation cho Website (open source, dễ sử dụng, cộng đồng lớn).

Song song đó thì chúng ta dùng Appium để auto test cho Mobile.

+ Tự build code với Framework Testing

JUnit/ TestNG/ Cucumber/ Specflow/ NUnit/ XUnit/ MSTest/ Pytest…

Việc sử dụng thành thạo 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.

+ Học hỏi công nghệ mới trong mảng Automation Testing

Khi mà đã code được hoàn thiện dự án automation test rồi thì bước tiếp theo sẽ là nghiên cứu học hỏi các công nghệ mới bổ trợ cho mình về sau lâu dài để nâng cao kiến thức, hiệu quả cũng như năng suất cho auto test.

  • Build tools: Maven, ANT,…
  • CI/CD: Jenkins, TeamCity, CircleCI, TFS, Docker, …
  • Cloud: AWS, Saucelab, Browserstack, Testingbot,…
  • BDD: Cucumber, Serenity, Specflow,…
  • Big Data: Hadoop, HBase, Kafka, Spark, Hive,…
  • Mobile: Appium, Perfecto,…
  • Automation Testing Tools: Katalon Studio, Katalon Recoder, Selenium IDE,…và một số Extensions trên Browser

+ Tìm hiểu về Software Design Pattern

Để build framework/ common library mục đích làm cho source code mình nó bài bản hơn. Sau này dễ custom dễ optimize.

+ Build Framework với kiểu Page Object Model pattern (POM)

Hầu hết các framework nổi tiếng hiện nay đều kế thừa ý tưởng từ pattern này nên việc bạn sử dụng thành thạo POM sẽ không khó lúc tiếp cận một công nghệ/ framework mới.

Sau khi build thành công framework, apply vào một dự án thực tế bất kì để kiểm nghiệm.

+ Kĩ năng về Coding/ IDE

Khi mà đã biết code rồi thì rèn luyện code nhanh hơn, mượt hơn, nghiên cứu các cách xử lý lỗi xảy ra để cứng tay hơn =))

  • Debug, coding convention, source version control (GIT, SVN,…)
  • Cách dùng IDE: Visual Studio, Eclipse, IntelliJ,…
  • Cài  những Extension bổ trợ hoặc viết luôn Extension cho IDE để code bá cháy hơn

+ Làm việc với Database

Hầu hết dự án phần mềm nào cũng có thao tác với DB, nắm vững kiến thức về truy vấn, verify data, ràng buộc dữ liệu,.. sẽ giúp bạn rất nhiều trong công việc hàng ngày của Automation Tester.

Học Gì Để Trở Thành Automation Tester
Học Gì Để Trở Thành Automation Tester

VII. Những Kỹ Năng Nào Là Cần Thiết Dành Cho Một Automation Tester?

1) Hiểu nguyên lý nhận dạng test objects. Nếu làm Web Automation Test cần nắm rõ HTML và XPath. Bạn có thể học hai mảng này ở W3School.

2) Hiểu nguyên lý lập trình, và thành thạo ít nhất 1 ngôn ngữ lập trình. Web Automation Engine được dùng phổ biến ở thị trường hiện nay là Selenium WebDriver, có kết hợp cho những ngôn ngữ Java, C#, Ruby, Python…

Ngoài ra các bạn có thể tham khảo thêm các ngôn ngữ scripting phổ biến như VBScript, JavaScript hoặc Groovy nếu cần.

3) Không bỏ qua SQL và XML. Hai mảng này bạn có thể học tại TutorialsPoint và W3School.

Đa số các dự án lập trình đều cần có cơ sở dữ liệu. XML được hiểu như một phần của portal database và SML cũng được dùng tương đối nhiều hiện nay.

4) Những bạn muốn đi sâu vào thiết kế tốt framework/common library thì nên tìm hiểu sâu về software design pattern.

5) Làm Automation Tester là liên quan đến coding nên các bạn cần quan tâm tới những kỹ năng của code như debug, source version control, coding convention, unit testing… Tìm kiếm các từ khoá này trên Google là thấy ngay tài liệu.

6) Nên ham học hỏi những cái mới trong chuyên môn.

Ví dụ, xu thế Automation Test và software development hiện tại là kỹ thuật tích hợp (integration). Đó là 1 chuỗi khép kín, tương tác giữa development, deploy và test. Anh đang nghiên cứu kỹ thuật này vì nó là xu hướng chung, không học hỏi sẽ bị tụt hậu.

Những Kỹ Năng Nào Là Cần Thiết Dành Cho Một Automation Tester
Những Kỹ Năng Nào Là Cần Thiết Dành Cho Một Automation Tester

VIII. Các Tool Automation Test

Với sự gia tăng trong việc áp dụng các phương pháp Agile và DevOps, ngành công nghiệp kiểm thử phần mềm đang trải qua một sự thay đổi mô hình. Automation test đang ngày càng được ưa chuộng vì chỉ cần rất ít thời gian để thực hiện kiểm thử. Các công cụ kiểm tra tự động hóa không chỉ cung cấp tự động hóa một cách thông minh mà còn cung cấp các hướng phân tích để giải quyết mọi thách thức khi tiến hành kiểm thử.

Dưới đây là danh sách 5 công cụ và khung kiểm tra tự động hóa hàng đầu có thể cải thiện đáng kể kết quả kiểm thử phần mềm của bạn.

+ Selenium

Selenium được dùng để kiểm tra trình duyệt chéo ( cross-browser testing) và tự động hóa kiểm tra trình duyệt web (web-browser test automation). Để sử dụng công cụ này, người kiểm tra phải có kỹ năng lập trình nâng cao để viết các kịch bản kiểm tra phức tạp và nâng cao.

Những kỹ năng này là cần thiết để xây dựng các khung và thư viện tự động hóa cho các nhu cầu kiểm thử cụ thể. Selenium là một công cụ nguồn mở thường được sử dụng bởi các nhà phát triển và người thử nghiệm, những người thông thạo các ngôn ngữ lập trình như Java, C #, Perl, Python, Scala, Groovy, PHP & Ruby.

Selenium được trang bị Selenium WebDriver mạnh mẽ cho phép bạn tạo các bộ kiểm tra và tự động hồi quy dựa trên trình duyệt. Một trong những lợi thế chính của công cụ này là nó cho phép bạn chia tỷ lệ và phân phối các tập lệnh trên nhiều môi trường.

+ IBM Rational Functional Tester (RFT)

IBM RFT rất phù hợp để kiểm thử hồi quy (regression testing) và kiểm thử chức năng (functional testing). Đây là một nền tảng kiểm thử (testing platform) dựa trên dữ liệu hỗ trợ các ứng dụng như .Net, Java, SAP, Flex và Ajax. Các ngôn ngữ kịch bản được sử dụng bởi RFT là .Net và Java.

Một trong những tính năng độc đáo của IBM RFT là kiểm thử Storyboard (Storyboard testing) giúp đơn giản hóa kiểm thử trực quan bằng cách ghi lại và trực quan hóa các hành động của người dùng với sự trợ giúp của các ảnh chụp màn hình ứng dụng theo định dạng bảng phân cảnh. Nó cũng cho phép chỉnh sửa bằng ngôn ngữ tự nhiên. Nó cũng cung cấp tích hợp với quản lý vòng đời ứng dụng IBM Jazz như IBM Rotational Team Concert và Rational Quality Manager.

+ Cucumber

Cucumber là khung phát triển hướng hành vi (BDD) cho phép xác thực chức năng theo định dạng dễ hiểu và dễ đọc. BDD là một cách tiếp cận mở rộng của Phát triển hướng thử nghiệm (Test Driven Development) và nó được sử dụng để kiểm tra hầu hết hệ thống thay vì kiểm tra một đoạn mã cụ thể.

Cucumber là 1 công cụ để làm việc với các thông số kỹ thuật thực thi. Các thông số kỹ thuật thực thi được sử dụng cho sự hợp tác lớn hơn giữa các nhóm CNTT và doanh nghiệp. Công cụ này hữu ích để viết acceptance tests cho ứng dụng web. Cucumber cung cấp các tệp tính năng có thể được sử dụng làm tài liệu của các Nhà phân tích, Nhà phát triển và Người kiểm tra, v.v. Cucumber hỗ trợ các ngôn ngữ như Perl, PHP, Python, Net, v.v.

+ TestComplete

TestComplete cho phép bạn xây dựng và chạy các kiểm thử giao diện người dùng chức năng (functional UI tests). Đây là một công cụ kiểm tra tự động hóa rất phù hợp để kiểm tra các ứng dụng máy tính để bàn, thiết bị di động và web. Công cụ cho phép bạn tạo ra các trường hợp kiểm thử bằng hầu hết các ngôn ngữ phổ biến như Python, JavaScript và VBScript, v.v …

Nó cho phép bạn ghi lại và phát lại các bài kiểm thử. Nó cung cấp các khả năng nhận dạng đối tượng GUI UI tự động phát hiện và cập nhật các đối tượng UI. Nó giúp giảm bớt những nỗ lực cần thiết để duy trì các kịch bản kiểm thử (test scripts) . Với TestComplete, việc kiểm thử quy mô trên 1500+ môi trường thử nghiệm thực tế là tươg đối dễ dàng để cung cấp phạm vi kiểm tra hoàn chỉnh.

+ eggPlant

Một trong những công cụ kiểm tra tự động hóa tốt nhất cho ứng dụng và kiểm tra GUI là eggPlant. TestPlant đã phát triển eggPlant cho tester để thực hiện các loại kiểm thử khác nhau. Trong khi hầu hết các công cụ tự động hóa tuân theo cách tiếp cận dựa trên đối tượng, eggPlant hoạt động theo cách tiếp cận dựa trên hình ảnh.

Công cụ cho phép người kiểm tra tương tác với ứng dụng giống như cách endusers sẽ làm. Trong eggPlant, bạn có thể sử dụng một tập lệnh duy nhất để thực hiện kiểm thử trên nhiều nền tảng như Windows, Mac, Linux và Solaris, v.v. eggPlant cung cấp một bộ công cụ tự động hóa kiểm thử để thực hiện các loại kiểm thử khác nhau.

Công cụ kiểm tra chức năng eggPlant được sử dụng để kiểm tra chức năng và hiệu suất eggPlant được sử dụng để kiểm tra hiệu suất, tải và ứng suất (performance testing, load testing và stress testing).

Các Tool Automation Test
Các Tool Automation Test

IX. Các Câu Hỏi Phỏng Vấn Automation Test

+ Tại sao cần Automation Test? (Why need automation test?)

Câu hỏi này để đánh giá kiến thức sơ bộ của bạn về automation test và việc bạn có biết mục đích sử dụng automation test để sử dụng nó có hiệu quả.

  • Giúp tiết kiệm tiền bạc và thời gian: nhất là trong giai đoạn bảo trì của những dự án lớn. Mỗi tuần chúng ta phải thực hiện regression test từ 1 đến 2 lần với số lượng test case rất lớn trong 1 tới 2 ngày. ĐIều này gần như không thể thực hiện bằng cách thủ công, trong lúc với kiểm thử tự động chúng ta hoàn toàn có thể với nguồn nhân lực vô cùng khiêm tốn.
  • Chính xác hơn: Nhờ độ ổn định cao, kiểm thử tự động có thể thực thi các test case với độ chính xác cao hơn.
  • Độ bao phủ cao: Như đã nói ở trên, khi dùng kiểm thử tự động, chúng ta có thể thực thi số lượng lớn test case trong một thời gian ngắn. Nên độ bao phủ của nó rất cao. Điều này giúp chúng ta nâng cao độ bao phủ trong giai đoạn regression test.
  • Hoàn thành những công việc mà con người không thể làm được: Nếu chúng ta muốn thực thi load test, performance test, thì kiểm thử tự động là cách duy nhất.

Các trường hợp cần sử dụng automation test:

a) Kiểm thử hồi quy (Regression testing): Trong trường hợp sửa lỗi hoặc triển khai module mới, tester phải đảm bảo rằng chức năng đã được triển khai hoặc không thay đổi không bị ảnh hưởng. Trong trường hợp này, tester kết thúc chạy test case hồi quy nhiều lần.

Ví dụ: Sau mỗi yêu cầu thay đổi hoặc sửa lỗi, sau mỗi lần lặp trong trường hợp tiếp cận phát triển gia tăng, v.v.

b) Kiểm thử phi chức năng: Kiểm thử các khía cạnh phi chức năng của một ứng dụng.

Ví dụ: kiểm thử tải (load testing) hoặc kiểm thử hiệu suất (performance testing), vv rất khó cho con người theo dõi và phân tích.

c) Kiểm thử tính toán phức tạp: các test scenario dễ bị lỗi khi kiểm thử thủ công.

d) Thực hiện lặp lại các kiểm thử giống nhau: Đôi khi, tester phải chạy cùng một bộ test case cho một bộ dữ liệu khác nhau hoặc sau mỗi lần phát hành bản dựng hoặc trên nhiều phần cứng, phần mềm hoặc kết hợp cả hai.
Kiểm thử tự động các test case trong các tình huống trên giúp đạt được tốc độ kiểm thử và giảm thiểu lỗi của con người.

+ Framework là gì? (What is the framework?)

Câu hỏi để đánh giá sơ bộ cách build framework của bạn và liệu frame work đó có hiệu quả không?

Framework là một tập hợp cấu trúc của toàn bộ bộ kiểm thử tự động. Nó cũng là một hướng dẫn, mà nếu tuân theo có thể dẫn đến một cấu trúc dễ bảo trì và nâng cao.

Những hướng dẫn này bao gồm:

– Tiêu chuẩn mã hóa

– Xử lý dữ liệu kiểm thử

– Duy trì và xử lý các phần tử (kho đối tượng trong QTP)

– Xử lý tệp môi trường và tệp thuộc tính

– Báo cáo dữ liệu

– Xử lý nhật ký

+ Automation test framework là gì?

Có thể hiểu đơn giản đó là một application project được dựng lên để tự động hóa việc kiểm thử một ứng dụng nào đó. Như vậy, bản thân framework cũng chính là một ứng dụng. Nó cũng phải được thiết kế hoàn chỉnh, được apply những design pattern, và cũng phải dựa trên những định nghĩa, quy tắc cơ bản nhất của ngôn ngữ lập trình được sử dụng để phát triển nên framework đó. Framework có thể được deploy như một ứng dụng hoàn chỉnh, hoặc cũng có thể được đóng gói thành các thư viện để được tiếp tục được phát triển.

+ Trách nhiệm của một Automation Engineer?

Automation Engineer không chỉ làm công việc viết automation script. Họ trước hết vẫn phải là một QA Tester đúng nghĩa. Đó là phải có sự am hiểu về mặt nghiệp vụ (business) của hệ thống. Có thể hiểu ít nhất mức độ quan trọng của việc kiểm thử, biết cách viết test case, log defect. Thực tế công việc thì người Automation Engineer sẽ kiêm luôn công việc của một Manual QA, và khi đã feature nào đã được hoàn tất, họ sẽ bắt tay vào việc implement các test case liên quan tới feature đó thành automation.

Trên thực tế, từ một QA thuần manual để chuyển sang Automation QA thực sự không phải là việc dễ dàng vì có dính tới code, và cũng đòi hỏi nhiều mindset, kỹ năng của một developer. Vì vậy, bạn cũng đừng ngạc nhiên khi thấy có nhiều Developer chuyển sang làm Automation QA nhưng từ Manual QA mà chuyển sang Automation thành công lại khá hiếm.

Đó là bởi vì developer đã có sẵn dev skills và coding mindset, là những thứ cần rất nhiều thời gian + năng khiếu mới có được. Khi đó, chỉ cần học hỏi thêm mindset và kỹ năng cơ bản của một Manual QA là đã có thể bắt đầu con đường của một Automation QA được rồi.

Tuy nhiên, một full-stack QA không chỉ cần có Manual và Automation skills mà còn cần phải có ít nhiều kỹ năng của một DevOps để có thể tự deploy và maintain những gì mình đã xây dựng. Và cuối cùng là khả năng ngoại ngữ + giao tiếp để có thể deliver những gì mình đã và đang làm tới khách hàng.

+ Nêu 4 tính chất cơ bản của Lập trình hướng đối tượng OOP (Object-Oriented Programming)?

Phần lớn các automation framework hiện nay được xây dựng dựa trên Selenium kết hợp với một ngôn ngữ lập trình hướng đối tượng (phổ biến nhất có lẽ là Java và C#). Vậy nên dĩ nhiên các câu hỏi phỏng vấn sẽ ít nhiều liên quan tới OOP.

4 tính chất cơ bản của OOP thì có lẽ ai cũng biết, đó là:

– Encapsulation (tính đóng gói).

– Abstraction (tính trừu tượng).

– Inheritance (tính kế thừa).

– Polymorphism (tính đa hình).

Nhưng để hiểu và giải thích được cặn kẽ cả 4 tính chất này thì bạn cần ít nhất 1-2 tiếng đồng hồ để thử practice và nghiền ngẫm qua các ví dụ đầy rẫy trên mạng.

Các Câu Hỏi Phỏng Vấn Automation Test
Các Câu Hỏi Phỏng Vấn Automation Test

X. Khóa Học Automation Testing Ở Đâu Tốt Nhất

Hiện nay có nhu cầu tuyển Tester tăng cao, rất nhiều nhà tuyển dụng lớn như Seta Cinq (Mỹ và Nhật), Exoplatform (Pháp), Sumy(Cty VN có các dự án ở Malaysia) … Nên việc xin việc đối với các học viên sau Khoá học Automation testing của Techacademy.edu.vn là điều dễ dàng. Đây là thời cơ rất tốt cho những bạn sinh viên học CNTT.

Phương pháp đào tạo

Cụm từ “tự động hóa” đã và đang được nhắc đến cực kỳ nhiều mục đích thường rất đa dạng, phụ thuộc vào yêu cầu đặc thù của từng lĩnh vực. Tuy nhiên điểm chung nhất vẫn là giảm nhân lực thời gian và sai sót.

Ngành CNTT mà cụ thể là phát triển phần mềm cũng không ngoại lệ. Đặc biệt với sự phát triển như vũ bão về công nghệ, ý tưởng mới như hiện nay đòi hỏi cách doanh nghiệp phần mềm phải rút ngắn thời gian đưa sản phẩm ra thị trường (time to market) với chất lượng tốt nhất.

Kiểm thử tự động bởi thế có thêm nhiều cơ hội và thách thức mới trở thành ngành “hot” đang được tìm kiếm và quan tâm nhất.

Ngoài ưu điểm về giảm thiểu thời gian và nhân lực trong kiểm tra hồi quy (regression test) thì để thích ứng với mô hình Agile, test tự động còn phải đáp ứng thêm những yêu cầu sau:

– Đáp ứng nhanh các yêu cầu của kiểm thử viên về cả kiểm tra hồi quy (regression) và các chức năng mới (new test cases).

– Thời gian scripting ngắn, dễ dàng review + đối chiếu với SRS, và khả năng tái sử dụng cao (maintenance).

– Phản hồi thông tin nhanh cho đội phát triển về chất lượng phần mềm (Quick feedback to development team).

– Dễ dàng mở rộng và thích ứng với các công nghệ mới.

– Chi phí thấp

Trước các yêu cầu mới này ICT – HÀ NỘI phối hợp với các doanh nghiệp lớn đã xây dựng chương trình đào tạo kiểm thử phần mềm tự động với mục đích:

– Giúp học viên nắm được công cụ và quy trình làm test tự động.

– Sẵn sàng tham gia vào quá trình áp dụng và triển khai kiểm thử phần mềm tự động cho các dự án Web, Desktop, Mobile vừa và lớn.

– Có khả năng mở rộng xây dựng các framework, cập nhật các công nghệ kiểm thử tự động mới.

– Đặc biệt giúp công ty nơi học viên sau khi kết thúc khóa học làm việc có được các phương pháp mới nhất với chi phí thấp nhất về test tự động theo mô hình ATDD (acceptance test driven development) để có khả năng đấu thầu các dự án lớn trên thế giới.

Khóa Học Automation Testing Ở Đâu Tốt Nhất
Khóa Học Automation Testing Ở Đâu Tốt Nhất

Bài viết liên quan

guest
0 Thảo Luận & Hỏi Đáp
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Hotline: 0984.876.750
Chat Facebook
Gọi điện ngay