Giới thiệu con đường phát triển sự nghiệp của một kiểm thử viên phần mềm

Bài viết được lược dịch từ trang https://www.guru99.com/software-testing-career-complete-guide.html, có bổ sung thêm một số quan điểm của dịch giả.

Để có thể trở thành một kiểm thử viên cho phần mềm, trước hết bạn cần hiểu thế nào là kiểm thử phần mềm.

Kiểm thử phần mềm là gì?

Kiểm thử phần mềm là một quá trình dùng để xác minh các hệ thống hoặc chương trình máy tính để quyết định xem nó có đáp ứng các yêu cầu đề ra và tạo được kết quả mong muốn hay không. Kết thúc công việc này, bạn sẽ phát hiện ra được các lỗi tồn đọng trong các dự án hay sản phẩm phần mềm.

Kiểm thử phần mềm là một bước không thể thiếu nếu bạn muốn cung cấp một sản phẩm chất lượng ra thị thường mà có ít lỗi hoặc sự cố nhất có thể. Thật ra, chúng ta đều biết không có gì là hoàn hảo cả. Và kiểm thử phần mềm cũng giống vậy, không thể đảm bảo có thể tìm ra tất cả các lỗi, nhưng chúng ta kì vọng những lỗi còn lại mà chưa tìm ra được thì đều là lỗi "chấp nhận được" và không gây ảnh hưởng đến nghiệp vụ chính của chương trình.

Các kỹ năng cần thiết của một kiểm thử viên phần mềm

Một kiểm thử viên phần mềm sẽ cần một vài kỹ năng nhất định để làm việc, bao gồm cả kỹ năng mềm và kỹ năng chuyên môn.

Kỹ năng mềm

Một kiểm thử viên phần mềm sẽ cần các kỹ năng sau để làm việc tốt. Nếu bạn cảm thấy mình đã có những kỹ năng này rồi, xin chúc mừng bạn. Còn nếu không, bạn có thể tham khảo qua để trang bị cho mình những kỹ năng cần thiết này.

  • Kỹ năng phân tích: Một kiểm thử viên giỏi nên trang bị cho mình kỹ năng phân tích sắc bén. Thông thường khi bắt đầu nhìn vào các yêu cầu nghiệp vụ, bạn sẽ thấy nó là một thứ gì đó khá phức tạp. Và tất nhiên bạn sẽ cần chia nhỏ nó ra thành các phần nhỏ hơn, làm rõ từng phần và tạo ra test cases (các trường hợp thử nghiệm) tương ứng. Bạn có thể tham khảo bài viết này để luyện tập kỹ năng phân tích của bản thân ^^.
  • Kỹ năng giao tiếp: Kiểm thử viên cũng cần có kỹ năng giao tiếp tốt, cả bằng lời nói lẫn văn bản. Đối với các tài liệu kiểm thử (chẳng hạn như test cases, test checklists, test plans, bug reports) bạn tạo ra cũng sẽ cần dễ đọc và dễ hiểu. Nếu như có lỗi hoặc bất cứ vấn đề nào phát sinh khi làm việc, nếu cần phải thảo luận với các lập trình viên, bạn cũng sẽ cần trao đổi với thái độ kín đáo và hòa nhã, cho dù có bất đồng ý kiến thì cũng cần bình tĩnh giải quyết để công việc chung đạt hiệu quả tốt nhất.
  • Kỹ năng tổ chức và quản lý thời gian: Kiểm thử là công việc đòi hỏi bạn phải luôn sẵn sàng, đặc biệt là trong giai đoạn chuẩn bị phát hành hoặc bàn giao sản phẩm. Bạn sẽ cần quản lý hiệu quả lượng công việc của mình, làm việc với năng suất cao nhất có thể. Đồng thời bạn cũng sẽ phải tối ưu hóa việc quản lý thời gian và tổ chức một cách hợp lý.
  • Thái độ GREAT: Ở đây là muốn nói đến thái độ khi bạn làm việc. Bạn cần luôn sẵn sàng với test to break (kiểm tra để phá vỡ), tức là không bao giờ để bản thân rơi vào tình huống ngại thay đổi. Bạn có thể không ngừng tìm hiểu, định hướng lại chi tiết và có thể đề xuất cải tiến quy trình kiểm thử. Ngành công nghiệp phần mềm không ngừng phát triển với tốc độ nhanh chóng, hàng ngày các công nghệ mới liên tục được cập nhật. Vì vậy nên kiểm thử viên cũng cần không ngừng nâng cấp các kỹ năng của bản thân để thích ứng với sự thay đổi. Thái độ của bạn cần phải phản ánh được bạn hoàn toàn có thể tự xử lý, hoàn thành các công việc được giao mà không cần một sự giám sát.
  • Đam mê làm việc: Cho dù bạn làm công việc gì, bạn cũng cần phải có một niềm đam mê nhất định với nó. Điều này cũng đúng với một kiểm thử viên phần mềm. Nếu như bạn không chắc bạn có đam mê với lĩnh vực này hay không, chẳng hạn như bạn chưa từng tham gia vào công việc này, thì ít nhất bạn cũng có thể thử tự trải nghiệm nó. Nếu bạn cảm thấy không phù hợp với mình, vậy bạn nên cân nhắc chuyển qua một ngành nghề khác để bản thân thấy vui thích hơn 😄.

