Tự học kiểm thử phần mềm

Với mong muốn mang đến những thông tin tổng quát và hữu ích cho các bạn muốn hệ thống hóa lại kiến thức của mình, cũng như các bạn muốn tìm hiểu, tự học để trang bị kiến thức cho mình về lĩnh vực kiểm thử phần mềm, mình viết bài này từ kinh nghiệm, google và tổng hợp những kiến thức trên mạng về lĩnh vực kiểm thử phần mềm. Bài viết liệt kê những kiến thức tối thiểu để trở thành một chuyên viên kiểm thử phần mềm chuyên nghiệp. Rất mong các bạn góp ý để bài viết ngày càng hoàn thiện hơn.

I. Tổng quát & nền tảng

  1. Tóm lược về công nghệ phần mềm
  2. Chu kỳ phát triển phần mêm (Software Development Life-cycle)
  3. Giải pháp cho các vấn đề phát triển phần mềm
  4. Kiểm thử phần mềm
  5. Chất lượng phần mềm
  6. Tại sao phần mềm có lỗi
  7. Quy trình kiểm thử phần mềm
  8. Nguyên tắc kiểm thử phần mềm
  9. Kiểm tra chức năng/không chức năng (Functional Testing Vs Non-Functional Testing)

II. Kiến thức tối thiểu về kiểm thử phần mềm

  1. Các phương pháp kiểm thử phần mềm (Software Testing Methods)
    • Black Box Testing – Phân vùng tương đương (Equivalence partitioning)
    • White Box Testing
      • Unit Test Case
      • Kiểm thử trong giai đoạn lập trình (Testing at Programming / Coding Phase)
    • Gray Box Testing
  2. Các loại kiểm thử phần mềm (Software Testing Types)
  3. Các chiến lược kiểm thử phần mềm (Software Testing Strategies)
    • Kiểm thử dựa trên yêu cầu (requirements based test)
    • Smoke test / Build verification test
    • User acceptance test
    • Regression test
    • Kiểm thử từ trên xuống so với kiểm thử từ dưới lên (Top Down Testing vs Bottom up Testing)
  4. Errors, Defects and Bugs
    • Software Errors
    • Phân loại Defects / Bugs
    • Vòng đời của lỗi (Bug Life Cycle)
    • Thông báo lỗi kiểm thử phần mềm (Software Testing Bug Report)
    • Báo lỗi mẫu kiểm thử phần mềm (Software Testing Bug Report Template)

III. Kiến thức kiểm thử phần mềm nâng cao

  1. Các phương pháp kiểm thử phần mềm (Software Testing Methods)
    • Usability Testing
    • Penetration Testing
    • Installation Testing
    • Network Protocol Testing
    • Security Testing
    • Rapid Testing
    • Pairwise Testing
    • Localization Testing
    • Task-Based Software Testing
    • Thread Based Integration Testing
    • Spiral Testing Approach
  2. Kiểm thử phần mềm hiệu quả (Effective Software Testing)
    • When requirements are changing continuously
    • Find more bugs while doing Software Testing
    • Shortage of time for thorough software testing
  3. Phân tích các nỗ lực kiểm thử (Analyzing the Testing Effort)
    • Software Testing Metrics
    • Defect Removable Efficiency
    • Test Efficiency Vs Test Effectiveness
  4. Quản lý và lập kế hoạch kiểm thử phần mềm (Software Testing Management and Planning)
    • Software Testing Estimation Process
    • Organizing the Test Team
    • Test Readiness Review Checklist
    • Identify Testing Types and Exit Criteria
    • Software Test Planning
    • Testing Bible – Software Test Plan Document
    • Test Specification
    • Test Strategy
    • When software is ready to ship or release
  5. Những kiến thức kiểm thử phần mềm khác
    • Testware
    • Testing – NAS (Network Attached Storage)
    • Usability Testing Lab
    • Testing Client Server Applications
    • Qualities of a Good Software Test / QA Engineer
    • Qualities of a good QA or Test Lead / Manager
    • Responsibilities of a Test Manager / Lead
    • Software Testing as a Continuous Improvement Process
    • Integration Testing – Four step procedure
    • How to do Integration Testing – writing Integration Testing test cases
    • When software is ready to ship or release
    • Xác nhận (Validation) so với xác minh (Verification), xem lại (Reviews), và kiểm duyệt (Inspections)
    • Kỹ thuật (Techniques) và cấp độ (Levels) kiểm thử phần mềm
  6. Từ điển kiểm thử phần mềm (Software Testing Dictionary)