Thông tin cần biết về các loại kiểm thử phần mềm - ITNavi
Khi mới vào nghề, các bạn tester còn khá lạ lẫm với thuật ngữ “Test Types” và cách phân biệt chúng. Đừng lo lắng, hãy cùng ITNavi tìm hiểu ngay các loại kiểm thử phần mềm để quá trình test được diễn ra thuận lợi giúp đem đến những sản phẩm chất lượng đến tay khách hàng.
Kiểm thử được phân thành 4 loại chính phục vụ từng mục đích của mỗi dự án.
Các loại kiểm thử phần mềm (Test Types) phổ biến: Functional testing (Kiểm thử chức năng), Non-Functional testing (Kiểm thử phi chức năng), Re-Testing (Kiểm thử lại), Regression testing (Kiểm thử hồi quy)
1. Functional testing (Kiểm thử chức năng)
Giống với kiểm thử hộp đen, Functional testing kiểm tra đến chức năng của chương trình mà không quan tâm đến cấu trúc bên trong của sản phẩm.
a. Định nghĩa kiểm thử chức năng
Kiểm thử chức năng chỉ tập trung kiểm tra chức năng của ứng dụng đó có hoạt động đúng như khách hàng mong đợi không. Khi kiểm thử, các tester sẽ dựa vào Tài liệu yêu cầu (Requirement) hoặc Tài liệu mô tả chi tiết (Specification) để tiến hành test.
Kiểm thử chức năng được thực hiện ở mọi giai đoạn kiểm thử (Testing level). Functional testing có thể được thực hiện từ 2 góc nhìn: Yêu cầu chức năng và Quy trình nghiệp vụ (Use case).
Kiểm thử chức năng bao gồm 5 bước:
- Xác định các chức năng mà phần mềm mong muốn sẽ thực hiện.
- Tạo ra các dữ liệu đầu vào dựa trên các tài liệu đặc tả kỹ thuật của các chức năng.
- Xác định kết quả đầu ra dựa trên các tài liệu đặc tả kỹ thuật của các chức năng.
- Thực hiện các trường hợp kiểm thử.
- So sánh kết quả thực tế và kết quả mong muốn.
Functional testing được thực hiện từ góc nhìn Quy trình nghiệp vụ (Use case).
b. Các loại kiểm thử chức năng
- Kiểm thử đơn vị (Unit Testing) là quá trình test từng module nhỏ trong hệ thống.
- 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) kiểm tra nhanh sau khi sửa đổi thì chức năng 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) là hoạt động test một nhóm các module riêng lẻ được tích hợp logic lại với nhau
- Kiểm thử hệ thống (Systems Testing) sẽ test một hệ thống đã được tích hợp hoàn chỉnh.
- Kiểm thử hồi quy (Regression Testing) là hình thức kiểm tra phần mềm xem các chức năng cũ và mới còn hoạt động đúng sau khi thay đổi hệ thống không.
- Kiểm thử chấp nhận (Acceptance testing) thường được khách hàng thực hiện test để xem phần mềm có đáp ứng đúng yêu cầu của họ yêu cầu chưa.
2. Non - Functional testing (Kiểm thử phi chức năng)
Kiểm thử phi chức năng giống với kiểm thử chức năng ở chỗ thực hiện được ở mọi cấp độ kiểm thử. Điểm khác biệt của Functional testing chính làxem xét các hành vi bên ngoài của phần mềm thay vì tính năng sản phẩm đem lại.
a. Định nghĩa kiểm thử phi chức năng
Dựa trên kinh nghiệm người dùng và mong đợi của khách hàng, các tester sẽ tiến hành kiểm tra hiệu năng của ứng dụng xem phản hồi tốt như thế nào. Kiểm thử viên sẽ xác nhận hiệu suất làm việc dựa trên mục tiêu sự mong chờ của người dùng cũng là mục đích chính của kiểm thử phi chức năng. Việc kiểm thử rất khó có thể làm thủ công bằng tay mà phải nhờ đến sự trợ giúp của công cụ test tự động (Automation testing)
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)
Functional testing xem xét các hành vi bên ngoài của phần mềm.
b. Các loại kiểm thử phi chức năng
- Độ tin cậy (Reliability) được xác định rõ hơn từ các đặc trưng phụ đã được tính toán cẩn thận (độ bền), khả năng chịu lỗi, phục hồi và tính tuân thủ.
- Khả năng sử dụng (Usability) được chia thành các đặc trưng dễ hiểu: Khả năng học hỏi, khả năng hoạt động, sự thu hút và tuân thủ.
- Tính hiệu quả (Efficiency)được phân theo hành vi về: Thời gian (hiệu suất), sử dụng tài nguyên và tính tuân thủ.
- Khả năng bảo trì (Maintainability)bao gồm năm đặc điểm phụ: Phân tích, khả năng thay đổi, tính ổn định, khả năng kiểm tra và tuân thủ.
- Tính tương thích (Portability)có nămđặc điểm phụ: Khả năng thích ứng, khả năng cài đặt, khả năng cùng tồn tại, khả năng thay thế và tuân thủ.
- Hiệu năng (Performance)là một loại kiểm thử để xác định tốc độ của máy tính, tốc độ mạng hoặc thiết bị di động. Nó kiểm thử hiệu suất của các thành phần của một hệ thống bằng cách truyền các tham số khác nhau trong những kịch bản test khác nhau. Performance Test bao gồm Load testing, Stress testing, Volume testing…
- Khả năng chịu tải (Load Test) kiểm thử các ứng dụng hoạt động trong điều kiện hoạt động bình thường và hoạt động hiệu suất cao.Áp lực (Stress)là một loại kiểm thử xác định sự ổn định và tính mạnh mẽ của hệ thống bằng cách tập trung vào các trạng thái tới hạn, các “điểm chết” hay tình huống bất thường…
- Volume Testing (Kiểm thử khối lượng) xác định phần mềm hoạt động hiệu quả như thế nào với khối lượng lớn dữ liệu.
3. Re-Testing (Kiểm thử lại)
Re-testing đồng nghĩa với Confirmation testing (Kiểm thử xác nhận), nhằm mục đích kiểm tra bug đã được fix ổn theo kết quả mong muốn ở Test Case hay chưa. Khi thực hiện kiểm thử lại, các tester sẽ kiểm tra xem bug do mình tìm ra và post lên tool quản lý đã được developers fixed thành công hay vẫn còn lỗi.
Nếu bug đã được sửa xong thì tester sẽ báo cáo và chuyển trạng thái thành “Close bug”. Ngược lại, nếu lỗi vẫn còn thì tester sẽ báo cáo thành trạng thái Re-open để developers sửa lại. Re-testing chỉ kết thúc khi bug đã được sửa xong hoặc lý do khách quan nào đó phải tạm thời dừng việc fix bug.
Một số đặc điểm khác của kiểm thử lại:
- Không sử dụng được Automation testing trong các trường hợp Re-Testing.
- Mức độ ưu tiên cao hơn kiểm thử hồi quy nên sẽ được diễn ra trước.
- Được thực hiện trên cơ sở các phiên bản đã được sửa lỗi.
- Xác minh khiếm khuyết là một phần của quá trình kiểm tra lại.
- Chỉ áp dụng cho các trường hợp kiểm thử không thành công.
- Đảm bảo lỗi ban đầu đã được sửa chữa.
4. Regression testing (Kiểm thử hồi quy)
Khi một chức năng mới được thêm vào phần mềm, chúng ta cần chắc chắn rằng phần tính năng mới được thêm vào không phá hỏng các phần khác của ứng dụng. Ở trường hợp khác, khi lỗi đã được chỉnh sửa, chúng ta cần chắc chắn rằng lỗi chỉnh sửa không phá hỏng các phần khác trong ứng dụng. Để kiểm tra 2 điều trên, các tester sẽ thực hiện kiểu test lặp đi lặp lại gọi là Regression testing (Kiểm thử hồi quy).
Các tester sẽ thực hiện kiểu test lặp đi lặp lại gọi là Regression testing.
Test hồi quy được thực hiện đối với những phần nằm trong phạm vi bị ảnh hưởng khi mà có sự sửa đổi một chức năng nào đó hoặc là thêm mới. Mục đích chính của Regression testing là đảm bảo những 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 của sản phẩm phần mềm.
Regression Test không phải là một mức kiểm tra mà có thể thực hiện tại mọi giai đoạn kiểm thử. Mặc dù không là một level test nhưng thực tế lại cho thấy Regression testing là một trong những loại kiểm thử tốn nhiều thời gian và công sức nhất.
Việc 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 đó không có hoặc đã được kiểm tra và sửa rồi.
Kết luận
Tóm lại, các loại kiểm thử tiêu biểu trong quá trình test bao gồm:Functional testing, Non-Functional testing, Re-Testing và Regression testing. 4 loại kiểm thử trên sẽ giúp các kiểm thử viên xây dựng được bộ Test Case hoàn chỉnh, đầy đủ các trường hợp cần test để tìm ra lỗi của sản phẩm.
Mở rộng ngay cơ hội việc làm Tester tại ITNavi - Nền tảng kết nối việc làm IT với hơn 1000++ jobs cập nhật mỗi ngày.
Xem thêm:
1000 việc làm IT tại Nền tảng kết nối việc làm ITNavi
6 giai đoạn của quy trình kiểm thử phần mềm
Tester là gì? Kỹ năng cần có của tester
ITNavi - Nền tảng kết nối việc làm IT
Nguồn: Thông tin cần biết về các loại kiểm thử phần mềm - ITNavi