" Hãy theo đuổi đam mê, thành công sẽ theo đuổi bạn"
Đó là một câu nói mà mình thấy vô cùng tâm đắc. Không chỉ nghề Tester mà nghề nào cũng vậy, để có thể bắt đầu công việc và hoàn thành nó một cách tốt nhất thì bạn phải thật sự yêu thích công việc đó. Nhưng không phải ai cũng có thể định hướng cho tương lai, nghề nghiệp hay đam mê mà mình muốn theo đuổi ngay từ đầu. Hầu hết khi vừa ra trường chúng ta luôn có suy nghĩ như thế này. Nhưng sau một quãng thời gian dài, bạn đưa bản thân vào nhiều vị trí khác nhau lúc đó đúng là bạn sẽ có rất nhiều kinh nghiệm nhưng bạn chỉ hiểu biết rộng chứ không sâu. Nhìn bạn bè thăng tiến còn mình thì như mới bắt đầu, vì chỉ khi hiểu biết sâu bạn mới có thể đi xa và thăng tiến được.
Bản thân mình cũng không chắc con đường mình đang đi là đúng nhưng tới thời điểm hiện tại mình cảm thấy khá hài lòng và yêu thích với công việc. Vậy làm thế nào để biết được bản thân mình mong muốn gì, theo bản thân mình thì trước hết chúng ta cần biết rõ về nghề nghiệp mà mình sẽ theo đuổi, mình cần gì? Nghề cần gì?
Mình viết bài này để chia sẻ với các bạn những người dự định theo nghề kiểm thử phần mềm (Tester/QA) hy vọng sẽ cung cấp thêm thông tin giúp các bạn dễ dàng có được định hướng cho con đường của mình.
1. Các lý do khiến kiểm thử phần mềm trở thành một nghề thời thượng
- Không có kiểm thử phần mềm - Không có phần mềm tốt.
- Duy trì uy tín và Tiết kiệm chi phí cho công ty của bạn (Điểm mấu chốt).
- Tạo cơ hội liên tục tiếp cận những điều tốt nhất và mới nhất.
- Kiểm thử phần mềm đòi hỏi tư duy, phân tích và sáng tạo cao.
- Nhiều người có thể làm điều đó, nhưng rất ít người có thể làm tốt.
- Kiểm thử phần mềm là một công việc có phúc lợi tốt với cơ hội nghề nghiệp nhanh và đa dạng
2. Nhu cầu và cơ hội nghề nghiệp của nghề Tester
Một phần mềm không thể đưa ra thị trường nếu không có Tester và Tester phải là người cuối cùng kiểm tra phần mềm đó. Ngày nay với nhu cầu phát triển các sản phẩm công nghệ thông tin thì nhu cầu về nguồn lực tester cũng vô cùng lớn. Có dự án lên đến 1 dev + 2 Teser
- Có cơ hội làm việc với các vị trí khác nhau
- Cơ hội để hiểu các lĩnh vực mới, các công nghệ mới
- Tiếp cận các kỹ thuật mới
- Cơ hội đi Onsite
- Rèn luyện bản thân cẩn thận hơn, suy nghĩ sắc bén, logic
- Có cái nhìn đa chiều khi đánh giá sự vật và hiện tượng
- Hiểu biết về sản phẩm phần mềm
3. Công việc của Tester là gì?
Công việc chính của tester là đảm bảo chất lượng của phần mềm, kiểm tra để phát hiện các lỗi đang tồn tại trước khi giao sản phẩn cho khách hàng, Tester sẽ làm việc cùng đội phát triển phần mềm để sản phẩm tới tay khách hàng hoàn thiện nhất.
Tester thường chia ra làm 2 hướng chính là Manual test và Automation test.
Manual testing: Manual testing là việc thử nghiệm một phầm mềm hoàn toàn được làm bằng tay bởi người Tester. Nó được thực hiện nhằm phát hiện lỗi trong phầm mềm đang được phát triển. Hay nói cách khác việc kiểm thử của bạn hoàn toàn thủ công do bạn test trên hệ thống. Đây là công việc mà không cần biết code bạn vẫn có thể làm được.
Automation testing: Automation test có thể nói là Dev trong Test, công việc chính là sẽ viết code để thực hiện việc kiểm tra một cách tự động và phần lớn thời gian sẽ làm việc với code như một developer. Người làm automation sẽ không cần thiết phải nắm sâu về các kiến thức test manual nhưng thay vào đó phải biết rõ về các automation tools & frameworks cũng như có thể làm việc được trên nhiều ngôn ngữ lập trình khác nhau như Java, C#, AutoIT, Python, C++ v.v, tùy theo yêu cầu dự án.
4. Nghề Tester yêu cầu gì?
Đầu tiên, tester cũng giống như bất cứ ngành nào khác trong lĩnh vực phần mềm là cần một nền tảng căn bản về công nghệ thông tin. Cần phải có kiến thức về software testing, các khái niệm như chất lượng phần mềm, đảm bảo chất lượng phần mềm, nắm vững quy trình phát triển phần mềm hay quy trình kiểm thử. Các kiến thức về kiểm thử như:
- Create a Test Plan: Các thành phần cần có trong một test plan cơ bản, cách viết test plan.
- Design Test case: Cách tạo và viết một testcase thông dụng.
- Test Design Techniques: Các kỹ thuật thiết kế testcase, giúp cho testcase hiệu quả và tối ưu hơn.
- Test reporting, Daily status reports – cách viết report để báo cáo kết quả test của mình.
- Defect management: Finding defects, Logging defects, Tracking and managing defects – Học cách report & quản lý một bug cũng như sử dụng tools tracking thông dụng như Jira, Mantis, Bugzilla, Application Lifecycle Management (ALM).
- Mobile application testing (iOS, Android, Windows Phone): Cách cài đặt và test ứng dụng mobile, cách giả lập thiết bị điện thoại trên máy tính.
- Windows, Website testing & Tools support: Cách test một ứng dụng desktop, một trang web và giả lập các trình duyệt khác nhau trên máy tính.
- Risk based testing process and implementation: Đánh giá rủi ro trong kiểm thử, đây là phần nâng cao nhưng cũng nên tìm hiểu qua.
- Coding: SQL, HTML, CSS.