Make a Different in Software Testing Basics - Phần 1
Phần 1 - Functional Testing and Non-Functional Testing Functional Testing là gì? Functional Testing 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/ chức năng cần kiểm thử. Các chức năng được kiểm thử bằng cách nhập các giá trị đầu vào và ...
Phần 1 - Functional Testing and Non-Functional Testing
Functional Testing là gì?
- Functional Testing 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/ chức năng cần kiểm thử. Các chức năng được kiểm thử bằng cách nhập các giá trị đầu vào và kiểm tra kết quả đầu ra.
- Trong Functional Testing, chúng ta cần kiểm tra từng thành phần hoạt động như mong đợi hay không, được thực hiện dựa trên tài liệu đặc tả chức năng của ứng dụng vì vậy nó còn được gọi là "Component Testing".
- Functional Testing là để kiểm tra các chức năng của ứng dụng/ phần mềm. Về cơ bản, nó là để kiểm tra các chức năng/luồng xử lý chính được đề cập trong tài liệu đặc tả chức năng. Cũng kiểm tra xem ứng dụng/ phần mềm có đáp ứng được kỳ vọng của người dùng hay không.
- Loại thử nghiệm này là bắt buộc và không phân biệt loại ứng dụng, tất cả các ứng dụng nên được thực hiện Functional Testing.
Các bước cần lưu ý trong Functional Testing:
- Xác định đúng các chức năng mà ứng dụng mong muốn sẽ thực hiện.
- Chuẩn bị các dữ liệu thử nghiệm dựa trên các đặc điểm, yêu cầu về nghiệp vụ của chức năng.
- Dựa trên các đặc tả của chức năng để xác định kết quả đầu ra của chúng.
- Thực thi các trường hợp kiểm thử.
- Quan sát và so sánh kết quả thực tế xảy ra và dự kiến mong đợi.
Non-Functional Testing là gì?
- Non-Functional Testing là kiểm thử các thuộc tính của ứng dụng không liên quan đến bất kỳ chức năng cụ thể hoặc hành vi của người dùng như hiệu suất, khả năng tương thích, bảo mật hoặc hành vi của ứng dụng theo những ràng buộc nhất định.
- Non-functional Testing sẽ kiểm thử dựa trên kỳ vọng của khách hàng cũng như kinh nghiệm người dùng như: hiệu năng (performance), khả năng chịu tải (load), tính bảo mật (security),…
- Hầu hết các tiêu chuẩn/ điều kiện đưa ra không được xem xét trong Functional Testing vì vậy nó được sử dụng để kiểm tra sự sẵn sàng và tính linh hoạt của một hệ thống.
- Về cơ bản Non-Functional Testing được sử dụng cho các thuộc tính phi chức năng chính của hệ thống phần mềm.
- Các yêu cầu trong Non-Functional Testing thường là những yêu cầu phản ánh chất lượng của ứng dụng, trong bối cảnh đặc biệt phù hợp với quan điểm của người dùng.
- Non-Functional Testing sẽ có hiệu quả bằng cách sử dụng các công cụ để thực hiện kiểm tra (tùy thuộc vào từng loại test trong Non-Functional Testing sẽ có các công cụ hỗ trợ tương ứng).
- Non-Functional Testing nên được thể hiện theo cách có thể kiểm chứng, xác minh được. Không thể quy về chung chung như "hệ thống nên xử lý nhanh hơn" hoặc "hệ thống nên dễ dàng để sử dụng hơn", như vậy không thể kiểm chứng được.
- Non-Functional Testing có ảnh hưởng lớn đến sự hài lòng của khách hàng hoặc người dùng với sản phẩm.
Ví dụ:
- Trong bao nhiêu thời gian thì ứng dụng sẽ xử lý xong để hoàn thành một hành động cụ thể từ người dùng?
- Tốc độ phản hồi cần nhanh như thế nào?
Kết luận
Để đảm bảo mang đến cho khách hàng sản phẩm có chất lượng cao và làm hài lòng khách hàng cũng như người dùng đầu cuối thì việc kiểm tra chức năng của ứng dụng là cần thiết nhưng chưa đủ. Ngoài việc kiểm tra chức năng của một ứng dụng có đúng với yêu cầu của khách hàng hay không chúng ta còn phải kiểm tra xem ứng dụng có thực sự đáp ứng được sự mong đợi của khách hàng hay không. Hay nói cách khác, ngoài việc kiểm tra functional, chúng ta còn phải kiểm tra non-functional cho ứng dụng.
Functional Testing | Non-Functional Testing |
---|---|
Dựa trên yêu cầu về nghiệp vụ của khách hàng (business requirement) | Dựa trên kinh nghiệm người dùng và mong đợi của khách hàng (user experience) |
Kiểm tra chức năng của ứng dụng hoạt động tốt như thế nào | Kiểm tra hiệu năng của ứng dụng, phản hồi lại tốt như thế nào |
Xác nhận các hành vi, cách xử lý của ứng dụng | Xác nhận hiệu suất làm việc của ứng dụng |
Các loại test dùng cho kiểu test này: kiểm tra hệ thống ( system testing), kiểm tra đơn vị (unit testing), Smoke testing, Sanity testing, Regression testing, UAT,… | Các loại test dùng cho kiểu test này: kiểm tra tải (load, stress testing), kiểm tra tính tương thích ( compatibility testing), kiểm tra tính bảo mật (security testing), kiểm tra tính tin cậy ( reliability testing), kiểm tra tính khả dụng (usability testing),… |
Luôn tập trung vào các yêu cầu của khách hàng | Luôn tập trung vào sự mong đợi của khách hàng. |