Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm và phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và trọn vẹn theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra. Software testing cũng gửi tới mục tiêu, cái nhìn độc lập về phần mềm điều này cho phép đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. Căn cứ là gì? Hãy cùng LVN Group nghiên cứu thông qua nội dung trình bày dưới đây
1. Kiểm thử là gì?
Đây là một trong những loại kiểm thử phần mềm cần thiết để xác nhận xem hệ thống có hoạt động đúng yêu cầu được không. Ở tất cả các mức độ kiểm thử đều được kiểm thử chức năng.
Testing of function là một trong những loại kiểm thử phần mềm cần thiết
Testing of function có thể thực hiện theo 2 quan điểm: business – process – based và requirements-based. Với business – process – based, kiểm thử viên sẽ sử dụng các kiến thức về quy trình nghiệp vụ (mô tả các kịch bản liên quan đến nghiệp vụ của hệ thống mỗi ngày).
Trong khi đó, requirements-based sử dụng các đặc tả yêu cầu của hệ thống làm cơ sở để design test. Để đảm bảo những thành phần cần thiết nhất đều được kiểm thử, hãy xem xét độ ưu tiên của yêu cầu dựa trên tiêu chí rủi ro, theo đó, chúng ta sẽ sử dụng độ ưu tiên để kiểm thử.
Các bước kiểm thử chức năng gồm:
Bước 1: Xác định phần mềm sẽ kiểm thử và chức năng của nó
Bước 2: Dựa trên tài liệu đặc tả chức năng để tạo dữ liệu đầu vào
Bước 3: Dựa vào tài liệu đặc tả chức năng để xác định đầu ra
Bước 4: Thực hiện các trường hợp kiểm thử phần mềm
Bước 5: So sánh kết quả thực tiễn với mong muốn đạt được
2. Phương pháp kiểm thử
Phương pháp kiểm thử (Testing Methods) Kiểm thử hộp trắng (White Box Testing) Kiểm thử hộp đen (Black Box Testing):
- Phân vùng tương đương (Equivalence partitioning)
- Phân tích giá trị biên (Boundary value analysis)
- Bảng quyết định (Decision table)
- Đoán lỗi – Error Guessing
3. Các thành phần chính, cần thiết trong việc lập kế hoạch
3.1 Chiến lược kiểm thử
- Lập kế hoạch kiểm thử mức cao
- Test scripts
- Test Cases
- Test data
Sau đây chúng ta sẽ đi vào từng thành phần
Chiến lược kiểm thử Đây là tài liệu ghi lại cách tiếp cận kiểm thử cho các thành phần còn lại Các chiến lược kiểm thử có thể được phát triển rất sớm trong một dự án và chỉ yêu cầu thông tin ban đầu để có thể viết. Bất cứ khi nào một loại dự án hoặc công nghệ mới đang được kiểm thử, chiến lược kiểm thử là một trong những tài liệu cần thiết nhất cần thiết lập và cho ra đời sớm nhất.
Lập kế hoạch kiểm thử mức cao Đây là tài liệu mô tả cho việc kiểm thử “ai, cái gì, khi nào, ở đâu và thế nào”. Kế hoạch kiểm thử có thể được phát triển ở nhiều mức độ khác nhau, nhưng chúng tôi sẽ tập trung chủ yếu ở cấp độ dự án hoặc hệ thống trong phạm vi tài liệu này.
Kiểm thử mức chi tiết hơn ( Test scripts, Test cases, Test data) Kế hoạch kiểm thử mức cao sẽ cho thấy các function và thuộc tính nào của ứng dụng sẽ được kiểm thử. Các mô tả kiểm thử chi tiết thể hiện các thử nghiệm này theo nghĩa là người kiểm thử có thể thực thi hoặc có thể được viết test scripts để có thể thực hiện kiểm thử tự động. Chúng tôi sẽ xem xét làm thế nào để phát triển tất cả các thành phần trên và hiển thị các ví dụ của mỗi thành phần.
3.2 Các nhiệm vụ (tasks) chính trong việc lập kế hoạch kiểm thử
- Phát triển chiến lược kiểm thử
- Xác định mục tiêu kiểm thử
- Xác định các nguồn lực cần thiết
- Lập kế hoạch môi trường kiểm thử
- Xác định thủ tục kiểm thử (Test Procedures)
- Xác định các function cần kiểm thử
- Xác định các giao diện cần kiểm thử
- Viết Test Scripts
- Xác định Test cases
- Thiết kế Test Data
- Xây dựng Test maxtric
- Thiết lập Test schedules
- Giả định thông tin
- Kết thúc việc lập kế hoạch
Nhiệm vụ 1: Phát triển chiến lược kiểm thử
Định nghĩa các khía cạnh riêng của kiểm thử
Xác định
Nhân tố cần thiết tạo nên thành công của dự án (Critical Success Factors – CSF)
Loại ứng dụng
Loại dự án
Loại môi trường
Phạm vi kiểm thử
Rủi ro (Criticality)
Xác định
Ai sẽ là người kiểm thử
Khi nào kiểm thử sẽ được tiến hành
Kết hợp các yếu tố
Chi phí
Lịch trình (schedule)
Phạm vi (scope)
Chất lượng
Chiến lược kiểm thử là tài liệu cấp cao mô tả tính chất cơ bản và các khía cạnh riêng của kiểm thử. Chiến lược kiểm thử là một công cụ để giao tiếp để mọi người trong dự án biết cách kiểm thử sẽ được tiến hành. Các chiến lược kiểm thử có thể được xây dựng sớm trong dự án cho phép kiểm thử tiến hành một cách sớm nhất Một chiến lược kiểm thử điển hình sẽ xác định:
- Nhân tố cần thiết tạo nên thành công của dự án (Critical Success Factors – CSF)
Các nhân tố cần thiết tạo nên thành công của dự án là các thuộc tính của một ứng dụng phải có mặt để nó được coi là thành công. Ví dụ về CSF bao gồm tính chính xác, khả năng sử dụng, độ tin cậy, tính di động, khả năng tương tác và bảo mật. Các CSF liên quan trực tiếp đến kiểm tra các rủi ro và rủi ro dự án. Điều cần thiết là chỉ chọn 4 hoặc 5 yếu tố cần thiết, vì mỗi yếu tố sẽ yêu cầu các công cụ, con người và quy trình cụ thể.
- Loại ứng dụng Mô tả mục đích và mục tiêu của ứng dụng, chẳng hạn như: batch, on-line, web-base, Windows 32 bit, thương mại điện tử, truy cập dữ liệu, mạng nội bộ của công ty, extranet của khách hàng, v.v.
- Loại môi trường Mô tả loại môi trường hoạt động hoặc nền tảng ứng dụng sẽ tùy thuộc vào. Có thể bao gồm môi trường người dùng, cũng như môi trường vật lý, chẳng hạn như ngoài trời, truy cập công cộng, quyền truy cập bị giới hạn, v.v.
- Phạm vi kiểm thử Mô tả cái sẽ được test và không được test
- Rủi ro (Criticality)
Là bất kỳ khía cạnh nào của ứng dụng được kiểm thử làm tổ chức bị ảnh hưởng, mất mát.
Nhiệm vụ 2: Xác định mục tiêu kiểm thử
Xác định những gì sẽ được kiểm thử ở mức cao (high level)
Tốt nhất nên dựa trên yêu cầu
Mặt khác có thể dựa trên:
Quy trình và nghiệp vụ
Nhu cầu của khách hàng
Những chức năng cơ bản
Mục tiêu kiểm thử nên liên quan trực tiếp đến các mục tiêu của dự án hoặc hệ thống. Đối với mỗi hệ thống hoặc mục tiêu của dự án, cần có mục tiêu kiểm thử. Bạn có thể chọn để xác định mục tiêu kiểm thử của hệ thống bằng cách chia nhỏ các chức năng hoặc vùng chức năng. Trong việc thiết lập các mục tiêu kiểm thử, xác định tất cả những điều mà kiểm thử nên hoàn thành. Trong trường hợp lý tưởng, các mục tiêu kiểm thử sẽ dựa trên chi tiết được xác định yêu cầu. Tuy nhiên, người kiểm thử thường không nhận được mức độ chi tiết trong các yêu cầu để viết mục tiêu. Thay vào đó, các mục tiêu kiểm thử có thể thu được từ:
Quy trình và nghiệp vụ
Ví dụ, bạn cần biết khách hàng sẽ đặt một số loại giao dịch hoặc yêu cầu một số dịch vụ nhất định …
Nhu cầu của khách hàng
Bạn cần biết khách hàng cần có phản hồi nhanh với các yêu cầu hoặc có thể huỷ giao dịch
3.3 Những chức năng cơ bản
Một số chức năng cơ bản cần cho phần mềm ví dụ như: tìm kiếm, các nút (buttons), controls…
Nhiệm vụ: Xác định các chức năng cần kiểm thử
Dựa trên yêu cầu Các yêu cầu của ứng dụng hoặc hệ thống thường được văn bản hoá, đó chính là nguồn tốt nhất để tìm ra các chức năng cần được kiểm thử. Tuy nhiên các yêu cầu này có thể thường xuyên được thay đổi. Do đó quy trình kiểm thử cần phải đáp ứng được với sự thay đổi yêu cầu này
Dựa trên chức năng hoạt động/ nghiệp vụ của toàn hệ thống
Các sự kiện (events) của hệ thống
Các chức năng trong hệ thống nhà gửi tới
Mục đích Thương mại
Ví dụ về tài liệu kế hoạch kiểm thử với các chức năng cần kiểm thử
Hệ thống: Hệ thống lương
4. Các mẫu kế hoạch kiểm thử phần mềm hiệu quả