Tài Lê
Active member
Tester là gì?
Tester là gì? là một người chịu trách nhiệm cho việc thử nghiệm, kiểm định một sản phẩm mới, một tính năng mới hoặc tính khả dụng, chất lượng của một dự án…
Tuy nhiên, trong ngành Công nghệ Thông tin, tuy cũng có 1 vị trí có chức năng là kiểm tra, thử nghiệm và kiểm định chất lượng nhưng khác với một Tester thông thường, Tester ngành IT có rất nhiều tên gọi khác nhau như Software Tester/ Technical Tester…
Có thể nói Tester là người kiểm tra phần mềm hoặc các dự án tương tự để tìm bugs, errors… hoặc bất kỳ vấn đề nào mà người sử dụng cuối cùng, khách hàng có thể gặp phải. Nói một cách đơn giản, vai trò của Tester là kiểm tra sản phẩm và cung cấp báo cáo cho nhóm phát triển dự án về bất kỳ vấn đề nào cần cải thiện cho sản phẩm.
Thực ra, đôi khi Tester không hoàn toàn xác định được tất cả lỗi của một hệ thống hay phần mềm, tuy nhiên họ sẽ dựa vào các nguyên tắc, quy luật để tìm ra lỗi bugs. Các nguyên tắc và quy luật này sẽ thay đổi tùy theo sản phẩm, phần mềm, tiêu chuẩn, kỳ vọng hoặc hoạt động mà sẽ có sự thay đổi khác nhau.
Vai trò của Tester là gì?
Các Tester là người nắm vững các kiến thức tổng quát, vững chắc về các công cụ và kỹ thuật, cùng với một số kiến thức/kinh nghiệm phát triển phần mềm. Trong giai đoạn lập kế hoạch thử nghiệm và chuẩn bị thử nghiệm, các Tester thường xem xét và đóng góp vào kế hoạch kiểm tra, cũng như phân tích và đánh giá các yêu cầu và thông số kỹ thuật.
Họ thường là người tham gia hoặc chịu trách nhiệm hoàn toàn trong việc xác định các điều kiện thử nghiệm và tạo ra các thiết kế thử nghiệm, trường hợp thử nghiệm, đặc tả quy trình thử nghiệm và dữ liệu thử nghiệm.
Sau đó, họ có thể tự động hóa hoặc giúp tự động hóa các bài kiểm tra. Họ thường là người giữ vai trò thiết lập môi trường thử nghiệm hoặc hỗ trợ quản trị hệ thống và nhân viên quản lý mạng làm việc đó
Khi các thử nghiệm được triển khai và vận hành, các Tester được yêu cầu note lại quá trình kiểm tra, đánh giá kết quả và ghi lại các lỗi được tìm thấy. Họ giám sát thử nghiệm và môi trường thử nghiệm, họ sử dụng các công cụ cho công việc và thu thập các số liệu về hiệu suất.
Để có thể hoàn thành công việc, các Tester thường phải có những yêu cầu sau:
Việc test thử phần mềm rất quan trọng vì nếu có bất kỳ vấn đề hoặc lỗi nào trong phần mềm, nó có thể được xác định sớm và được giải quyết trước khi giao/ra mắt sản phẩm phần mềm. Sản phẩm phần mềm được kiểm tra sẽ đảm bảo được độ tin cậy, bảo mật và hiệu suất cao, giúp tiết kiệm thời gian, hiệu quả chi phí và mang đến sự hài lòng cho khách hàng.
Việc kiểm tra rất quan trọng vì khi một phần mềm vẫn còn lỗi được ra đời thì có thể gây tốn kém hoặc thậm chí nguy hiểm. Lỗi phần mềm có thể gây ra thiệt hại về tiền bạc và cả con người. Trong quá khứ đã có rất nhiều trường hợp đáng tiếc xảy ra vì đã không chú trọng các quy trình kiểm tra của Tester.
Lợi ích của việc vận dụng tốt vai trò Tester là gì?
Dưới đây là những lợi ích của việc tận dụng tốt giá trị của Tester:
Kỹ năng về công nghệ
Các Tester thường được yêu cầu các kỹ năng không liên quan gì đến tự động hóa, yêu cầu đối với một Tester là phải có sự hiểu biết rộng và thành thạo các công cụ có sẵn. Tuy nhiên, không phải ai cũng có thể thỏa mãn những tiêu chí đó, vì thế nếu thỏa mãn những tiêu chí cơ bản dưới đây, các bạn cũng có thể trở thành một Tester thực thụ.
Kiến thức cơ bản về Database/SQL: Tester là người có thể xử lý với các dự án làm việc với một lượng lớn dữ liệu trong nề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, v.v. Trong những trường hợp như vậy, việc có kỹ năng về Database/ SQL rất hữu ích!
Kiến thức cơ bản về lệnh Linux: Hầu hết các ứng dụng phần mềm như Web-Services, Database, Application Server đều được triển khai trên các máy Linux. Điều này yêu cầu các Tester phải có kiến thức về các câu lệnh Linux.
Làm việc với các công cụ Test Management: Test Management là một khía cạnh quan trọng trong vai trò hàng ngày của Tester. Nếu không có kỹ thuật Test Management thích hợp, quá trình kiểm thử phần mềm sẽ thất bại.
Làm việc với các công cụ Defect Tracking: Đây là kỹ năng cực kỳ quan trọng vì các công cụ này sẽ quản lý các lỗi đúng cách và theo dõi chúng một cách có hệ thống bằng cách sử dụng các công cụ như QC, Bugzilla, Jira, v.v.
Làm việc với các công cụ Automation: Các công cụ tự động hóa như Selenium, Ranorex và Cucumber là điều cần thiết cơ bản khi trở thành một người Tester bất kỳ không chỉ Software Tester.
Kỹ năng mềm
Kỹ năng phân tích: Bất kỳ người Tester giỏi nào cũng có điểm mạnh là kỹ năng phân tích tuyệt vời. Chúng cho phép bạn chia nhỏ một hệ thống phần mềm phức tạp thành các đơn vị nhỏ hơn để hiểu rõ hơn về từng yếu tố riêng lẻ.
Kỹ năng giao tiếp: Khi làm việc trong một dự án hợp tác, kỹ năng giao tiếp tốt có thể giúp ích rất nhiều khi chuyển tiếp thông tin và cung cấp báo cáo về các bài kiểm tra bạn đã làm.
Kỹ năng tổ chức và quản lý thời gian: Software Tester đôi khi có thể trở thành một vị trí với nhiều khó khăn. Có thể quản lý hiệu quả khối lượng công việc hiệu quả trong thời gian ngắn đồng thời có thể mang lại lợi ích cho team Tester là một điều không hề đơn giản.
Các loại Software Tester
Có rất nhiều các phương pháp testing nhưng chỉ có một vài phương pháp tiêu biểu được các Tester thường xuyên sử dụng vì nhiều lợi ích khác nhau. Các phương pháp Kiểm thử Phần mềm được liệt kê dưới đây được xem là các phương pháp cơ bản trong testing.
Trong phương pháp Functional Testing, còn có những phương pháp với chức năng chi tiết hơn như:
Trong phương pháp Non-Functional Testing, còn có những phương pháp với chức năng chi tiết hơn như:
Trong phương pháp Maintenance Testing, còn có những phương pháp với chức năng chi tiết hơn như:
Trong tương lai, nếu bạn nào có định hướng đi theo con đường sự nghiệp của một Tester thì ngoài việc nên bổ sung các kiến thức cần thiết trong ngành mà còn nên sở hữu một hoặc nhiều các chứng chỉ dưới đây để nâng cao level của mình nhé!
Các chứng nhận đảm bảo chất lượng ngành Kiểm thử phần mềm (tên chứng nhận – nơi cấp)
Tester là gì? là một người chịu trách nhiệm cho việc thử nghiệm, kiểm định một sản phẩm mới, một tính năng mới hoặc tính khả dụng, chất lượng của một dự án…
Tuy nhiên, trong ngành Công nghệ Thông tin, tuy cũng có 1 vị trí có chức năng là kiểm tra, thử nghiệm và kiểm định chất lượng nhưng khác với một Tester thông thường, Tester ngành IT có rất nhiều tên gọi khác nhau như Software Tester/ Technical Tester…
Có thể nói Tester là người kiểm tra phần mềm hoặc các dự án tương tự để tìm bugs, errors… hoặc bất kỳ vấn đề nào mà người sử dụng cuối cùng, khách hàng có thể gặp phải. Nói một cách đơn giản, vai trò của Tester là kiểm tra sản phẩm và cung cấp báo cáo cho nhóm phát triển dự án về bất kỳ vấn đề nào cần cải thiện cho sản phẩm.
Thực ra, đôi khi Tester không hoàn toàn xác định được tất cả lỗi của một hệ thống hay phần mềm, tuy nhiên họ sẽ dựa vào các nguyên tắc, quy luật để tìm ra lỗi bugs. Các nguyên tắc và quy luật này sẽ thay đổi tùy theo sản phẩm, phần mềm, tiêu chuẩn, kỳ vọng hoặc hoạt động mà sẽ có sự thay đổi khác nhau.
Vai trò của Tester là gì?
Các Tester là người nắm vững các kiến thức tổng quát, vững chắc về các công cụ và kỹ thuật, cùng với một số kiến thức/kinh nghiệm phát triển phần mềm. Trong giai đoạn lập kế hoạch thử nghiệm và chuẩn bị thử nghiệm, các Tester thường xem xét và đóng góp vào kế hoạch kiểm tra, cũng như phân tích và đánh giá các yêu cầu và thông số kỹ thuật.
Họ thường là người tham gia hoặc chịu trách nhiệm hoàn toàn trong việc xác định các điều kiện thử nghiệm và tạo ra các thiết kế thử nghiệm, trường hợp thử nghiệm, đặc tả quy trình thử nghiệm và dữ liệu thử nghiệm.
Sau đó, họ có thể tự động hóa hoặc giúp tự động hóa các bài kiểm tra. Họ thường là người giữ vai trò thiết lập môi trường thử nghiệm hoặc hỗ trợ quản trị hệ thống và nhân viên quản lý mạng làm việc đó
Khi các thử nghiệm được triển khai và vận hành, các Tester được yêu cầu note lại quá trình kiểm tra, đánh giá kết quả và ghi lại các lỗi được tìm thấy. Họ giám sát thử nghiệm và môi trường thử nghiệm, họ sử dụng các công cụ cho công việc và thu thập các số liệu về hiệu suất.
Để có thể hoàn thành công việc, các Tester thường phải có những yêu cầu sau:
- Hiểu sản phẩm cần được kiểm tra
- Lập kế hoạch chiến lược thử nghiệm, để thực hiện các thử nghiệm và tìm ra các vấn đề tiềm ẩn
- Phân tích ưu và nhược điểm của kế hoạch cụ thể, cũng như rủi ro liên quan đến từng thành phần và giao diện trong sản phẩm.
- Check lại các code cần kiểm tra
- Làm việc với các tập lệnh và công cụ tự động hóa
- Luôn cập nhật các khía cạnh kỹ thuật của cơ sở hạ tầng dự án (ví dụ: trình duyệt, cơ sở dữ liệu, ngôn ngữ, v.v.)
- Phân tích và ghi nhận về các vấn đề và cung cấp phản hồi thích hợp.
Việc test thử phần mềm rất quan trọng vì nếu có bất kỳ vấn đề hoặc lỗi nào trong phần mềm, nó có thể được xác định sớm và được giải quyết trước khi giao/ra mắt sản phẩm phần mềm. Sản phẩm phần mềm được kiểm tra sẽ đảm bảo được độ tin cậy, bảo mật và hiệu suất cao, giúp tiết kiệm thời gian, hiệu quả chi phí và mang đến sự hài lòng cho khách hàng.
Việc kiểm tra rất quan trọng vì khi một phần mềm vẫn còn lỗi được ra đời thì có thể gây tốn kém hoặc thậm chí nguy hiểm. Lỗi phần mềm có thể gây ra thiệt hại về tiền bạc và cả con người. Trong quá khứ đã có rất nhiều trường hợp đáng tiếc xảy ra vì đã không chú trọng các quy trình kiểm tra của Tester.
Lợi ích của việc vận dụng tốt vai trò Tester là gì?
Dưới đây là những lợi ích của việc tận dụng tốt giá trị của Tester:
- Hiệu quả về chi phí: Đây là một trong những lợi thế quan trọng của Tester. Kiểm tra bất kỳ dự án CNTT nào đúng thời hạn sẽ giúp bạn tiết kiệm tiền của mình trong dài hạn. Trong trường hợp nếu các lỗi được phát hiện trong giai đoạn testing trước đó, thì chi phí sửa chữa sẽ thấp hơn.
- Bảo mật: Đây là lợi ích nhạy cảm và dễ bị tấn công nhất của Tester. Mọi người đang tìm kiếm các sản phẩm đáng tin cậy, Tester giúp loại bỏ rủi ro và vấn đề khác.
- Chất lượng sản phẩm: Đây là yêu cầu thiết yếu của bất kỳ sản phẩm phần mềm nào. Việc sử dụng Tester sẽ đảm bảo một sản phẩm chất lượng được cung cấp đến tay khách hàng.
- Sự hài lòng của khách hàng: Mục đích chính của bất kỳ sản phẩm nào là mang lại sự hài lòng cho khách hàng của họ. Vì thế nên kiểm tra UI/UX đảm bảo trải nghiệm người dùng tốt nhất.
Kỹ năng về công nghệ
Các Tester thường được yêu cầu các kỹ năng không liên quan gì đến tự động hóa, yêu cầu đối với một Tester là phải có sự hiểu biết rộng và thành thạo các công cụ có sẵn. Tuy nhiên, không phải ai cũng có thể thỏa mãn những tiêu chí đó, vì thế nếu thỏa mãn những tiêu chí cơ bản dưới đây, các bạn cũng có thể trở thành một Tester thực thụ.
Kiến thức cơ bản về Database/SQL: Tester là người có thể xử lý với các dự án làm việc với một lượng lớn dữ liệu trong nề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, v.v. Trong những trường hợp như vậy, việc có kỹ năng về Database/ SQL rất hữu ích!
Kiến thức cơ bản về lệnh Linux: Hầu hết các ứng dụng phần mềm như Web-Services, Database, Application Server đều được triển khai trên các máy Linux. Điều này yêu cầu các Tester phải có kiến thức về các câu lệnh Linux.
Làm việc với các công cụ Test Management: Test Management là một khía cạnh quan trọng trong vai trò hàng ngày của Tester. Nếu không có kỹ thuật Test Management thích hợp, quá trình kiểm thử phần mềm sẽ thất bại.
Làm việc với các công cụ Defect Tracking: Đây là kỹ năng cực kỳ quan trọng vì các công cụ này sẽ quản lý các lỗi đúng cách và theo dõi chúng một cách có hệ thống bằng cách sử dụng các công cụ như QC, Bugzilla, Jira, v.v.
Làm việc với các công cụ Automation: Các công cụ tự động hóa như Selenium, Ranorex và Cucumber là điều cần thiết cơ bản khi trở thành một người Tester bất kỳ không chỉ Software Tester.
Kỹ năng mềm
Kỹ năng phân tích: Bất kỳ người Tester giỏi nào cũng có điểm mạnh là kỹ năng phân tích tuyệt vời. Chúng cho phép bạn chia nhỏ một hệ thống phần mềm phức tạp thành các đơn vị nhỏ hơn để hiểu rõ hơn về từng yếu tố riêng lẻ.
Kỹ năng giao tiếp: Khi làm việc trong một dự án hợp tác, kỹ năng giao tiếp tốt có thể giúp ích rất nhiều khi chuyển tiếp thông tin và cung cấp báo cáo về các bài kiểm tra bạn đã làm.
Kỹ năng tổ chức và quản lý thời gian: Software Tester đôi khi có thể trở thành một vị trí với nhiều khó khăn. Có thể quản lý hiệu quả khối lượng công việc hiệu quả trong thời gian ngắn đồng thời có thể mang lại lợi ích cho team Tester là một điều không hề đơn giản.
Các loại Software Tester
Có rất nhiều các phương pháp testing nhưng chỉ có một vài phương pháp tiêu biểu được các Tester thường xuyên sử dụng vì nhiều lợi ích khác nhau. Các phương pháp Kiểm thử Phần mềm được liệt kê dưới đây được xem là các phương pháp cơ bản trong testing.
- Kiểm tra chức năng (Functional Testing)
- Kiểm tra phi chức năng/Kiểm tra hiệu suất (Non-Functional Testing)
- Kiểm thử bảo trì (Maintenance Testing – Regression & Maintenance)
Trong phương pháp Functional Testing, còn có những phương pháp với chức năng chi tiết hơn như:
- Unit Testing
- Integration Testing
- Smoke
- UAT ( User Acceptance Testing)
- Localization
- Globalization
- Interoperability
Trong phương pháp Non-Functional Testing, còn có những phương pháp với chức năng chi tiết hơn như:
- Performance
- Endurance
- Load
- Volume
- Scalability
- Usability
Trong phương pháp Maintenance Testing, còn có những phương pháp với chức năng chi tiết hơn như:
- Regression
- Maintenance
Trong tương lai, nếu bạn nào có định hướng đi theo con đường sự nghiệp của một Tester thì ngoài việc nên bổ sung các kiến thức cần thiết trong ngành mà còn nên sở hữu một hoặc nhiều các chứng chỉ dưới đây để nâng cao level của mình nhé!
Các chứng nhận đảm bảo chất lượng ngành Kiểm thử phần mềm (tên chứng nhận – nơi cấp)
- CMST – Viện đảm bảo chất lượng.
- CTM/CSTP/CATE – Viện quốc tế về kiểm thử phần mềm.
- ISEB – Hội đồng hệ thống thông tin thi cử.
- CTFL/CTAL – Hội đồng Văn bằng quốc tế.
- CMSQ/CSQA/CSTE – Viện Đảm bảo Chất lượng (QAI).
- CSQE/CQIA – Hiệp hội chất lượng Hoa Kỳ (ASQ).