Tester có cần phải biết code??
Bài đăng này đã không được cập nhật trong 3 năm
Một câu hỏi rất phổ biến mà một phần mềm thử nghiệm mong mỏi có là ... Tester có cần phải biết code không ??
Trước khi trả lời câu hỏi này, chúng ta cần phải hiểu về vai trò kiểm thử phần mềm.
Đảm bảo chât lượng phần mềm thường được chia thành hai loại:
-
Người phân tích chất lượng (QA): QA xác minh các chức năng và sự hoàn thiện của các kiểm tra. QA kiểm chứng các phần mềm chỉ sau khi giai đoạn phát triển. Vai trò của QA không phải là kỹ thuật như dev và có thể không yêu cầu phải coding.
-
SDET (Kỹ sư thiết kế phần mềm trong test): Trong khi SDET trên phương diện khác là một người am hiểu về hoạt động bên trong của sản phẩm. Họ hiểu các khái niệm cơ sở dữ liệu, ngôn ngữ lập trình, vv và họ cũng tham gia vào việc thiết kế sản phẩm, thiết kế dữ liệu và giao diện người dùng. SDETs phải làm việc trong giai đoạn phát triển và đòi hỏi một kiến thức về coding. Vì vậy, vai trò của một SDET thì sẽ thách thức hơn, và nó liên quan đến công việc của cả hai, phát triển cũng như một Tester. Kiểm thử tự động (những người sử dụng các công cụ như QTP, Selenium) cũng có thể được phân loại như SDET.
Vì vậy, dựa vào vai trò của tester trong từng dự án có thể quyết định xem có nên yêu cầu tester đó có kiến thức về coding hay không?. Trong suốt bài viết này chúng ta sẽ cùng trả lười 3 câu hỏi sau:
-
Tester cần những bộ kĩ năng gì để có thể trở thành một tester giỏi?
-
Tester nên biết những kiến thức gì?
-
Cân bao nhiêu kiến thức về coding để trở thành một tester giỏi?
1. Đặc trưng của một tester giỏi
Phương pháp kiểm thử phần mềm thay đổi tùy theo nhu cầu và thông số kỹ thuật của sản phẩm phần mềm. Một QA hoặc phần mềm tốt đóng một vai trò quan trọng trong việc hoàn thành quá trình kiểm thử.
Vì vậy đặc trưng của một tester giỏi là:
- Kiến thức về lĩnh vực phần mềm tốt
- Ttư duy logic tốt và
- Có kiến thức về kỹ năng lập trình
2. Cần bao nhiêu kiến thức về coding để trở thành một tester giỏi?
Viết code và debug là công việc của dev?
Do đó câu hỏi được đặt ra là Tại sao kiến thức về code thì cần thiết cho tester?
Hãy cùng xem một vài lý do, tại sao biết code lại trở nên cần thiết cho tester.
Kiểm thử phần mềm cơ bản liên quan đến hai phương pháp kiểm thử bằng tay và thử nghiệm tự động. Ở cấp độ trước, kiểm thử có thể được phân loại như hộp trắng, hộp đen hoặc kiểm tra hộp màu xám. Những kỹ thuật kiểm thử khác nhau sẽ đòi hỏi những kỹ năng khác nhau của tester.
-
Trong kiểm thử hộp đen là các kỹ thuật ở mức Integration, System, Acceptance trở lên tester không yêu cầu phải biết code. Tester chỉ đơn giản nhập dữ liệu đầu vào và kiểm tra dữ liệu đầu ra.
-
Kiểm thử hộp trắng được hiẻu là kiểm tra mã điều khiển (Unit test) sẽ yêu cầu cần phải biết code. Khi bạn biết về các ngôn ngữ lập trình giống như C, C#, C++, JavaScript,..thì sẽ là một lợi thế.
-
Các tester được yêu cầu kiến thức về coding khi dự án yêu cầu dùng automation test. Bởi vì automation test liên quan đến statement coverage, decision coverage, cyclomatic complexity,.. Tất cả những khái niệm này cần phải có một hiểu biết nhất định về code và cơ sở dữ liệu.
-
SQL – Thỉnh thoảng kiểm thử cần phải xác minh cơ sở dữ liệu. Vì vậy, tester cần phải có kiến thức cơ bản về những câu lệnh trong SQL như ‘SELECT’, ‘CREATE’, ‘UPDATE’, ‘DELETE’, ‘INSERT’,…
-
SQL –injection, là một kĩ thuật phổ biến được dùng cho truy cập trái phép vào cơ sở dữ liệu bằng việc chèn những câu lệnh không mong muốn vào các dòng code. Một kiến thức tốt về Javascript và những câu lệnh trong SQL thì sẽ giúp ích để ngăn chặn các mối đe dọa an ninh phần mềm.
-
Agile testing: Toàn bộ thành viên trong nhóm sẽ chịu trách nhiệm cho việc đảm bảo chất lượng phần mềm. Suốt quá trình Agile, tester sẽ phải làm việc với một hoặc nhiều lập trình viên để test. Vì vậy , để tạo ra một auto-test, nó sẽ bắt buộc tester phải biết về code.
Một vài Tips quan trọng cho nhân viên kiểm thử phần mềm
-
Có kiến thức về kiểm thử bằng tay, những ngôn ngữ để viết test script giống như Javascript,..sẽ được đánh giá cao về kĩ năng kiểm thử phần mềm.
-
Để trở thành tester, bạn nên chuẩn bị cho mình những kiến thức cơ bản về các ngôn ngữ lập trình giống như Java, VBscript. Nó không bắt buộc nhưng sẽ là cần thiết cho mọi tester. Hiểu biết về SQL, DBMS thì sẽ là một lợi thế trong công việc cũng như khả năng thăng tiến trong con đường sự nghiệp của bạn.
Bên cạnh đó, có một vài yếu tố có thể giúp cho QA trong việc phân tích phần mềm
-
Kĩ năng giao tiếp
-
Tư duy phân tích tốt
-
Thái độ
Kết luận: Tester không nhất thiết phải biết code nhưng nếu bạn biết về các ngôn ngữ lập trình thì bạn có thể tìm ra những lỗi bên trong hệ thống một cách tốt nhất và để gợi ý hay hỗ trợ giúp lập trình viên biết vấn đề nằm ở đâu.
All rights reserved