Một số câu hỏi phỏng vấn cho Automation Engineer

Friday, January 01, 2021
Edit this post


Đã có Một số câu hỏi phỏng vấn cho Manual Tester thì cũng nên có một số câu hỏi phỏng vấn cho Automation Engineer (hay còn gọi là Automation QA) mới cân bằng nhỉ? Các câu hỏi sẽ có cả ở mức lý thuyết high level lẫn technical low level. Phần trả lời cho các câu hỏi bên dưới chỉ dừng ở mức ý tưởng. Để hiểu rõ hơn, các bạn cần chủ động research và practice.

Tham khảo thực tế phỏng vấn vị trí Senior QA tại Agoda Bangkok: Tôi đã tìm việc ở Thái Lan như thế nào?


Automation test là gì?

Là quá trình sử dụng các công cụ phần mềm, hoặc ngôn ngữ và công cụ lập trình để tự động hóa các bước kiểm thử và xác thực kết quả được gọi là automation test. 

Tuy vậy, trong thực tế khi tuyển một Automation Engineer thì nhà tuyển dụng luôn đòi hỏi ứng viên phải biết sử dụng ngôn ngữ và công cụ lập trình để có thể develop hoặc maintain các test framework sẵn có. Có khá nhiều bạn tự xưng là Automation QA nhưng khi hỏi OOP là gì? Page Object Model là gì? Hay những dev skills cơ bản nhất như resolve Git conflicts thì lại không trả lời được. Một Automation Engineer đúng nghĩa có thể sở hữu những dev skills tương đương với một developer nhiều năm kinh nghiệm.

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.

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.

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.

Sự khác biệt giữa Interface và Abstract class?


Trong Java, chúng ta chỉ có thể extend (kế thừa) một class cha duy nhất nhưng lại có thể implements nhiều interface khác nhau.


Selenium là gì?


Selenium là một framework được tạo ra để phục vụ cho việc automation test các ứng dụng web.

Appium là gì?


Appium is an open source automation tool for running scripts and testing native applications, mobile-web applications and hybrid applications on Android or iOS using a webdriver.

Nói một cách đơn giản, chúng ta sẽ cần đến Appium khi perform automation testing trên các mobile platforms như Android hay iOS.

Cucumber là gì?

Cucumber is a software tool that supports behavior-driven development. Central to the Cucumber BDD approach is its ordinary language parser called Gherkin. It allows expected software behaviors to be specified in a logical language that customers can understand.

Cucumber là một công cụ phần mềm hỗ trợ BDD. Ngôn ngữ được sử dụng trong Cucumber là Gherkin.


Sự khác biệt giữa Git và GitHub?

Simply put, Git is a version control system that lets you manage and keep track of your source code history. GitHub is a cloud-based hosting service that lets you manage Git repositories.

Yeah, một câu hỏi tưởng chừng đơn giản nhưng cũng có thể khiến nhiều người sa lưới. Nois một cách đơn giản, Git là một hệ thống quản lý version cho phép bạn quản lý và theo dõi lịch sử của source code. Trong khi đó, GitHub là một dịch vụ cloud hosting cho phép bạn quản lý các Git repo khác nhau.

Page Object Model là gì?


Page Object Model or POM  is a design pattern or a framework that we use in Selenium using which one can create an object repository of the different web elements across the application. To simplify, in the Page Object Model framework, we create a class file for each web page. This class file consists of different web elements present on the web page. Moreover, the test scripts then use these elements to perform different actions.

Page Object Model là một design pattern hoặc một framework mà chúng ta sử dụng trong Selenium. Nói một cách đơn giản, với mỗi trang ứng dụng cần test (ví dụ như trang Login) thì chúng ta sẽ tạo một class file tương ứng. Class này sẽ chứa các element locators tương ứng cho trang cần test (nút Login, Username field, Password field,...) và cả các keyword/action tương ứng (clickLoginButton, inputUsername,...).

Browser Factory là gì?


From our experience with frameworks we know that maintaining and passing around a WebDriver object across different tests is a delicate process. Also, the complexity increases when we have to maintain only one instance of a WebDriver through out the test run. To overcome the problem on instantiation of WebDriver and maintaining the instance of browser we can use create a small class called Browser Factory or WebDriver Factory.

Có thể hiểu Browser Factory như một design pattern giúp khởi tạo và duy trì browser instance một cách đơn giản và dễ dàng hơn trong suốt quá trình chạy test.

Data Driven là gì?

Về mặt định nghĩa, các bạn có thể tự tìm hiểu. Nhưng về mặt technical, một biểu hiện của Data Driven đó là với cùng một test method, bạn có thể run nó nhiều lần, với mỗi lần là 1 bộ data khác nhau, tương ứng với các scenario khác nhau. Data Driven hầu như đều được hỗ trợ bởi các testing framework cơ bản như TestNG, JUnit, NUnit, Xunit, v.v...


Sự khác biệt giữa BDD và TDD?



Các kiểu chờ đợi (wait) trong Selenium?


(to be updated...)

Bài viết tạm dừng ở đây. Những câu hỏi phỏng vấn là vô chừng. Tôi sẽ tiếp tục bổ sung thêm những câu hỏi khác trong tương lai.

.
Xin vui lòng chờ đợi
Dữ liệu bài viết đang được tải về

BÌNH LUẬN

Cảm ơn bạn đã đọc bài viết của Cuộc Sống Tối Giản. Đây là một blog cá nhân, được lập ra nhằm mục đích lưu trữ và chia sẻ mọi thứ hay ho theo chủ quan của chủ sở hữu. Có lẽ vì vậy mà bạn sẽ thấy blog này hơi (rất) tạp nham. Mọi chủ đề đều có thể được tìm thấy ở đây, từ tâm sự cá nhân, kinh nghiệm sống, phim ảnh, âm nhạc, lập trình... Phần lớn các bài đăng trong blog này đều được tự viết, trừ các bài có tag "Sponsored" là được tài trợ, quảng cáo, hoặc sưu tầm. Để ủng hộ blog, bạn có thể share những bài viết hay tới bạn bè, người thân, hoặc có thể follow Kênh YouTube của chúng tôi. Nếu cần liên hệ giải đáp thắc mắc hoặc đặt quảng cáo, vui lòng gửi mail theo địa chỉ phipgn@gmail.com. Một lần nữa xin được cảm ơn rất nhiều!!!
© Copyright by CUỘC SỐNG TỐI GIẢN
Loading...