Kỹ năng chuyên môn

Bên cạnh các kỹ năng mềm, bạn cũng cần có những kỹ năng chuyên môn nhất định dưới đây

  • Kiến thức cơ bản về cơ sở dữ liệu/SQL: Các chương trình phần mềm thường sẽ có một số dữ liệu cần thiết phải được lưu trữ trong các cơ sở dữ liệu trên máy chủ (phần backend). Hiện nay có một số hệ quản trị cơ sở dữ liệu phổ biến như Oracle, MySQL ... Lý do bạn cần biết về các kiến thức này là vì nhiều lúc một kiểm thử viên sẽ cần xác nhận lại dữ liệu hiển thị trên phần mềm có đúng là dữ liệu thực tế trên máy chủ lưu trữ hay không. Và khi đó, bạn có thể thử kiểm tra bằng các truy vấn SQL từ đơn giản đến phức tạp.
  • Kiến thức cơ bản về dòng lệnh Linux: Bạn có lẽ cũng như tôi, sẽ thắc mắc về điều này đúng không. Trong trường hợp chúng ta là một kiểm thử viên, vậy chúng ta sẽ làm việc bên phía máy khách (client-side). Và chắc bạn cũng giống tôi, hay đa số các kiểm thử viên khác, sẽ ưa thích hệ điều hành Windows hơn ^^. Tuy nhiên, bạn có thể tìm hiểu thêm một chút, vì dù sao các Web Service (dịch vụ web), Database (cơ sở dữ liệu) hay Application Server (máy chủ ứng dụng) đều hầu hết được triển khai trên hệ thống Linux mà.
  • Kỹ năng sử dụng các công cụ Test Management: Test Management là một phần rất quan trọng trong kiểm thử phần mềm. Nếu không có cái này, đa phần các quy trình kiểm thử sẽ thất bại. Bởi vì khi đó bạn sẽ không biết được phần mình đang kiểm tra có cần thiết không, hoặc là đôi khi bạn cứ làm một công việc mà thật ra bạn đã xong nó từ lâu rồi. Tệ hơn, bạn sẽ cảm thấy quá tải nếu thấy còn quá nhiều thứ cần kiểm tra nhưng lại không biết nên làm từ đâu. Test Management sẽ giúp bạn quản lý tốt hơn các tài liệu kiểm thử. Bạn có thể thử tham khảo qua Top 20 Test Management Tool để thử dùng một số công cụ phổ biến.
  • Kỹ năng sử dụng các công cụ Defect Tracking: Defect Tracking là công cụ dùng để theo dõi lỗi trong quá trình kiểm thử phần mềm. Điều này là cần thiết vì khi kiểm thử, cả nhóm của bạn bao gồm cả người quản lý, các lập trình viên hay kiểm thử viên khác cũng cần nắm được các lỗi hiện tại trên hệ thống một cách trực quan, dễ hiểu. Bạn cần thử trải nghiệm và sử dụng một cách hợp lý một số công cụ phổ biến như QC, Bugzilla, Jira....
  • Kiến thức và kinh nghiệm sử dụng các công cụ Automation: Một vài năm sau khi bạn bắt đầu với con đường kiểm thử viên, bạn sẽ thấy một vấn đề khá rõ ràng. Mặc dù Manual Testing (Kiểm thử thủ công) hầu hết luôn hiệu quả trong các dự án, tuy nhiên khi kiểm thử đôi khi bạn sẽ cần kiểm tra lại toàn bộ hệ thống. Gần như là lặp đi lặp lại các công việc, thậm chí có những lúc biết là một số trường hợp thực hiện kiểm thử sẽ PASSED nhưng bạn cũng sẽ cần kiểm tra lại. Và Automation Testing (Kiểm thử tự động) là cách giúp bạn rút ngắn thời gian này. Bạn có thể thử tìm hiểu một số công cụ cho việc này, chẳng hạn như Selenium, Appium, Cucumber hay mới đây nhất thì có Katalon Studio.

Ngoài ra, bên cạnh các kỹ năng cần thiết trên, bạn cũng có thể tìm hiểu để sử dụng một số công cụ Performance Testing (Kiểm thử hiệu năng). Loại kiểm thử này sẽ không dùng để kiểm thử tính năng của chương trình, tuy nhiên rất cần thiết để kiểm tra xem hệ thống có thể đáp ứng lượng người dùng lớn hay không. Có một số công cụ phổ biến như WebLoad, JMeter, StresStimulus ...

Nền tảng học vấn

Một kiểm thử viên phần mềm nên được đào tạo trong ngành Khoa học máy tính hoặc các ngành liên quan. Mặc dù không phải yêu cầu bắt buộc, tuy nhiên khi bạn có một tấm bằng đại học về các ngành này, các nhà tuyển dụng cũng sẽ chú ý đến bạn hơn.
Tuy nhiên, nếu bạn không có các tấm bằng, bạn có thể cân nhắc đến việc học qua các khóa cấp chứng chỉ dành riêng cho kiểm thử viên như ISTQB hoặc CSTE để có thể trang bị cho mình các phương pháp kiểm thử hiện đại và tiên tiến.

