Tester có cần phải viết code không?

Một câu hỏi rất phổ biến mà những người muốn vào nghề Kiểm thử phần mềm thắc mắc đó là: Tester có phải viết code không ??

Trước khi trả lời câu hỏi này, chúng ta cần hiểu về các vai trò trong kiểm thử phần mềm.

Vị trí đảm bảo chất lượng phần mềm (Quality assurance) thường được chia thành hai loại,

  1. Nhà phân tích chất lượng (Quality analyst): QA xác minh chức năng và tính đầy đủ của thử nghiệm. QA chỉ kiểm tra phần mềm sau giai đoạn phát triển. Vai trò QA không yêu cầu  về kỹ thuật như developer và không cần biết code.
  2. Kỹ sư thiết kế phần mềm trong kiểm thử - SDET (Software Design Engineer in Test): SDET là người hiểu hoạt động bên trong của phần mềm. Họ hiểu các khái niệm cơ sở dữ liệu, ngôn ngữ lập trình, v.v. và họ cũng tham gia vào các hoạt động design database và giao diện người dùng... SDET phải làm việc trong giai đoạn phát triển và yêu cầu kiến thức coding. Vì vậy, vai trò của một SDET có nhiều thách thức hơn vì nó liên quan đến công việc của cả Developer và Tester. Automation Testers cũng có thể được phân loại là SDET.

Vậy dựa trên vai trò của tester, có thể xác định tester có nên yêu cầu kiến thức coding hay không?

Teser yêu cầu bao nhiêu kiến thức coding là đủ?

Viết code và debug là công việc của deleloper.

Vậy tại sao kiến thức coding lại cần thiết cho tester?

Kiểm thử phần mềm về cơ bản liên quan đến hai cách tiếp cận: Kiểm thử thủ công và Kiểm thử tự động. Ở cấp độ nâng cao, kiểm thử có thể được phân loại là kiểm thử hộp trắng, hộp đen hoặc hộp xám. Các kỹ thuật kiểm thử khác nhau đòi hỏi một bộ kỹ năng khác nhau của người kiểm thử.

  • Trong khi thực hiện kiểm thử hộp đen, tester không yêu cầu kiến thức về coding. Tester chỉ cần kiểm tra phần mềm bằng cách nhập dữ liệu và sau đó kiểm tra đầu ra.
  • Kiểm thử hộp trắng đòi hỏi kiến thức về coding. Biết các khái niệm lập trình khác nhau như C, C #, C ++, khái niệm RDBMS, v.v. có thể hữu ích.
  • Tester yêu cầu kiến thức mã hóa tốt khi họ muốn theo hướng kiểm thử tự động hoặc kiểm thử hộp trắng. Điều này là do kiểm thử tự động liên quan đến statement coverage, code coverage, độ phức tạp... Tất cả các khái niệm này cần một kiến thức tốt về kỹ năng lập trình và cơ sở dữ liệu.
  • SQL (Ngôn ngữ truy vấn có cấu trúc) - Đôi khi kiểm thử cần xác minh cơ sở dữ liệu. Vì vậy, tester cần có kiến thức cơ bản về các lệnh SQL như –'select', 'create', 'update', v.v.
  • SQL –injection, "SQL injection" là một trong những kỹ thuật được sử dụng để hack cơ sở dữ liệu bằng cách chèn các lệnh không mong muốn. Kiến thức tốt về các lệnh JavaScript và SQL rất hữu ích để ngăn chặn các mối đe dọa bảo mật phần mềm như vậy.

Một số lời khuyên quan trọng cho tester

  • Kiến thức về kiểm thử thủ công, ngôn ngữ lập trình như JavaScript, v.v. sẽ nâng cao kỹ năng kiểm tra của bạn.
  • Là một tester, bạn nên xây dựng kiến thức cơ bản về các ngôn ngữ lập trình như Java, VBScript. Điều này không phải là bắt buộc, nhưng là cần thiết. Biết các khái niệm SQL và khái niệm DBMS là một điểm cộng cho bất kỳ QA nào.

Biết viết code trong kiểm thử phần mềm giúp ích rất nhiều  cho tester trong suốt sự nghiệp của họ.

Tóm tắt:

Tester không được mong đợi viết code tốt như các developer, tuy nhiên học một cái gì đó mới luôn là một điều tốt. Nói chung, manual tester không cần phải viết code,  automation tester hoặc manual tester muốn học kiểm thử tự động thì cần học code để viết các tập lệnh tự động cho các trường hợp kiểm thử.

Do đó, câu trả lời cho việc tester có phải học và viết code hay không hoàn toàn phụ thuộc vào ngữ cảnh.

Link tham khảo: Do Testers have to Write Code? (guru99.com)