Con đường sự nghiệp của Kiểm thử phần mềm
Nếu bạn có kế hoạch tạo dựng sự nghiệp trong kiểm thử phần mềm, Hãy đọc bài viết này nhé!
1. Kiểm thử phần mềm (Software Testing) là gì?
Kiểm thử phần mềm là một quá trình xác minh phần mềm có đáp ứng các yêu cầu đã chỉ định hay không. Để cung cấp một sản phẩm phần mềm chất lượng thì kiểm thử phần mềm là không thể thiếu.
2. Kỹ năng cần thiết để trở thành Tester (Người kiểm thử phần mềm)
Kỹ năng Non-Technical
Các kỹ năng sau đây là điều cần thiết để trở thành một tester tốt:
- Kỹ năng phân tích: Một tester giỏi cần có kỹ năng phân tích nhạy bén. Kỹ năng phân tích sẽ giúp phân chia một hệ thống phần mềm phức tạp thành các đơn vị nhỏ hơn để hiểu sâu hệ thống hơn và tạo ra nhiều trường hợp kiểm thử cho mỗi đơn vị đó.
- Kỹ năng giao tiếp: Một tester giỏi phải có kỹ năng giao tiếp bằng lời nói và bằng văn bản tốt. Các tài liệu kiểm thử (như test cases, test plans, chiến lược kiểm thử, bug reports…) được tạo bởi tester cần dễ đọc và dễ hiểu. Trao đổi các vấn đề với các developers trong trường hợp có lỗi hoặc bất kỳ vấn đề nào khác sẽ đòi hỏi sự khéo léo và giao tiếp tốt.
- Kỹ năng tổ chức và quản lý thời gian: Kiểm thử là một công việc đòi hỏi đặc biệt trong suốt quá trình phát triển phần mềm. Tester phải quản lý hiệu quả khối lượng công việc, năng suất làm việc tốt, quản lý thời gian tối ưu và kỹ năng tổ chức tốt
- Thái độ tốt: Để trở thành một tester giỏi, bạn phải có thái độ tốt. Một thái độ “test to break”, định hướng rõ ràng, sẵn sàng tìm hiểu và đề xuất cải tiến quy trình. Trong ngành công nghiệp phần mềm, công nghệ phát triển với tốc độ nhanh chóng và một tester giỏi cần nâng cấp các kỹ năng technical của mình khi công nghệ thay đổi. Thái độ phản ánh mức độ độc lập, nắm rõ nhiệm vụ được giao và hoàn thành nhiệm vụ mà không cần nhiều sự giám sát, hướng dẫn.
- Đam mê: Trong bất kỳ ngành nghề hay công việc nào, người ta phải có một niềm đam mê nhất định nào đó. Một tester cũng phải có niềm đam mê với lĩnh vực của mình. NHƯNG làm thế nào để xác định được bạn có đam mê kiểm thử phần mềm hay không? Đơn giản là hãy thử, công việc kiểm thử phần mềm là phù hợp với bạn nếu không khiến bạn chuyển sang một công việc khác hay một lĩnh vực khác mà bạn quan tâm.
Kĩ năng Technical
- Kiến thức cơ bản về Database / SQL: Hệ thống phần mềm có lượng dữ liệu lớn. Dữ liệu này được lưu trữ trong các loại cơ sở dữ liệu khác nhau như Oracle, MySQL.... trong phần backend. Vì vậy, sẽ có những trường hợp dữ liệu này cần được validated, các truy vấn SQL đơn giản hay phức tạp có thể được sử dụng để kiểm tra xem dữ liệu thích hợp có được lưu trữ trong cơ sở dữ liệu backend hay không.
- Kiến thức cơ bản về các lệnh Linux: Hầu hết các ứng dụng phần mềm như Web-Services, Databases, Application Servers được triển khai trên các máy Linux. Vì vậy, việc quan trọng đối với tester là phải có kiến thức về các câu lệnh trong Linux.
- Kiến thức và kinh nghiệm thực hành về Công cụ Test Management: Test Management là một khía cạnh quan trọng của kiểm thử phần mềm. Nếu không có kỹ thuật quản lý kiểm thử thích hợp, quy trình kiểm thử phần mềm sẽ thất bại. Test Management chính là quản lý các tài liệu liên quan đến kiểm thử phần mềm.
Ví dụ: Một công cụ như Testlink có thể được sử dụng để theo dõi tất cả các test cases được viết bởi nhóm tester.
Các công cụ khác có sẵn có thể được sử dụng cho Test Management. Vì vậy, điều quan trọng là phải có kiến thức và kinh nghiệm làm việc về các công cụ đó bởi vì chúng được sử dụng trong hầu hết các công ty.
- Kiến thức và kinh nghiệm thực hành về bất kỳ công cụ Defect Tracking nào: Defect Tracking và Defect life cycle là các khía cạnh chính của kiểm thử phần mềm. Điều cực kỳ quan trọng là quản lý lỗi đúng cách và theo dõi chúng một cách có hệ thống. Defect tracking trở nên cần thiết bởi toàn bộ team nên biết về lỗi bao gồm managers, developers, và testers. Một số công cụ được sử dụng để quản lý các defects bao gồm QC, Bugzilla, Jira…
- Kiến thức và kinh nghiệm thực hành về công cụ tự động hóa: Nếu bạn thấy mình là một " Automation tester" sau một vài năm làm việc kiểm thử thủ công, thì bạn phải thành thạo một số công cụ và có kiến thức chuyên sâu về các công cụ tự động hóa.
Lưu ý: Chỉ có kiến thức về công cụ Tự động hóa nào đó là không đủ để pass phỏng vấn, bạn phải có kinh nghiệm thực hành tốt. Vì vậy, hãy thực hành thành thạo công cụ bạn chọn. Kiến thức về bất kỳ ngôn ngữ kịch bản nào như VBScript, JavaScript, C # luôn hữu ích cho một tester nếu bạn đang tìm kiếm một công việc tự động hóa.
Ngoài ra còn có rất nhiều các công cụ kiểm thử hiệu suất vì các ứng dụng cần được kiểm thử về hiệu suất, đây là một phần của non-functional testing.
Bài viết này được đăng tại [free tuts .net]
Đó là kiến thức technical. Lưu ý, bạn không cần có TẤT CẢ các kỹ năng kỹ thuật được liệt kê ở trên. Các bộ kỹ năng technical cần thiết thay đổi theo Vai trò công việc và quy trình của công ty.
Nền tảng học vấn
Nền tảng học vấn của một tester nên thuộc ngành về Khoa học Máy tính.
A BTech / B.E., MCA, BCA, BSc- Computers, sẽ giúp bạn có một công việc nhanh chóng.
Nếu bạn không có bất kỳ bằng cấp nào trong số này, thì bạn phải hoàn thành chứng nhận kiểm thử phần mềm như ISTQB và CSTE để giúp bạn tìm hiểu Vòng đời phát triển / kiểm thử phần mềm và các phương pháp kiểm thử khác.
Mức lương
Mức lương của testers là khác nhau. Mức lương trung bình của một tester ở Mỹ là $ 45,993 - $ 74,935. Mức lương trung bình của một tester ở Ấn Độ là Rs 247,315 - Rs 449,111.
Ngoài ra, một tester cũng được cung cấp bảo hiểm y tế, tiền thưởng và các đặc quyền khác.
Một Tester sẽ làm gì?
Vào bất kỳ ngày làm việc nào, bạn sẽ bận rộn tìm hiểu các tài liệu yêu cầu, tạo test cases, thực hiện test cases, báo cáo và kiểm thử lại các test cases bị lỗi, tham dự các cuộc họp đánh giá và các hoạt động xây dựng team khác.
Con đường sự nghiệp kiểm thử phần mềm
Sự phát triển nghề nghiệp của bạn với tư cách là người kiểm thử phần mềm (QA Analyst) trong công ty CMMI sẽ có 5 cấp điển hình như sau (các công ty sẽ phân chia thành các cấp khác nhau).
- QA Analyst (Fresher)
- Sr. QA Analyst (kinh nghiệm 2-3 năm)
- QA Team Coordinator (5-6 năm kinh nghiệm)
- Test Manager (8-11 năm kinh nghiệm)
- Senior Test Manager (hơn 14 kinh nghiệm)
Sự thay đổi trên con đường sự nghiệp của một tester
Một khi bạn đã quen thuộc với kiểm thử thủ công, bạn cũng có thể theo đuổi các kỹ thuật kiểm thử sau:
- Kiểm thử tự động hóa (Automation Testing): Là một Kỹ thuật kiểm thử tự động hóa, bạn sẽ chịu trách nhiệm tự động hóa việc thực hiện kiểm thử các test cases thủ công tốn nhiều thời gian. Các công cụ được sử dụng như IBM Rational Robot, Silk performer và QTP
- Kiểm thử hiệu suất (Performance Testing): Là một kỹ thuật kiểm thử hiệu suất, bạn sẽ chịu trách nhiệm kiểm thử mức độ đáp ứng của ứng dụng (thời gian tải, tải tối đa mà ứng dụng có thể xử lý), v.v. Các công cụ được sử dụng là WEBLoad, Loadrunner.
- Chuyên viên Phân Tích Nghiệp Vụ (Business Analyst): là người chịu trách nhiệm phân tích nhu cầu của khách hàng và các đối tác đối với hoạt động kinh doanh của doanh nghiệp để tìm hiểu và đề xuất phương pháp giải quyết vấn đề phát sinh. BA giúp cải thiện cách thức vận hành kinh doanh, giảm thiểu chi phí hoạt động, sử dụng hiệu quả nhất nguồn lực có giới hạn, và hỗ trợ cho khách hàng tốt hơn. Là một BA, bạn sẽ kết hợp các mô hình và quy trình làm việc với công nghệ.
3. Làm thế nào để trở thành tester
Đối với một người mới hoàn toàn, đây là cách tiếp cận được đề xuất để học Kiểm thử phần mềm.
Bạn bắt đầu với việc học các nguyên tắc cơ bản của Kiểm thử phần mềm. Sau đó bạn nộp đơn xin việc. Điều này sẽ giúp bạn có được kiến thức thực tế và sẽ củng cố các khái niệm kiểm thử bạn đã học.
Tiếp theo, bạn học Selenium – một công cụ tự động hóa, sau đó là Jemeter - Công cụ kiểm tra hiệu suất và cuối cùng là TestLink - Công cụ quản lý kiểm thử.
Khi bạn đã học tất cả các công cụ kiểm thử trên, bạn có thể học và lấy chứng chỉ ISTQB.
4. Chứng chỉ kiểm thử phần mềm
ISTQB Foundation là chứng nhận cơ bản trong lĩnh vực Kiểm thử.
Chứng chỉ này không bắt buộc bạn phải có, nhưng nó sẽ giúp tăng nhiều cơ hội nhận được công việc. Hầu hết các công ty đều yêu cầu chứng chỉ này. Một tester có chứng chỉ ISTQB sẽ được ưu tiên hơn so với những người khác.