Mức lương

Khi bạn nhận một công việc kiểm thử viên phần mềm, tùy theo công ty hoặc tổ chức bạn làm việc, hoặc là kinh nghiệm hay kĩ năng của bạn, bạn sẽ nhận được một mức thù lao khác nhau. Trung bình ở Mỹ, một kiểm thử viên có thể nhận được từ 45,993 đến 74,935 đô la hàng năm, còn ở Ấn Độ con số này là 247,315 đến 449,111 Rupee. Ở Việt Nam, con số này là khoảng 100 đến 250 triệu đồng/năm. Bạn có thể tham khảo thêm mức lương của nghề kiểm thử viên tại một số công ty phần mềm phổ biến sau:

Tất nhiên, bên cạnh mức lương bạn vẫn có thể được đảm bảo các loại hình bảo hiểm, tiền thưởng hay trợ cấp khi làm việc.

Kiểm thử viên phần mềm thì phải làm những gì

Thông thường, trong một ngày làm việc, bạn sẽ cần phải tìm hiểu các tài liệu yêu cầu của chương trình, tạo và cập nhật các test cases. Sau đó bạn cần thực hiện chúng và báo cáo lại các lỗi liên quan. Bên cạnh đó, bạn cũng cần tham gia vào các cuộc họp và các hoạt động khác ở công ty bạn làm việc

Con đường sự nghiệp

Phần lớn thì sẽ tùy thuộc vào số năm kinh nghiệm, nhưng nhìn chung có một số cấp độ phổ biến dành cho bạn nếu bạn theo đuổi nghề kiểm thử viên. Bao gồm:

  1. QA Analyst: khi bạn bắt đầu công việc kiểm thử (Fresher)
  2. Senior QA Analyst: khi bạn có khoảng 2-3 năm kinh nghiệm
  3. QA Team Coordinator: khi bạn có 5-6 năm kinh nghiệm
  4. Test Manager: khi bạn có 8-11 năm kinh nghiệm
  5. Senior Test Manager: khi bạn có trên 14 năm kinh nghiệm

Những nghề nghiệp tương tự

Nếu như bạn đã làm kiểm thử viên Manual một thời gian dài, bạn có thể thử chuyển sang một số ngành nghề liên quan, chẳng hạn như:

  • Automation Testing: công việc giúp cho bạn có thể tự động hóa các công việc kiểm thử thủ công, sẽ giúp bạn tiết kiệm được rất nhiều thời gian khi làm việc.
  • Performance Testing: công việc giúp cho bạn có thể kiểm tra khả năng chịu tải của các chương trình, đặc biệt là khi chương trình đó cần phục vụ một số lượng người dùng lớn.
  • Business Analyst: Một trong các lợi thế lớn của kiểm thử viên so với lập trình viên là có thể được tiếp xúc rõ ràng hơn với các quy trình nghiệp vụ của người dùng cuối (lập trình viên thường chỉ quan tâm đến kỹ thuật chuyên môn). Bạn sẽ cần phải biết cách đánh giá, phân tích các mô hình kinh doanh nghiệp vụ của công ty bạn làm việc, đồng thời phải kết hợp chúng với công nghệ.

Làm thế nào để trở thành một kiểm thử viên phần mềm

Cuối cùng, tôi muốn giới thiệu cho bạn các bước để có thể làm việc như một kiểm thử viên phần mềm, bạn có thể nhìn vào sơ đồ bên dưới đây:

  • Bạn sẽ cần bắt đầu với các kiến thức và kỹ năng cơ bản để có thể làm một kiểm thử viên. Tất nhiên bạn sẽ khởi đầu với Manual Testing.
  • Sau một thời gian, bạn có thể tìm hiểu qua một chút về tự động hóa, cùng với công cụ Selenium chẳng hạn để có thể chuyển dần qua Automation Testing.
  • Đến lúc mà bạn có thể tự tin với khả năng kiểm thử của mình, hãy xem qua Performance Testing một chút. Để đảm bảo cho chương trình có thể đáp ứng bất cứ yêu cầu nào từ người dùng, đây cũng là một công đoạn nên có. Jmeter là một công cụ phổ biến, và nó cũng được phát hành miễn phí từ Apache.
  • Khi mà cảm thấy mình đã thành thạo rồi, vậy bạn có thể sẽ cần học cách tổng hợp và quản lý công việc hiệu quả hơn. Và đây cũng là khi bạn cần đến những công cụ quản lý tài liệu kiểm thử như Test Link.
  • Sau các giai đoạn trên, bạn có thể lựa chọn để thi các chứng chỉ chuyên môn, như ISTQB chẳng hạn. Và chắc chắn, lúc này bạn có thể lựa chọn cho mình một công việc lâu dài, hoặc thêm các công việc Freelancing (các dự án tự do, không đòi hỏi ràng buộc với các tổ chức).

Tài liệu tham khảo