Nội dung
1. SOFTWARE TESTING LÀ GÌ?
Software Testing – Kiểm thử phần mềm là một phương pháp để kiểm tra sản phẩm phần mềm thực tế có phù hợp với các yêu cầu mong đợi hay không và để đảm bảo rằng sản phẩm phần mềm đó vận hành ổn định. Mục đích của kiểm thử phần mềm là xác định các lỗi, khoảng trống hoặc các yêu cầu còn thiếu đối lập với các yêu cầu thực tế.
2. VÌ SAO KIỂM THỬ PHẦN MỀM LÀ KHÂU QUAN TRỌNG?
Một phần mềm trước khi hoàn thiện nhất thiết phải trải qua nhiều bước kiểm thử nhằm đảm bảo chất lượng sản phẩm. Đây là bước quan trọng nhất trong quá trình phát triển sản phẩm.
- Giúp xác định những lỗi và khiếm khuyết có thể xảy ra trong quá trình phát triển phần mềm.
- Từ đó lập trình viên có thể đưa ra hướng giải quyết sớm trước khi sản phẩm phần mềm được bàn giao.
- Mức độ thành công của một phần mềm được đánh giá bởi chất lượng và độ tin tưởng của khách hàng.
- Để cung cấp một ứng dụng có chất lượng cao, nâng cao trải nghiệm của người dùng.
MỘT SỐ VÍ DỤ ĐIỂN HÌNH TRONG LỊCH SỬ LỖI PHẦN MỀM Ở CÁC THƯƠNG HIỆU NỔI TIẾNG CHO THẤY “KIỂM THỬ PHẦN MỀM” LÀ BƯỚC BUỘC PHẢI CÓ TRONG QUY TRÌNH PHÁT TRIỂN PHẦN MỀM:
- Nissan đã thu hồi hơn 1 triệu xe ô tô trên thị trường do lỗi phần mềm cảm biến túi khí. Đã có báo cáo hai vụ tai nạn do lỗi phần mềm này.
- Starbucks đã buộc phải đóng cửa khoảng 60% cửa hàng ở Hoa Kỳ và Canada do lỗi phần mềm trong hệ thống POS của mình. Có thời điểm, cửa hàng phục vụ cà phê miễn phí vì họ không thể xử lý giao dịch.
- Năm 2015, máy bay chiến đấu F-35 từng là nạn nhân của một lỗi phần mềm, khiến nó không thể phát hiện mục tiêu một cách chính xác.
- Máy bay Airbus A300 của China Airlines bị rơi do lỗi phần mềm vào ngày 26 tháng 4 năm 1994.
- Vào tháng 4 năm 1999, một lỗi phần mềm đã gây ra sự thất bại trong vụ phóng vệ tinh quân sự trị giá 1,2 tỷ đô la, vụ tai nạn tốn kém nhất trong lịch sử khoa học không gian.
3. KIỂM THỬ PHẦN MỀM MANG ĐẾN LỢI ÍCH GÌ?
HIỆU QUẢ CHI PHÍ:
Đó là một trong những lợi thế quan trọng của kiểm thử phần mềm. Kiểm tra bất kỳ dự án CNTT nào đúng thời hạn sẽ giúp bạn tiết kiệm tiền của mình trong dài hạn. Trong trường hợp nếu các lỗi được phát hiện trong giai đoạn kiểm thử phần mềm trước đó, thì chi phí sửa chữa sẽ thấp hơn.
BẢO MẬT:
Đây là lợi ích nhạy cảm và dễ bị phát sinh nhất của kiểm thử phần mềm. Khách hàng luôn tìm kiếm các sản phẩm đáng tin cậy. Nó giúp loại bỏ các vấn đề và rủi ro sớm hơn.
CHẤT LƯỢNG SẢN PHẨM:
Nếu chất lượng của ứng dụng được kiểm định thông qua Kiểm thử phần mềm tốt thì sản phẩm sẽ hoạt động bền bỉ ngay cả khi chạy với công suất tối đa. Khi được kiểm thử kỹ càng, một phần mềm có thể được cấu hình để hoạt động ngay cả trong các tình huống ít tối ưu hơn.
SỰ HÀI LÒNG CỦA KHÁCH HÀNG:
Mục đích chính của bất kỳ sản phẩm nào đều hướng đến mang lại sự hài lòng cho khách hàng. Kiểm thử phần mềm sẽ mang lại đảm bảo trải nghiệm người dùng tốt nhất.
4. PHÂN LOẠI THỬ NGHIỆM PHẦN MỀM
Thực ra “Kiểm thử phần mềm” rất rộng lớn và phức tạp. Tùy theo nhu cầu và mục đích cụ thể, chúng ta sẽ có những loại kiểm thử khác nhau. Thông thường, Thử nghiệm được phân thành ba loại chính:
KIỂM THỬ CHỨC NĂNG (FUNCTIONAL TESTING)
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ị và kiểm tra kết quả đầu ra, ít quan tâm đến cấu trúc bên trong của ứng dụng.
Các loại kiểm thử chức năng:
- Kiểm thử đơn vị (Unit Testing)
- Kiểm thử khói (Smoke Testing – check nhanh xem hệ thống có khởi động được hay không)
- Kiểm thử độ tỉnh táo (Sanity Testing – check nhanh xem sau khi sửa đổi thì function có hoạt động như mong muốn hay không)
- Kiểm thử giao diện (Interface Testing)
- Kiểm thử tích hợp (Integration Testing)
- Kiểm thử hệ thống (Systems Testing)
- Kiểm thử hồi quy (Regression Testing)
- Kiểm thử chấp nhận (Acceptance testing)
KIỂM THỬ PHI CHỨC NĂNG (NON-FUNCTIONAL TESTING HAY CÒN GỌI PERFORMANCE TESTING)
Kiểm thử phi chức năng cùng giống kiểm thử chức năng ở chỗ là thực hiện được ở mọi cấp độ kiểm thử,Kiểm thử phi chức năng xem xét các hành vi bên ngoài của phần mềm . Kiểm thử phi chức năng bao gồm:
- Kiểm thử hiệu năng (performance testing).
- Kiểm thử khả năng chịu tải (load testing).
- Kiểm thử áp lực(stress testing).
- Kiểm thử khả năng sử dụng (usability testing).
- Kiểm thử bảo trì (maintainability testing).
- Kiểm thử độ tin cậy (reliability testing)
- Kiểm thử tính tương thích(portability testing)
KIỂM THỬ BẢO TRÌ (MAINTENANCE TESTING – REGRESSION AND MAINTENANCE)
- Thông thường kiểm thử bảo trì gồm 2 phần: kiểm thử các thay đổi và Kiểm thử hồi quy để cho thấy phần còn lại của hệ thống không bị ảnh hưởng bởi công việc bảo trì.
- Hoạt động chính và quan trọng trong việc kiểm thử bảo trì là việc phân tích các tác động. Từ việc phân tích sẽ quyết định được những phần nào của hệ thống có thể bị ảnh hưởng không mong muốn.
- Phân tích rủi ro sẽ giúp quyết định được nơi cần tập trung kiểm thử hồi quy.
5. CÔNG VIỆC CỦA MỘT CHUYÊN VIÊN KIỂM THỬ PHẦN MỀM (TESTER)
- Tham gia quá trình kiểm thử các dự án phần mềm
- Thiết kế và thực hiện test plan, test case. Tạo dữ liệu kiểm thử, thiết lập môi trường kiểm thử
- Thực hiện kiểm thử theo tính năng, hiệu năng của sản phẩm
- Tạo lỗi, kiểm soát lỗi, phối hợp với các developer để sửa lỗi, theo dõi kết quả kiểm thử để đảm bảo chất lượng dự án
- Tổng hợp các vấn đề phát sinh trong quá trình thực hiện dự án và đưa ra các đề xuất cải tiến
Nguồn: