Người kiểm thử có cần phải viết không? CodeCẩm nang Kỹ năng & Nghề nghiệp
⚡ Tóm tắt thông minh
Người kiểm thử phần mềm không phải lúc nào cũng cần viết mã, nhưng kiến thức lập trình sẽ quyết định sự nghiệp kiểm thử của họ có thể tiến xa đến đâu. Các vị trí kiểm thử thủ công không cần kỹ năng này, trong khi các vị trí kiểm thử tự động và kiểm thử phần mềm mã nguồn mở (SDET) đòi hỏi kỹ năng lập trình thực sự.
Liệu người kiểm thử có nên học về... Code?
Một câu hỏi rất phổ biến rằng một phần mềm Kiểm tra Câu hỏi mà người ứng tuyển thường đặt ra là: Người kiểm thử phần mềm có cần phải viết mã không? Trước khi trả lời câu hỏi này, cần phải hiểu rõ về các vai trò khác nhau trong kiểm thử phần mềm.
Kiểm thử phần mềm (Software QA) thường được chia thành hai loại:
- Chuyên viên phân tích chất lượng: Chuyên viên phân tích chất lượng (Quality Analyst) xác minh chức năng và tính đầy đủ của quá trình kiểm thử. Họ chỉ kiểm tra phần mềm sau khi giai đoạn phát triển hoàn tất. Vai trò này không đòi hỏi kỹ thuật cao như vai trò của lập trình viên và có thể không cần phải viết mã.
- SDET (Kỹ sư phát triển phần mềm kiểm thử): Ngược lại, một SDET (Software Destruction Test) là người hiểu rõ hoạt động bên trong của sản phẩm. SDET hiểu các khái niệm về cơ sở dữ liệu và ngôn ngữ lập trình, đồng thời tham gia vào thiết kế sản phẩm, thiết kế dữ liệu và giao diện người dùng. SDET làm việc trong giai đoạn phát triển và cần có kiến thức lập trình. Do đó, vai trò của một SDET khó khăn hơn, vì nó kết hợp công việc của một nhà phát triển với công việc của một người kiểm thử. Các chuyên viên kiểm thử tự động (sử dụng các công cụ như...) QTP và Selenium) cũng có thể được phân loại là SDET.
Sơ đồ dưới đây so sánh hai điều này. tracks, thể hiện vị trí của từng ks so với giai đoạn phát triển.
Vì vậy, dựa trên vai trò của người kiểm thử, bạn có thể xác định xem kiến thức lập trình có cần thiết hay không. Hãy cùng trả lời thêm một vài câu hỏi liên quan đến vấn đề này.
Những phẩm chất của một người kiểm thử giỏi
Phương pháp kiểm thử phần mềm thay đổi tùy thuộc vào nhu cầu và đặc tả kỹ thuật của sản phẩm phần mềm. Một chuyên viên QA hoặc người kiểm thử phần mềm giỏi đóng vai trò quan trọng trong việc hoàn thành quy trình kiểm thử, bất kể đó là loại kiểm thử nào. loại thử nghiệm Dự án yêu cầu.
Những phẩm chất của một người kiểm thử giỏi bao gồm:
- Kiến thức tên miền tốt
- Khả năng tư duy logic tốt
- Kiến thức lập trình tốt
Kiến thức chuyên môn và tư duy logic là điều không thể thiếu đối với mọi người kiểm thử phần mềm. Tuy nhiên, kỹ năng lập trình lại rất khác nhau tùy thuộc vào vai trò, và đó là điều mà phần tiếp theo sẽ xem xét.
Người kiểm thử phần mềm cần có bao nhiêu kiến thức lập trình?
Viết mã và gỡ lỗi là công việc của lập trình viên. Vậy câu hỏi đặt ra là: tại sao người kiểm thử lại cần kiến thức lập trình?
Hãy cùng xem xét một số lý do tại sao việc biết lập trình lại trở nên cần thiết đối với người kiểm thử. Hình minh họa bên dưới tóm tắt những trường hợp kiến thức đó được áp dụng thực tế.
Về cơ bản, kiểm thử phần mềm bao gồm hai phương pháp: Kiểm tra bằng tay và Kiểm tra tự động hóaỞ 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 người kiểm thử phải có bộ kỹ năng khác nhau.
- Trong khi thực hiện Kiểm tra hộp đenNgười kiểm thử không cần có kiến thức về lập trình. Người kiểm thử chỉ cần kiểm tra phần mềm bằng cách nhập dữ liệu và sau đó kiểm tra kết quả đầu ra.
- Kiểm tra hộp trắngKiểm thử dựa trên mã (code-driven testing) đòi hỏi kiến thức về lập trình. Việc nắm vững các khái niệm lập trình như... C, C#, C++và Khái niệm RDBMS có thể hữu ích
- Kiểm thử hộp xám Nó nằm ở vị trí trung gian giữa hai thái cực: người kiểm thử có kiến thức một phần về cấu trúc bên trong, vì vậy việc đọc mã rất hữu ích ngay cả khi việc tự viết mã không phải lúc nào cũng cần thiết.
- Người kiểm thử cần có kiến thức lập trình tốt khi chuyển sang lĩnh vực 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 độ phủ câu lệnh, độ phủ mã và... độ phức tạp chu trìnhVà tất cả những khái niệm này đều đòi hỏi kiến thức tốt về lập trình và cơ sở dữ liệu.
- SQL (Ngôn ngữ truy vấn có cấu trúc) — đôi khi việc kiểm thử cần xác minh cơ sở dữ liệu. Vì vậy, người kiểm thử cần có kiến thức cơ bản về các lệnh SQL như SELECT, CREATE và UPDATE.
- Tấn công SQL injection — SQL injection Đây là một trong những kỹ thuật được sử dụng để tấn công 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ề... JavaScript và SQL Các lệnh này rất hữu ích để ngăn chặn các mối đe dọa an ninh phần mềm như vậy.
- Kiểm tra linh hoạt — Trong kiểm thử linh hoạt (agile testing), toàn bộ nhóm chịu trách nhiệm về chất lượng phần mềm. Trong suốt quá trình agile, người kiểm thử làm việc với một hoặc nhiều lập trình viên để viết các bài kiểm thử. Vì vậy, để tạo ra một bài kiểm thử có thể tự động hóa, điều bắt buộc là người kiểm thử phải hiểu mã nguồn.
Những lời khuyên quan trọng dành cho chuyên viên phân tích kiểm thử phần mềm
- Kiến thức về kiểm thử thủ công cộng với các ngôn ngữ lập trình kịch bản như... JavaScript Điều này sẽ giúp bạn nâng cao kỹ năng kiểm thử của mình.
- Với vai trò là người kiểm thử phần mềm, bạn cần trang bị kiến thức cơ bản về các ngôn ngữ lập trình như... Java và vbscriptĐiều này không bắt buộc, nhưng rất có giá trị. Kiến thức về SQL và các khái niệm về hệ quản trị cơ sở dữ liệu cũng là một điều cần thiết.
- Học cách đọc một chồng giấy tracvà nhật ký xây dựng. Việc đọc mã nguồn dễ hơn việc viết mã, và điều đó đã tạo ra trường hợp thử nghiệm báo cáo chính xác hơn nhiều.
Ngoài ra, còn có một vài kỹ năng chung giúp ích cho mọi chuyên viên phân tích kiểm thử phần mềm:
- Kỹ năng giao tiếp
- Tư duy phân tích
- Năng khiếu
Việc biết cách lập trình trong kiểm thử phần mềm giúp ích rất nhiều cho chuyên viên phân tích QA hoặc người kiểm thử trong suốt sự nghiệp của họ. Phần tiếp theo sẽ mô tả chi tiết yêu cầu này theo từng vai trò.
Kiểm thử các vai trò yêu cầu lập trình so với các vai trò không yêu cầu lập trình.
Câu hỏi “Liệu người kiểm thử có cần lập trình không?” không có câu trả lời duy nhất vì “người kiểm thử” không phải là một công việc duy nhất. Bảng dưới đây thể hiện sự tương quan giữa các vai trò kiểm thử phổ biến và trình độ lập trình mà mỗi vai trò đó thực sự yêu cầu.
| Vai trò kiểm thử | Công việc tiêu biểu | Trình độ lập trình cần thiết |
|---|---|---|
| Kiểm thử thủ công / chức năng | Thiết kế và thực hiện các trường hợp kiểm thử, báo cáo lỗi. | Không áp dụng |
| Thăm dò / người kiểm thử khả năng sử dụng | Điều tra không theo kịch bản, phản hồi trải nghiệm người dùng | Không áp dụng |
| Người kiểm thử miền/kinh doanh | Kiểm tra tính hợp lệ của các quy tắc nghiệp vụ so với các thông số kỹ thuật. | Không áp dụng |
| Kiểm thử viên cơ sở dữ liệu | Xác minh dữ liệu đã lưu trữ, các phép nối và các quy tắc toàn vẹn. | Chỉ SQL |
| Người kiểm thử API | Xây dựng các khẳng định yêu cầu và phản hồi trên JSON hoặc XML. | Cơ bản |
| Kiểm thử tự động | Viết và duy trì các kịch bản trong SeleniumNhà viết kịch, hoặc Cypress | Trung cấp |
| Kiểm thử hiệu năng | Các tập lệnh tải kịch bản, liên kết các giá trị động. | Trung cấp |
| SDET | Xây dựng các framework, bộ công cụ kiểm thử và các pipeline CI. | Cấp độ nhà phát triển |
Hãy xem bảng này như một nấc thang sự nghiệp chứ không phải là một bức tường. Hầu hết các chuyên viên kiểm thử bắt đầu ở hàng không cần viết mã, sau đó di chuyển xuống các hàng thấp hơn khi sự tự tin về lập trình của họ tăng lên. Không có gì ngăn cản một chuyên viên kiểm thử thủ công giỏi duy trì vị trí ở các hàng đầu trong suốt sự nghiệp, nhưng các hàng thấp hơn thường là nơi có ngân sách dành cho tự động hóa và các chức danh cấp cao.
Người kiểm thử phần mềm nên học những ngôn ngữ lập trình nào?
Người kiểm thử phần mềm không cần biết mọi ngôn ngữ. Thông thường chỉ cần hai ngôn ngữ là đủ: một ngôn ngữ đa năng để tự động hóa và SQL để kiểm tra dữ liệu. Bảng so sánh bên dưới cho thấy ưu điểm của từng lựa chọn.
| Ngôn ngữ | Nó giúp ích cho người kiểm thử ở những điểm nào? | Tại sao chọn nó |
|---|---|---|
| Python | Selenium và kịch bản Playwright, bộ kiểm thử PyTest, kiểm tra dữ liệu | Cú pháp đơn giản nhất, cách nhanh nhất để có được bài kiểm tra hoạt động đầu tiên. |
| Java | Selenium với TestNG or JUnit, Appiumcác khuôn khổ doanh nghiệp | Được yêu cầu nhiều nhất trong các tổ chức lớn |
| JavaKịch bản / TypeScript | Cypress, Biên kịch, kiểm thử giao diện người dùng và thành phần | Phù hợp với ngôn ngữ mà ứng dụng đang được kiểm thử đã sử dụng. |
| SQL | Xác minh phần mềm phía máy chủ, thiết lập dữ liệu thử nghiệm và gỡ bỏ. | Hữu ích ngay cả trong những vai trò không bao giờ tự động hóa trình duyệt. |
| Shell scripting | Phân tích nhật ký, thiết lập môi trường, các bước công việc CI | Ít công sức, mang lại lợi ích tức thì trong cuộc sống hàng ngày. |
Hãy chọn ngôn ngữ mà nhóm phát triển của bạn đang sử dụng bất cứ khi nào có thể. Việc sử dụng chung một ngôn ngữ đồng nghĩa với việc chia sẻ quy trình xem xét mã, thư viện và các nhà phát triển có thể hỗ trợ khi quá trình kiểm thử gặp lỗi. Một người kiểm thử thông thạo một ngôn ngữ và thoải mái với SQL sẽ đảm nhiệm phần lớn công việc tự động hóa.
Làm thế nào để bắt đầu học Code với tư cách là người kiểm thử
Học lập trình song song với khối lượng công việc kiểm thử toàn diện là vấn đề về trình tự, chứ không phải năng khiếu. Các bước dưới đây sẽ giúp bạn tiến bộ từ con số không về lập trình đến việc vận hành một bộ công cụ tự động hóa được bảo trì thường xuyên mà không bỏ bê việc thực hiện kiểm thử hàng ngày.
Bước 1) Học những kiến thức cơ bản về ngôn ngữ. Biến, câu lệnh điều kiện, vòng lặp, hàm và tập hợp là đủ để đọc và viết một kịch bản kiểm thử. Lý thuyết hướng đối tượng có thể để sau.
Bước 2) Thêm SQL ngay từ đầu. Một vài câu lệnh SELECT kết hợp với các mệnh đề JOIN và WHERE cho phép bạn xác minh những gì ứng dụng thực sự đã lưu trữ, từ đó giúp cải thiện báo cáo lỗi ngay lập tức.
Bước 3) Tự động hóa một công việc nhàm chán. Chuyển đổi một đoạn mã lặp lại duy nhất hồi quy Kiểm tra kịch bản. Một bài kiểm tra thành công sẽ dạy nhiều hơn cả một tháng học hướng dẫn.
Bước 4) Hãy tìm hiểu về khung kiểm thử, chứ không chỉ là công cụ. Các khẳng định, thiết lập, cài đặt và tháo dỡ, và báo cáo quan trọng hơn nhiều so với việc chỉ nhấp chuột qua máy ghi âm. Đây là lúc các kịch bản trở thành một bộ công cụ hoàn chỉnh.
Bước 5) Sử dụng hệ thống quản lý phiên bản. Hãy đưa mã kiểm thử lên Git giống như cách các nhà phát triển vẫn làm. RevViệc xem xét sự khác biệt cũng là cách mà người kiểm thử học cách đọc mã nguồn sản xuất.
Bước 6) Kết nối bộ phần mềm vào đường dẫn xử lý dữ liệu. Các bài kiểm tra chạy tự động trên mọi bản dựng mang lại giá trị; các bài kiểm tra chỉ chạy trên máy tính xách tay thì không. Bước này giúp việc kiểm thử phù hợp với quy trình tổng thể rộng hơn. vòng đời kiểm thử phần mềm.
Hãy chuẩn bị tinh thần cho ba đến sáu tháng luyện tập liên tục trước khi bạn cảm thấy thoải mái với việc tự động hóa. Quá trình này được thiết kế từng bước một cách có chủ đích, để mỗi bước đều mang lại kết quả hữu ích trước khi bước tiếp theo bắt đầu.


