Software Testing (kiểm thử phần mềm) được chia thành 2 loại: Functional Testing và Non- Functional Testing. Mỗi loại sẽ tương ứng với một nhiệm vụ khác nhau. Vậy Functional Testing là gì? Non- Functional Testing là gì? Functional Testing và Non Functional Testing có gì khác nhau? Cùng làm rõ hơn 2 loại kiểm thử này trong bài viết dưới đây nhé.
Functional Testing là gì?
Functional Testing (kiểm thử chức năng) là loại kiểm tra chức năng phần mềm hoặc ứng dụng đang được thử nghiệm. Công cụ này kiểm tra hành vi của phần mềm đang được thử nghiệm dựa theo yêu cầu của khách hàng, thông qua một tài liệu gọi là đặc tả yêu cầu (Requirement Specification) được phát triển nhằm hướng dẫn kiểm tra ứng dụng chính xác hơn.
Một dữ liệu được thử nghiệm sẽ dựa trên tài liệu, bộ test case đã được chuẩn bị trước đó. Phần mềm sẽ được kiểm thử trong môi trường thực nhằm đưa ra kết quả thực tế (Actual Result) xem liệu có sát nhất với kết quả mong đợi hay không. Kỹ thuật này sẽ được gọi là kỹ thuật hộp đen – black box technique. Nó được thực hiện thủ công và tương đối hiệu quả trong việc phát hiện lỗi sai.
Các loại Functional Testing
Functional Testing (kiểm tra chức năng) có 6 loại chính bao gồm:
- Smoke Testing: Kiểm thử được thực hiện trước khi thử nghiệm hệ thống thực tế. Với mục đích nhằm kiểm tra các chức năng quan trọng có hoạt động ổn định không. Sau đó mới quyết định có thử nghiệm rộng rãi hơn không. Bước này sẽ giúp tiết kiệm khá nhiều thời gian cài đặt bản build mới. Đồng thời, Smoke Testing cũng sẽ giúp giảm thử nghiệm thêm khi các chức năng quan trọng không hoạt động. Có thể nói, Smoke Testing chính là loại kiểm tra tổng quát ban đầu.
- Sanity Testing: Loại thử nghiệm vào một chức năng cụ thể, một lỗi (bug) nào đó được fix để kiểm xem chức năng đó liệu có hoạt động tốt hay không. Ngoài ra, Sanity Testing cũng giúp xem xét các vấn đề khác do thay đổi những thành phần liên quan.
- Integration Testing: Được dùng để kiểm thử tích hợp khi thực hiện 2 hoặc nhiều chức năng, thành phần của phần. Các chức năng đó sẽ được tích hợp để tạo thành một hệ thống hoàn chỉnh. Tóm lại, Integration Testing sẽ giúp kiểm tra hoạt động đúng của phần mềm khi các thành phần được hợp nhất với nhau.
- Regression Testing: Dùng để kiểm tra hồi quy, được thực hiện khi bản build phần mềm đã fix những bugs trong lần test ban đầu. Nó cũng giúp xác minh xem các bug đã thực sự được fix hay chưa và kiểm tra toàn bộ phần mềm có hoạt động tốt với những thay đổi đó không.
- Localization Testing: Là loại thử nghiệm nhằm kiểm tra chức năng phần mềm khi nó được chuyển đổi thành ứng dụng sử dụng ngôn ngữ theo yêu cầu khách hàng. Chẳng hạn như chuyển từ sử dụng tiếng Anh sang tiếng Đức khiến giao diện và chức năng chung của người dùng bị ảnh hưởng, Thử nghiệm Localization Testing sẽ được diễn ra.
- User Acceptance Testing: Loại thử nghiệm để kiểm tra sự hài lòng của người dùng bằng cách xem xét tính dễ sử dụng của họ. Thông thường, người dùng cuối cùng hoặc khách hàng sẽ được cung cấp phiên bản dùng thử, đây là cách để kiểm tra xem phần mềm có hoạt động đúng theo yêu cầu thực tế hay không. User Acceptance Testing cũng là thử nghiệm cuối cùng trước khi ra mắt chính thức sản phẩm, còn được gọi là thử nghiệm Beta hay thử nghiệm người dùng cuối.
Non-Functional Testing là gì?
Non-Functional Testing (thử nghiệm phi chức năng) là loại kiểm tra với những mặt phi chức năng của một ứng dụng, phần mềm. Phi chức năng đó có thể là giao diện, trình bày, khả năng sử dụng, tính bảo mật,…
Non-Functional Testing được thiết kế một cách rõ ràng để kiểm tra sự sẵn sàng của hệ thống. Chúng được sử dụng để kiểm tra các thông số phi chức năng mà Functional Testing không thể kiểm tra được.
Ví dụ tiêu biểu cho Non-Functional Testing như: kiểm tra có bao người truy cập đồng thời vào một ứng dụng?
Kiểm tra phi chức năng sẽ cung cấp cho bạn các chỉ số, các thông tin quan trọng giúp bạn có một phần mềm mượt mà, đem tới trải nghiệm hài lòng nhất đến cho người dùng cuối cùng.
Sự khác nhau giữa Functional Testing và Non Functional Testing
Có thể thấy, Functional Testing và Non – Functional Testing có sự khác nhau. Nhưng không thực sự rõ ràng nếu bạn không hiểu sâu về 2 loại kiểm thử này. Hãy phân biệt 2 loại kiểm thử Functional Testing và Non – Functional Testing thông qua một số đặc trưng như:
- Trình tự áp dụng: Functional Testing sẽ được thực hiện kiểm tra trước Non – Functional Testing.
- Vùng tập trung: Functional Testing thực hiện tập trung dựa trên yêu cầu của khách hàng. Nhưng Non – Functional Testing chỉ thực hiện ở mức độ khách hàng mong chờ nhất mà thôi.
- Về yêu cầu: Functional Testing dễ định nghĩa được các chức năng yêu cầu và tiến hành dễ dàng chính xác. Non – Functional Testing khó định nghĩa được yêu cầu. Bởi vậy mà hiệu quả khó lòng được xác định bởi con số cố định cụ thể nào đó.
- Mục tiêu: Functional Testing thực hiện nhằm xác nhận hoạt động của phần. Non – Functional Testing tương tự, xác nhận về hiệu suất của phần mềm là chính.
- Yêu cầu: Functional Testing được xác nhận sử dụng chức năng, còn Non – Functional Testing xác nhận các thông số kỹ thuật.
- Thực hiện thử công: Functional Testing thực hiện thủ công (Manual test) còn Non – Functional Testing sẽ được thực hiện thông qua các công cụ để xác định các chỉ số.
- Thống kê: Functional Testing có thể thống kê kết quả chính xác hơn Non – Functional Testing.
- Phản hồi của khách hàng (người dùng) Giúp Functional Testing giảm các rủi ro lỗi mắc phải trong quá trình sử dụng. Non – Functional Testing sẽ làm tăng giá trị để cải thiện, cho phép sử dụng đáp ứng tốt mong đợi khách hàng hơn.
Ví dụ:
- Functional Testing sẽ là kiểm tra chức năng đăng nhập chẳng hạn.
- Non – Functional Testing có thể kiểm tra về tốc độ tải bảng điều khiển,…
Trên đây là một số kiến thức về Functional Testing là gì cũng như về Non – Functional Testing cũng như so sánh sự khác nhau của 2 loại kiểm thử này. Hi vọng qua bài viết của chúng tôi bạn sẽ hiểu hơn về Functional Testing và Non. Chúc bạn làm việc hiệu quả hơn với 2 loại kiểm thử này nhé!
Xem thêm: