News & Events
1001 Câu trả lời phỏng vấn Automation Test ghi điểm 10/10
- Tháng Năm 8, 2023
- Posted by: Huyen Nguyen Thanh
- Category: Uncategorized
Bài viết này sẽ giới thiệu cho bạn các câu hỏi phỏng vấn Automation Test thường gặp phải. Thông thường câu hỏi phỏng vấn từ nhà tuyển dụng sẽ xoay quanh kinh nghiệm, kỹ năng testing, kiến thức chuyên môn, từ đó sẽ đánh giá năng lực ứng viên. Bộ câu hỏi dưới đây chắc chắn sẽ giúp bạn chuẩn bị tốt các kiến thức cần thiết cho buổi phỏng vấn.
1. List câu hỏi phỏng vấn Automation Test và câu trả lời
1.1. Tại sao cần sử dụng Automation Test
Đây là câu hỏi phỏng vấn Auto Test ứng viên chắc chắn sẽ gặp phải. Câu hỏi này giúp nhà tuyển dụng đánh giá sơ bộ kiến thức của bạn về vai trò của kiểm thử phần mềm tự động và mục đích sử dụng nó trong dự án.
Để ghi điểm, ứng viên cần nêu hiểu biết của mình về lợi ích của việc kiểm thử tự động:
+ Tăng tốc độ kiểm thử: nhất là trong gian đoạn bảo trì dự án có thể Regression Test 1-2 lần với số lượng lớn Test Case trong 1-2 ngày.
+ Tiết kiệm chi phí
+ Giảm rủi ro lỗi
+ Độ chính xác cao
+ Tính tái sử dụng
+ Có khả năng làm những việc kiểm thử thủ công không làm được: thực thi các công việc Load Test, Performance Test,
1.2. Các trường hợp nên sử dụng Auto Test là gì?
Một câu hỏi giúp nhà tuyển dụng đánh giá ứng viên đã nhìn nhận đúng vị trí và công việc của nhân viên kiểm thử tự đông chưa. Để vượt qua câu hỏi này, ứng viên hãy trả lời:
Các 7 trường hợp cần sử dụng Automation Test, cụ thể:
+ Kiểm thử tái lập: Kiểm thử các kịch bản tương tự nhiều lần để đảm bảo rằng phần mềm hoạt động đúng như mong đợi.
+ Kiểm thử tích hợp: Kiểm thử tích hợp giữa các thành phần của phần mềm để đảm bảo rằng chúng hoạt động tốt với nhau.
+ Kiểm thử tải: Kiểm thử khả năng chịu tải của phần mềm để đảm bảo rằng nó hoạt động tốt khi có nhiều người sử dụng.
+ Kiểm thử bảo mật: Kiểm thử các tính năng bảo mật của phần mềm để đảm bảo rằng nó không bị tấn công hoặc hack.
+ Kiểm thử đa nền tảng: Kiểm thử phần mềm trên nhiều nền tảng khác nhau để đảm bảo rằng nó hoạt động tốt trên mọi nền tảng.
+ Kiểm thử liên tục: Kiểm thử liên tục trên phần mềm để phát hiện và khắc phục các lỗi phát sinh sớm nhất có thể.
+ Kiểm thử quy trình: Kiểm thử quy trình của phần mềm để đảm bảo rằng các quy trình hoạt động đúng như mong đợi.
Ở 7 trưởng hợp: tái lập, tích hợp, tải, bảo mật, đa nền tảng, Automation Test có thể giúp thực hiện kiểm thử quy trình nhanh chóng và chính xác hơn Manual Test.
1.3. Cho biết Framework là gì?
Mục đích của nhà tuyển dụng khi hỏi là để đánh giá sơ bộ sự hiểu biết của ứng viên về framework, cách build framework.
Đầu tiên hãy nêu khái niệm về Framework: đó là một khung chương trình cung cấp một cách tiếp cận tổng thể để thiết kế, xây dựng và triển khai các ứng dụng hoặc phần mềm.
Framework giúp cho quá trình phát triển phần mềm nhanh chóng hơn, dễ dàng hơn và tối ưu hơn bằng cách cung cấp các hướng dẫn và tiêu chuẩn phát triển cho các nhà phát triển.
Có nhiều loại Framework được sử dụng trong các ngôn ngữ lập trình khác nhau như Selenium Framework, TestNG Framework, JUnit Framework, Spring Framework, Django Framework, AngularJS Framework, ReactJS Framework, và nhiều hơn nữa.
1.4. Các framework automation test là gì?
Một câu hỏi nữa về framework automation thưởng gặp khi phỏng vấn Auto mation Test. Ứng viên cân nêu một số ví dụ và khái niệm tổng quát của một số loại phổ biến như:
+ Selenium Framework: Selenium hỗ trợ nhiều ngôn ngữ lập trình, bao gồm Java, Python, C# và Ruby.
+ Appium Framework: thường sử dụng cho khi làm auto test trên các thiết bị di động. Appium hỗ trợ nhiều hệ điều hành, bao gồm Android và iOS.
+ TestNG Framework: được sử dụng khi thực hiện sử dụng cho automation testing trong Java. TestNG cung cấp nhiều tính năng hơn so với JUnit.
+ JUnit Framework: Đây là một framework được sử dụng cho automation test trong Java. JUnit hỗ trợ việc viết các test case cho ứng dụng Java.
+ Robot Framework: hỗ trợ nhiều loại ứng dụng, bao gồm web, desktop và mobile và thường được sử dụng với 1 ngôn ngữ lập trình đơn giản.
+ Cucumber Framework: Đây là một framework hỗ trợ nhiều ngôn ngữ lập trình, bao gồm Java, Ruby và JavaScript.
+ Cypress Framework: sử dụng để hỗ trợ viết các test case bằng JavaScript và có tính năng độc đáo như truy cập trực tiếp vào DOM của trình duyệt.
Ngoài ra còn nhiều framework khác được sử dụng cho automation test như Watir, Gauge, Serenity, và nhiều hơn nữa.
1.5. Tính chất cơ bản của lập trình OOP (lập trình hướng đối tượng) là gì?
Phần lớn automation đều được thực hiện trênSelenium, bởi vậy rất có thể bạn sẽ nhận được các câu hỏi liên quan tới lập trình hướng đối tượng.
Trả lời: Lập trình hướng đối tượng OOP – Object-Oriented Programming có 4 tính chất cơ bản sau:
+ Tính đóng gói (Encapsulation)
+ Tính kế thừa (Inheritance)
+ Tính đa hình (Polymorphism)
+ Tính trừu tượng (Abstraction)
Để câu trả lời chi tiết và ấn tượng hơn, ứng viên có thể nêu cách hiểu của bản thân về 4 tính chất trên.
Tóm lại, OOP cung cấp một cách tiếp cận tổng thể để thiết kế, xây dựng và triển khai các ứng dụng hoặc phần mềm, giúp cho việc phát triển phần mềm dễ dàng hơn, nhanh chóng hơn và tối ưu hơn.
1.6. Interface và Abstract class có gì khác nhau
Về vấn đề này từ nhà tuyển dụng, ứng viên có thể trả lời ngắn gọn như sau:
Điểm khác nhau giữa Interface và Abstract class đó là chúng ta có thể kế thừa 1 class cha duy nhất nhưng với Interface thì ngược lại. Chúng ta có thể implement nhiều Interface.
1.7. Có nhất thiết phải xây dựng framework khi build automation hay không?
Không thể phủ nhận lợi ích của việc xây dựng Framework cho auto test, đặc biệt trong việc tăng tính linh hoạt, tái sử dụng code, giảm thiểu thời gian phát triển và nâng cao hiệu quả của quá trình kiểm thử tự động.
Tuy nhiên, Framework không phải là yếu tố bắt buộc phải có khi build automation.
1.8. Thư viện Selenium là gì?
Selenium là một thư viện mã nguồn mở được sử dụng để tự động hóa việc kiểm thử các ứng dụng web. Selenium cung cấp cho người dùng một bộ công cụ để tương tác với trình duyệt web và thực hiện các hoạt động như điều khiển trình duyệt, nhập liệu, click, và kiểm tra kết quả hiển thị của trang web. Selenium hỗ trợ nhiều ngôn ngữ lập trình như Java, Python, C#, Ruby, và JavaScript, vì vậy người dùng có thể lựa chọn ngôn ngữ lập trình yêu thích của mình để xây dựng các kịch bản kiểm thử tự động. Selenium được sử dụng rộng rãi trong ngành công nghệ thông tin để tự động hóa kiểm thử các ứng dụng web.
1.9. Có thể kiểm thử tự động bao nhiêu test case 1 ngày
Số lượng test case mà bạn có thể kiểm thử tự động trong một ngày phụ thuộc vào nhiều yếu tố:
+ Kích thước/quy mô của dự án
+ Phạm vi của bài kiểm thử
+ Số lượng các tình huống kiểm thử khác nhau
+ Độ phức tạp của các kịch bản kiểm thử
+ Tốc độ thực thi của các kịch bản kiểm thử
+ Tốc độ mạng
+ Hiệu năng của các thiết bị kiểm thử, và nhiều yếu tố khác.
Ngoài ra, còn một số yếu tố ảnh hướng tới số lượng Test Case 1 ngày có thể kiểm thử: Level và kinh nghiệm của người thực hiện.
Đây là một câu hỏi giúp nhà tuyển dụng đánh giá năng lực và sự tự tin của ứng viên. Để dễ dàng tạo ấn tượng tốt với nhà tuyển dụng bạn có thể tham khảo cách trả lời sau:
“ Điều này phụ thuốc vào nhiều yếu tố như độ phức tạp test case, tốc độ mạng. Trong trường hợp độ phức tạp bị hạn chế, tôi có thể thự hiện kiểm thử tự động 5-6 test case 1 ngày. Đôi khi tình huống phức tạp tôi chỉ có thể thực hiện chạy 1 test case trong 1 ngày.
Với các tình huống quá phức tạp tôi sẽ chia test case thành phần khác nhau: Lấy đầu vào, xác minh đầu ra, thực hiện tính toàn… và thường mất khoảng 2 ngày trở nên”
1.10. Trả lời Appium là gì?
Ứng viên có thể trả lời 1 cách đơn giản câu hỏi nay như sau: “Appium là một công cụ hỗ trợ auto test mã nguồn mở đa nền tảng. Công cụ này thường được sử dụng khi Perform automation testing trên các mobile platforms như Android hoặc IOS.”
Thông thường với các câu hỏi thế này, ứng viên không nên nêu khái niệm 1 cách quá rập khuôn như “học thuộc” thay vào đó hãy trả lời ngắn gọn, chính xác theo cách hiểu của bản thân.
1.11. Công cụ Cucumbe là gì và được sử dụng khi nào?
Cucumber là một phần mềm được sử dụng để thực hiện test. Nó được sử dụng để chạy các câu lệnh acceptance tests tự động viết theo BDD style. Nó có khả năng thực thi các câu lệnh bằng loại ngôn ngữ lập trình khách hàng có thể hiểu. Trọng tâm của BDD Cucumber là Gherkin – trình phân tích cú pháp ngôn ngữ thô.
1.12. Cho biết Page Object Mode là gì?
Page Object Model là một mô hình thiết kế được tester sử dụng trong kiểm thử tự động. Trong mô hình này, mỗi trang web của ứng dụng được trừu tượng hóa thành một đối tượng trong mã kiểm thử. Mỗi đối tượng này chứa các phương thức và thuộc tính tương ứng với các yếu tố trên trang web đó.
Page Object Model có tác dụng chính là giảm thiểu việc lặp lại mã kiểm thử. Ngoài ra, Page Object Model cũng giúp cho mã kiểm thử dễ đọc hơn, dễ bảo trì hơn và tăng tính ổn định của các kịch bản kiểm thử.
1.13. Bạn có biết Browser Factory không? đó là gì?
Một câu hỏi phỏng vấn automation test thường gặp khác. Ứng viên có thể trả lời như sau:
“Browser Factory là một pattern để tạo và quản lý các instance của trình duyệt web. Pattern này hỗ trợ dễ dàng tạo ra các đối tượng trình duyệt web như Chrome, Firefox, Safari,… và quản lý chúng trong suốt quá trình kiểm thử.”
Ngoài ra, ứng viên có thể nêu thêm về một số lượi ích khi sử dụng Browser Factory: quản lý trình duyệt web dễ hơn, giảm công việc tạo mới trình duyệt trong các kịch bản test, dễ dàng quản lý phiên đăng nhập…
1.14. Định nghĩa về Data Driven
Data Driven Testing (DDT) là một kỹ thuật trong kiểm thử phần mềm chắc chăn sẽ có trong bộ câu hỏi phỏng vấn automation test.
Trong kỹ thuật kiểm thử DDT dữ liệu được tách riêng khỏi các kịch bản kiểm thử và được lưu trữ trong các nguồn dữ liệu bên ngoài như file Excel, CSV, database, hoặc API. Các kịch bản kiểm thử được thiết kế để đọc dữ liệu từ các nguồn này và thực hiện các bước kiểm thử tương ứng.
1.15. Phân biệt BDD và TDD
BDD (Behavior-Driven Development) và TDD (Test-Driven Development) là hai phương pháp trong việc phát triển phần mềm với mục đích tạo ra các sản phẩm chất lượng cao. Dưới đây là một số điểm khác biệt giữa BDD và TDD:
Mục đích:
+ TDD: Tập trung vào việc thiết kế và viết mã kiểm thử để đảm bảo rằng mã được viết hoạt động đúng.
+ BDD: Tập trung vào việc định nghĩa hành vi của hệ thống và xác định các tiêu chuẩn hoạt động của nó.
Ngôn ngữ:
+ TDD: Tập trung vào viết mã kiểm thử bằng ngôn ngữ lập trình.
+ BDD: Sử dụng ngôn ngữ tự nhiên để mô tả hành vi của hệ thống.
Phạm vi kiểm thử:
+ TDD: Tập trung vào việc kiểm thử từng đơn vị riêng lẻ của phần mềm.
+ BDD: Tập trung vào kiểm thử hành vi của hệ thống và tương tác giữa các thành phần.
Độ ưu tiên:
+ TDD: Quá trình kiểm thử được thực hiện trước khi mã được viết và triển khai.
+ BDD: Quá trình kiểm thử được thực hiện khi các yêu cầu đã được định nghĩa rõ ràng.
Tóm lại, BDD và TDD đều là các phương pháp quan trọng trong việc phát triển phần mềm. TDD tập trung vào việc thiết kế và viết mã kiểm thử, trong khi BDD tập trung vào việc định nghĩa hành vi của hệ thống và kiểm thử hành vi đó. BDD sử dụng ngôn ngữ tự nhiên để mô tả các yêu cầu của hệ thống, trong khi TDD tập trung vào viết mã kiểm thử bằng ngôn ngữ lập trình.
1.16. Các kiểu wait trong Selenium
Trong Seleenium, wait đóng vai trò quan trọng khi thực hiện Test-case nên không khó hiểu khi nhà tuyển dụng sẽ hỏi bạn 1 vấn đề liên quan tới nó trong buổi phỏng vấn.
Có một số loại Wait trong Selenium như:
1. Implicit wait
2. Explicit wait
3. Fluent wait
Có thể nhà tuyển dụng sẽ hỏi thêm bạn về khái niệm và cách hiểu của bạn về Wait trong Selenium trong buổi phỏng vấn Automation Test. Bởi vậy hãy tìm hiểu kỹ về từng loại wait trên để ghi điểm với nhà tuyển dụng.
Với các câu hỏi về kỹ năng kiểm thử phần mềm và kiến thức chuyên môn, ứng viên không chỉ trả lời bằng lý thuyết rập khuôn. Các câu trả lời dựa trên cách hiểu, góc nhìn và trải nghiệm bản thân luôn có thể gây ấn tượng với nhà tuyển dụng.
Ở khóa học Automation Test cho người mới bắt đầu của CodeStar Academy, học viên sẽ được trang bị đầy đủ kiến thức về auto test. Ngoài ra, học viên sẽ được thực hành và làm việc trực tiếp trên dự án thật để tích lũy kinh nghiệm, cầm tay chỉ việc bởi các Manager Tester kinh nghiệm. Cuối khóa học sẽ có một buổi riêng để đào tạo học viên cách tham gia phỏng vấn và chinh phục nhà tuyển dụng.
1.17. Trách nhiệm của 1 nhân viên kiểm tử phần mềm tự động
Một câu hỏi chắc chắn sẽ gặp phải trong buổi phỏng vấn nhân viên kiểm thử phần mềm tự động. Dưới đây là gợi ý trả lời cho câu hỏi:
“ Trách nhiệm của một nhân viên Automation Test không chỉ đơn thuần là viết Automation Script mà còn bao gồm việc:
+ Lên kế hoạch và triển khai quá trình kiểm thử tự động cho các sản phẩm phần mềm.
+ Thiết kế các kịch bản kiểm thử tự động cho các tính năng và chức năng của sản phẩm phần mềm.
+ Thực thi các kịch bản kiểm thử tự động, phát hiện các lỗi, ghi nhận và báo cáo các lỗi này cho đội phát triển để được sửa chữa.
+ Xây dựng các framework kiểm thử tự động để tăng tính linh hoạt và tái sử dụng code.
+ Đảm bảo rằng các kịch bản kiểm thử tự động hoạt động đúng và chính xác trên các môi trường khác nhau.
+ Tối ưu hóa thời gian kiểm thử tự động bằng cách sử dụng các kỹ thuật như parallel testing, headless testing, etc.
+ Tham gia vào quá trình phát triển phần mềm và đóng góp ý kiến cho các nhà phát triển về việc thiết kế, triển khai và bảo trì các sản phẩm phần mềm.
+ Đảm bảo tính hiệu quả và chất lượng của quá trình kiểm thử tự động.
+ Đọc, hiểu và triển khai các yêu cầu và tiêu chuẩn kiểm thử của dự án.
+ Nâng cao kỹ năng và kiến thức về kiểm thử phần mềm tự động.
Đặc biệt một Automation Engineer trước hết phải là một QC tester đúng nghĩa”.
1.18. Các câu hỏi về định hướng tương lai, mục tiêu…
Ngoài các câu hỏi về kiến thức và kỹ năng chuyên môn ở trên, các vấn đề định hướng, mục tiêu bản thân cũng là một phần quan trọng giúp doanh nghiệp đánh giá ứng viên. Một số câu hỏi thường gặp bạn cần chuẩn bị như:
+ Bạn có kế hoạch gì để phát triển kỹ năng của mình trong lĩnh vực kiểm thử phần mềm?
+ Bạn nghĩ gì về xu hướng tự động hóa trong lĩnh vực kiểm thử phần mềm?
+ Bạn có kế hoạch gì để nâng cao trình độ chuyên môn của mình trong tương lai?
+ Bạn nghĩ gì về việc sử dụng trí tuệ nhân tạo trong kiểm thử phần mềm?
+ Bạn sẽ làm gì để giải quyết những thách thức trong công việc kiểm thử phần mềm?
+ Bạn định hướng tới vị trí quản lý hay chuyên viên trong lĩnh vực kiểm thử phần mềm?
+ Bạn có dự định tiếp tục học hỏi và nghiên cứu về các công nghệ mới trong lĩnh vực kiểm thử phần mềm không?
Trên đây là danh sách các câu hỏi phỏng vấn Automation Test thường được nhà tuyển dụng đưa ra. Các bạn hãy tham khảo và chuẩn bị thật kỹ để có thể vượt qua buổi phỏng vấn tốt nhất. Đăng ký nhận tư vấn và tài liệu học miễn phí tại Fanpage Codestar Academy: https://www.facebook.com/CodeStarAcademy/