1.Function testing (test chức năng): là
test các chức năng, module theo tài liệu khách hàng.
Hay Kiểm thử chức năng là một loại kiểm thử hộp
đen (black box) và test case của nó được dựa trên đặc tả của ứng
dụng phần mềm/thành phần đang test. Các chức năng được test bằng cách nhập vào
các giá trị nhập và kiểm tra kết quả đầu ra, và ít quan tâm đến cấu trúc bên
trong của ứng dụng (không giống như kiểm thử hộp trắng - white-box testing).
2.Intergration testing (Kiểm tra tích hợp): test khi 2 hoặc nhiều
module, chức năng được tích hợp lại với nhau. Test về cả back end & front
end theo tài liệu khách hàng và thao tác user.
Integration
Test có 4 loại:
· Kiểm tra cấu trúc (structure): tương tự White Box Test (kiểm tra nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng), chú trọng đến hoạt động của các thành phần cấu trúc nội bên trong của chương trình chẳng hạn các lệnh và nhánh bên trong.
· Kiểm tra chức năng (functional): tương tự Black Box Test (kiểm tra chỉ chú trọng đến chức năng của chương trình, không quan tâm đến cấu trúc bên trong), chỉ khảo sát chức năng của chương trình theo yêu cầu khách hàng.
· Kiểm tra hiệu năng (performance): Kiểm tra việc vận hành của hệ thống.
· Kiểm tra khả năng chịu tải (stress): Kiểm tra các giới hạn của hệ thống.
3.System
testing: kiểm tra thiết kế và toàn bộ hệ thống (sau khi tích hợp hay
intergration test) có thỏa mãn yêu cầu đặt ra hay không.
System Test bắt đầu khi tất cả các bộ phận của PM đã được tích
hợp thành công. Thông thường loại kiểm tra này tốn rất nhiều công sức và thời
gian. Trong nhiều trường hợp, việc kiểm tra đòi hỏi một số thiết bị phụ trợ,
phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực, hệ
thống phân bổ, hoặc hệ thống nhúng. Ở mức độ hệ thống, người kiểm tra cũng tìm
kiếm các lỗi, nhưng trọng tâm là đánh giá về hoạt động, thao tác, sự tin cậy và
các yêu cầu khác liên quan đến chất lượng của toàn hệ thống.
Điểm khác nhau then chốt giữa Integration Test và System Test :
- System test chú trọng các hành vi và lỗi trên toàn hệ thống,
- Integration test chú trọng sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm việc cùng nhau.
Thông thường ta phải thực hiện function test và integration
test để bảo đảm mọi function và sự tương tác giữa
chúng hoạt động chính xác trước khi thực hiện system Test.
-Sau khi hoàn thành Integration Test, 1 hệ
thống PM đã được hình thành cùng với các thành phần đã được kiểm tra đầy đủ.
Bắt đầu thực hiện test PM như một hệ thống hoàn chỉnh. Việc lập kế hoạch cho System
Test nên bắt đầu từ giai đoạn hình thành và phân tích các yêu cầu.
-System Test kiểm tra cả các hành vi chức năng
của phần mềm lẫn các yêu cầu về chất lượng như độ tin cậy, tính tiện
lợi khi sử dụng, hiệu năng và bảo mật. Mức kiểm tra này đặc biệt thích hợp
cho việc phát hiện lỗi giao tiếp với PM hoặc phần cứng bên ngoài, chẳng hạn các
lỗi “tắc nghẽn” (deadlock) hoặc chiếm dụng bộ nhớ.
System test gồm:
- Kiểm tra chức năng (Functional Test): bảo đảm các hành vi của hệ thống thỏa mãn đúng yêu cầu thiết kế.
- Kiểm tra khả năng vận hành (Performance Test): bảo đảm tối ưu việc phân bổ tài nguyên hệ thống (ví dụ bộ nhớ) nhằm đạt các chỉ tiêu như thời gian xử lý hay đáp ứng câu truy vấn…
- Kiểm tra khả năng chịu tải (Stress Test hay Load Test): bảo đảm hệ thống vận hành đúng dưới áp lực cao (ví dụ nhiều người truy xuất cùng lúc). Stress Test tập trung vào các trạng thái tới hạn, các “điểm chết”, các tình huống bất thường…
- Kiểm tra cấu hình (Configuration Test)
- Kiểm tra khả năng bảo mật (Security Test): bảo đảm tính toàn vẹn, bảo mật của dữ liệu và của hệ thống.
- Kiểm tra khả năng phục hồi (Recovery Test): bảo đảm hệ thống có khả năng khôi phục trạng thái ổn định trước đó trong tình huống mất tài nguyên hoặc dữ liệu; đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàng trực tuyến.
Nhìn từ quan điểm người dùng, các kiểm tra trên rất quan trọng:
bảo đảm hệ thống đủ khả năng làm việc trong môi trường thực.
4. Acceptance Test - Kiểm tra chấp nhận sản phẩm
Sau giai đoạn System Test là Acceptance Test, được
khách hàng thực hiện (hoặc ủy quyền cho một nhóm thứ ba thực hiện).
Mục đích của Acceptance Test là để chứng minh PM
thỏa mãn tất cả yêu cầu của khách hàng và khách hàng chấp nhận sản phẩm
(và trả tiền thanh toán hợp đồng).
Acceptance Test có ý nghĩa hết sức
quan trọng, mặc dù trong hầu hết mọi trường hợp, các phép kiểm tra của System
Test và Accepatnce Test gần như tương tự, nhưng bản
chất và cách thực hiện lại rất khác biệt.
Đối với những sản phẩm dành bán rộng rãi trên thị trường cho
nhiều người sử dụng, thông thường sẽ thông qua hai loại kiểm tra gọi là Alpha
test và Beta test.
- Alpha test, người sử dụng (tiềm năng) kiểm tra PM ngay tại nơi PTPM, lập trình viên sẽ ghi nhận các lỗi hoặc phản hồi, và lên kế hoạch sửa chữa.
- Beta test, PM sẽ được gửi tới cho người sử dụng (tiềm năng) để kiểm tra ngay trong môi trường thực, lỗi hoặc phản hồi cũng sẽ gửi ngược lại cho lập trình viên để sửa chữa.
Thực tế cho thấy, nếu khách hàng không quan tâm và không tham
gia vào quá trình PTPM thì kết quả Acceptance Test sẽ sai lệch rất lớn, mặc dù
PM đã trải qua tất cả các kiểm tra trước đó. Sự sai lệch này liên quan đến việc
hiểu sai yêu cầu cũng như sự mong chờ của khách hàng. Ví dụ đôi khi một PM xuất
sắc vượt qua các phép kiểm tra về chức năng thực hiện bởi nhóm thực hiện dự án,
nhưng khách hàng khi kiểm tra sau cùng vẫn thất vọng vì bố cục màn hình nghèo
nàn, thao tác không tự nhiên, không theo tập quán sử dụng của khách hàng v.v…
Gắn liền với giai đoạn Acceptance Test thường là một nhóm những
dịch vụ và tài liệu đi kèm, phổ biến như hướng dẫn cài đặt, sử dụng v.v… Tất cả
tài liệu đi kèm phải được cập nhật và kiểm tra chặt chẽ.
5. Regression Test - Kiểm tra hồi quy
Regression test không phải là một
mức kiểm tra, như các mức khác đã nói ở trên. Nó đơn thuần kiểm tra lại PM sau
khi có một sự thay đổi xảy ra, để bảo đảm phiên bản PM mới thực hiện tốt các
chức năng như phiên bản cũ và sự thay đổi không gây ra lỗi mới trên những chức
năng vốn đã làm việc tốt.
Regression test là một trong những loại kiểm tra tốn nhiều thời gian và công sức nhất. Bỏ qua Regression Test là “không được phép” vì có thể dẫn đến tình trạng phát sinh hoặc tái xuất hiện những lỗi nghiêm trọng, mặc dù ta “tưởng rằng” những lỗi đó hoặc không có hoặc đã được kiểm tra và sửa chữa rồi!
Posted in
0 nhận xét :
Đăng nhận xét