Tester là gì? Kiểm thử là gì?

Trong bài này viết này, mình sẽ giới thiệu đến các bạn khái niệm về kiểm thử, ai sẽ là người kiểm thử, thời điểm thực hiện quá trình kiểm thử và cùng làm rõ hai khái niệm “Verification” Validationtrong kiểm thử. 

Kiểm thử là gì? Testing là gì?

Kiểm thử hay còn gọi là testing, là quá trình đánh giá một hệ thống hay các thành phần của nó với mục đích tìm xem liệu hệ thống có đáp ứng các yêu cầu được đã được chỉ định hay không. Nói một cách đơn giản, kiểm thử được thực hiện trên một hệ thống để xác định bất kỳ lỗ hổng, các lỗi hoặc các yêu cầu đang bị thiếu hay trái ngược với các yêu cầu thực tế đã được đề ra.

Theo tiêu chuẩn ANSI / IEEE 1059, kiểm thử có thể được định nghĩa là quá trình phân tích các thành phần của phần mềm để phát hiện sự khác biệt giữa những điều kiện của phần mềm đang tồn tại thực tế  và những điều kiện được yêu cầu (đó là defects/ errors/ bugs) và từ đó có thể đánh giá được chất lượng của chất lượng của phần mềm.

Ai là người kiểm thử? Tester là gì?

Người kiểm thử hay còn gọi là tester, họ là những người có nhiệm vụ tìm ra lỗi của phần mềm, điều này sẽ phụ thuộc vào quy trình và các bên liên quan trong dự án. Trong ngành Công nghiệp phần mềm, các công ty lớn có đội ngũ chuyên chịu trách nhiệm đánh giá phần mềm phát triển trong bối cảnh các yêu cầu đã được đề ra trước đó. Hơn nữa, các nhà phát triển (deverloper) cũng tiến hành kiểm thử được gọi là Kiểm thử Đơn vị (Unit Testing). Trong hầu hết các trường hợp, các chuyên gia kiểm thử cho một hệ thống trong phạm vi năng lực tương ứng của họ có thể là:

  • Software Tester – Nhân viên kiểm thử phần mềm
  • Software Developer – Nhân viên phát triển phần mềm
  • Project Lead/Manager - Leader hoặc Manager của dự án
  • End User - Người dùng cuối cùng

Các công ty khác nhau cũng sẽ có các quy định khác nhau về tên gọi của người kiểm thử phần mềm dựa trên kinh nghiệm và kiến thức của họ như Software Tester – Nhân viên kiểm thử phần mềm, Software Quality Assurance Engineer - Kĩ sư đảm bảo chất lượng phần mềm, QA Analyst – Nhân viên phân tích chất lượng phần mềm...

Không thể kiểm thử bất kỳ lúc nào trong chu kỳ phát triển phần mềm. Hai phần tiếp theo nêu ra khi nào bắt đầu và kết thúc quá trình kiểm thử trong vòng đời phát triển hệ thống.

Khi nào bắt đầu kiểm thử?

Kiểm thử sớm làm giảm chi phí và thời gian để xây dựng lại và sửa lỗi để bàn giao sản phẩm cho khách hàng. Tuy nhiên trong quy trình phát triền phần mềm, kiểm thử có thể bắt đầu từ giai đoạn từ khi có những yêu cầu từ khách hang cho đến khi triển khai phần mềm.

Nó cũng phụ thuộc vào mô hình phát triển được sử dụng. Ví dụ: trong mô hình Thác nước (Waterfall Model), kiểm thử chính thức được tiến hành ở giai đoạn Kiểm thử (testing phase). Nhưng trong mô hình Gia tăng (Incremental Model), kiểm thử được tiến hành ở cuối mỗi chu kỳ con. Kiểm thử cho toàn bộ sản phẩm phần mềm được thực hiện vào giai đoạn cuối khi hoàn thiện sản phẩm.

Kiểm thử được thực hiện theo nhiều dạng khác nhau ở mỗi giai đoạn trong vòng đời phát triển phầm mềm:

  • Trong quá trình thu thập yêu cầu (Requirement Gathering Phase), việc phân tích và xác minh yêu cầu cũng được coi là kiểm thử.
  • Trong giai đoạn thiết kế (Design Phase), rà soát các thiết kế trong giai đoạn thiết kế với mục đích để cải thiện thiết kế cũng được coi là kiểm thử.
  • Kiểm thử được thực hiện bởi lập trình viên khi hoàn thành code cũng được coi là kiểm thử.

Khi nào kết thúc kiểm thử?

Rất khó để xác định thời điểm kết thúc kiểm thử, vì kiểm thử là quá trình không có điểm kết thúc và không ai có thể đảm bảo rằng phần mềm đã được kiểm tra 100%. Các điểm sau đây có thể được xem là thời điểm kết thúc kiểm thử:

  • Thời hạn hoàn thành kiểm thử (Testing Deadlines).
  • Thực thi tất cả các testcase đã đề ra.
  • Hoàn thành các chức năng và bao phủ toàn bộ các yêu cầu đã được đề ra.
  • Tỉ lệ lỗi ở dưới một mức nhất định và không có lỗi nghiêm trọng nào được tìm thấy.
  • Quyết định của người quản lý dự án.

Phân biệt Xác minh (Verification) & Xác nhận (Validation)

Có 2 khái niệm hay bị nhầm lẫn và thường được sử dụng thay thế cho nhau. Dưới đây là bảng cho thấy sự khác nhau của xác minh và xác nhận:

STT Xác minh Xác nhận
1 Diễn tả sự quan tâm: "Are you building it right?" (Bạn đang xây dựng nó phải không?) Diễn tả sự quan tâm: "Are you building the right thing?" (Bạn đang xây dựng là đúng đắn?)
2 Đảm bảo phần mềm đáp ứng tất cả các chức năng. Đảm bảo các chức năng đáp ứng đúng với  các hành vi dự định, có trong yêu cầu đã đề ra.
3 Việc xác minh cần phải là đầu tiên và bao gồm việc kiểm tra tài liệu, code, v.v... Xác nhận xảy ra sau khi xác minh và phần chính liên quan đến kiểm tra tổng thể.
4 Hoàn thành bởi Developer. Hoàn thành bởi Tester.
5 Có các hoạt động tĩnh vì bao gồm thu thập các đánh giá, hướng dẫn và kiểm tra xác minh một phần mềm. Là các hoạt động động vì bao gồm việc thực thi lại các yêu cầu của phần mềm.
6 Là một quá trình khách quan và không quyết định chủ quan để xác minh phần mềm Là quá trình chủ quan và bao gồm các quyết định chủ quan về các thức hoạt động của phần mềm.

Như vậy, mình đã giới thiệu khá chi tiết về kiểm thử. Mong rằng qua bài viết này các bạn sẽ hiểu rõ hơn về kiểm thử trong quy trình phát triển phần mềm.

Khóa học đang giảm giá:

Nguồn: freetuts.net