Gia Bao TSC

[Software Testing] Tổng quan về kiểm thử phần mềm (Phần I)

Kiểm thử phần mềm (software testing) là gì? Tại sao kiểm thử phần mềm là cần thiết? Kiểm thử phần mềm bao gồm những giai đoạn nào? Các khái niệm thông thường trong kiểm thử phần mềm?

 Software Development  posted at January 04, 2019

Bài viết này sẽ cung cấp cho các bạn cái nhìn tổng quan về kiểm thử phần mềm, hỗ trợ quá trình tìm hiểu và tiếp cận nhanh hơn với lĩnh vực kiểm thử phần mềm.

I. Kiểm thử là gì?

Kiểm thử tồn tại trước và sau khi quá trình thực thi kiểm thử được bắt đầu. Hoạt động bao gồm việc lên kế hoạch (planning) và kiểm soát (control), lựa chọn điều kiện kiểm thử, thiết kế và thực thi test case, kiểm tra kết quả, xác định khi nào thì dừng quá trình kiểm thử, báo cáo trong quá trình kiểm thử và tổng hợp hoặc hoàn thành việc kiểm thử trước khi giai đoạn kiểm thử (test phase) được hoàn thành. Kiểm thử cũng bao gồm kiểm tra (review) tài liệu (có thể gồm source code) và tiền hành phân tích.

Kiểm thử động (dynamic testing) và kiểm thử tĩnh (static testing) thường được sử dụng để đạt được mục đích, cung cấp thông tin để nâng cao hệ thống trong quá trình kiểm thử và phát triển.

Kiểm thử phải tuân theo các mục đích:

  • Tìm kiếm lỗi/ Finding defects
  • Đảm bảo được một mức độ chất lượng/ Gaining confidence about the level of quality
  • Cung cấp thông tin để đưa ra quyết định/ Providing information for decision-making
  • Ngăn ngừa lỗi/ Preventing defects

Các nguyên tắc kiểm thử (7 testing principles):

  1. Kiểm tra sự hiện diện của lỗi/ Testing show presence of defect
  2. Kiểm tra toàn bộ là không thể/ Exhautive testing is impossible
  3. Thực hiện kiểm thử sớm/ Early testing
  4. Phân loại lỗi/ Defect clustering
  5. Phương pháp thuốc trừ sâu/ Pesticide paradox
  6. Kiểm thử phụ thuộc vào bối cảnh/ Testing is context dependent
  7. Sự vắng mặt của lỗi/ Absence of error fallacy

II. Tại sao kiểm thử phần mềm là cần thiết?

Vai trò của kiểm thử trong phát triển phần mềm, bảo trì và vận hành:

  • Kiểm thử nghiêm ngặt hệ thống và tài liệu có thể giúp giảm thiểu những vấn đề rủi ro xảy ra trong quá trình vận hành và góp phần nâng cao chất lượng của hệ thống phần mềm, nếu như các lỗi được tìm thấy và sửa chữa trước khi hệ thống được vận hành thực tế.
  • Kiểm thử phần mềm có được yêu cầu để đạt được tính hợp pháp và đảm bảo hợp đồng, hoặc những tiêu chuẩn trong ngành công nghiệp đặc biệt.

Kiểm thử và chất lượng:

  • Kiểm thử mang lại sự tự tin về chất lượng của phần mềm nếu nó tìm thấy một vài hoặc không tìm thấy lỗi. Kiểm thử đúng sẽ giảm thiểu được tổng thể mức độ rủi ro của hệ thống. Khi quá trình kiểm thử tìm thấy lỗi, chất lượng của hệ thống phần mềm được nâng cao sau khi những lỗi đó được sửa chữa.

Kiểm thử bao nhiêu là đủ:

  • Việc quyết định kiểm thử bao nhiêu là đủ phụ thuộc vào mức độ của rủi ro, bao gồm kỹ thuật, độ an toàn, rủi ro trong kinh doanh, và hạn mức của dự án như là thời gian và ngân sách.
  • Kiểm thử nên cung cấp đủ thông tin để các bên liên quan có thể quyết định về việc bàn giao phần mềm hoặc hệ thống đã qua kiểm thử, cho các bước phát triển tiếp theo hay bàn giao cho khách hàng.

III. Kiểm thử phần mềm bao gồm những giai đoạn nào?

Mô hình dưới đây sẽ mô tả các giai đoạn trong kiểm thử phần mềm Software testing bao gồm: Nhận yêu cầu đặc tả => Lập kế hoạch => Tạo test design/ test case => Thực hiện kiểm thử => Tạo test report

Các khái niệm cụ thể trong hình sẽ được làm rõ trong mục IV dưới đây.

IV. Các khái niệm thông thường trong kiểm thử phần mềm?

(Còn tiếp ...)