CÂU HỎI PHỎNG VẤN AUTOMATION TESTER (Tiếng Việt)

Anh Tester chia sẻ đến với bạn một số câu hỏi phỏng vấn Automation Tester bằng Tiếng Việt mà các nhà tuyển dụng thường hỏi, các bạn có thể tham khảo để chuẩn bị tốt hơn cho buổi phỏng vấn của mình.

Để có thể vượt qua các vòng tuyển dụng Automation Tester, bạn cần chuẩn bị trước ở nhà một số tình huống có thể xảy ra. Sau đây là một số các câu hỏi phỏng vấn thường gặp.

Các câu hỏi về thông tin và kinh nghiệm cá nhân

Các câu hỏi đầu tiên bạn nhận được khi tham gia buổi tuyển dụng Automation Tester là về thông tin và kinh nghiệm của bạn.

Các nhà tuyển dụng sẽ hỏi các câu hỏi như: “Bạn hãy giới thiệu về mình?”, “Tại sao bạn lại chọn nghề Tester?”, “Kinh nghiệm làm nghề Automation Tester của bạn trong quá khứ?”.

Bạn hãy trả lời các câu hỏi này một cách chân thật nhất về những kỹ năng mình có.


Các câu hỏi về kiến thức Automation Testing

1. 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 các 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 đến 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 khi 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 sử 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 tăng độ bao phủ trong giai đoạn regression test .
  • Hoàn thành các 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.


2. 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ý


3. 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. 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.


5. 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.
 

6. 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.


7. Có cần phải xây dựng framework khi build automation? (Why do you need build the framework in automation testing?)

Tham khảo câu trả lời phỏng vấn mẫu bằng Tiếng Việt:
"Framework là hướng dẫn và không phải là quy tắc bắt buộc, vì vậy tester hoàn toàn có thể làm mà không cần chúng, nhưng nếu bạn tạo và tuân theo nó, việc tăng cường và duy trì sẽ dễ thực hiện."
 
"Tham khảo câu trả lời phỏng vấn mẫu bằng Tiếng Anh:
Frameworks are instructions and not mandatory rules, so testers can do without them, but if you create and follow it, enhancement and maintenance will be easy to implement."


8. Liệt kê một số ưu điểm và nhược điểm của automation test – kiểm thử tự động? (List some good and bad in automation testing?)

Đối với các bạn manual chuyển sang automation đã có kinh nghiệm, trải qua thời gian thực thi auto, các bạn sẽ đúc kết được ưu điểm và nhược điểm của automation test
 
Tham khảo câu trả lời phỏng vấn mẫu bằng Tiếng Việt:
 - Ưu điểm:
 Nhân lực ít hơn
 Có thể tái sử dụng
 Thực hiện nhiều test hơn trong thời gian ngắn hơn
 Độ tin cậy cao
 Thi công song song các test case
 Nhanh
 - Nhược điểm:
 Thời gian phát triển và bảo trì nhiều hơn
 Chi phí công cụ cao
 Tài nguyên có kỹ năng được yêu cầu
 Thiết lập môi trường
 Test Script gỡ lỗi là một vấn đề
 
Tham khảo câu trả lời phỏng vấn mẫu bằng Tiếng Anh:
-Advantages:
Less manpower
Reusable
Do more tests in less time
High reliability
Executing parallel test cases
Fast
 
- Defect:
More development and maintenance time
High tool costs
Skilled resources are required
Environment setting
Test Script debugging is a problem


9. Bạn có thể tự động hoá bao nhiêu test case trong 1 ngày? (How many test case can you build in a day?)

Tuỳ vào mỗi level và kinh nghiệm sẽ có số test case được auto
 
 Tham khảo câu trả lời phỏng vấn mẫu bằng Tiếng Việt:
"Con số phụ thuộc vào độ phức tạp của các test case. Khi độ phức tạp bị hạn chế, tôi có thể tự động hóa 5 đến 6 test case mỗi ngày. Đôi khi, tôi chỉ có thể tự động hóa một test case cho các tình huống phức tạp.
Tôi cũng đã chia các test case của mình thành các thành phần khác nhau như: lấy đầu vào, thực hiện tính toán, xác minh đầu ra.. trong trường hợp các kịch bản rất phức tạp và đã mất từ ​​2 ngày trở lên."
 
Tham khảo câu trả lời phỏng vấn mẫu bằng Tiếng Anh:
"The number depends on the complexity of the test case. When complexity is limited, I can automate 5 to 6 test cases per day. Sometimes, I can only automate a test case for complex situations.
 I have also divided my test cases into different components such as taking input, performing calculations, verifying the output .. in case of very complicated scenarios and it took 2 days or more up."
 

10. Selenium là gì?

Selenium là một thư viện được tạo ra để phục vụ cho việc automation test các ứng dụng web.
https://anhtester.com/blog/gioi-thieu-ve-selenium-b254.html
 

11. 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.

12. 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.
 

13. 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.
 

14. 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,...).


15. 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.


16. 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...
 
 

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

 


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

https://www.guru99.com/implicit-explicit-waits-selenium.html

Selenium waits bao gồm một số loại như:

  1. Implicit wait
  2. Explicit wait
  3. Fluent wait

Các câu hỏi về tính cách và định hướng trong tương lai

Trong phần cuối cùng của buổi tuyển dụng Automation Tester, bạn có thể gặp các câu hỏi về tính cách và định hướng tương lai. Bạn hãy cho nhà tuyển dụng thấy mình là người cầu tiến, có khả năng làm việc trong môi trường cộng tác cũng như có ý định làm việc lâu dài với công ty.

Automation Tester là nghề nghiệp triển vọng cho các bạn sinh viên IT tại Việt Nam. Các bạn hãy chuẩn bị thật kỹ những tình huống có thể xảy ra để vượt qua các vòng tuyển dụng Automation Testermột cách tốt nhất.


Tìm hiểu thêm: CÂU HỎI PHỎNG VẤN AUTOMATION TESTER (Tiếng Anh)
Tìm hiểu thêm: 100 câu hỏi và câu trả lời phỏng vấn về Selenium


Nguồn tài liệu:

  • vietnamworks.com
  • giaphi.com
  • got-it.ai
  • ...
  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu