FUNCTIONAL TESTING LÀ GÌ? PHÂN BIỆT FUNCTIONAL VÀ NON-FUNCTIONAL TESTING | CO-WELL Asia

Functional Testing (Kiểm thử chức năng) và Non-Functional Testing (Kiểm thử phi chức năng) là các quy trình đảm bảo chất lượng nằm trong lĩnh vực Software Testing (Kiểm thử phần mềm). Vậy Functional Testing là gì? Non-Functional Testing là gì? Functional Testing và Non-Functional Testing có gì khác biệt? Hãy cùng CO-WELL Asia tìm hiểu trong bài viết dưới đây.

A. Functional Testing

1. Functional Testing là gì?

 

Trước hết, cùng tìm hiểu định nghĩa Functional Testing là gì?

g là một loại kiểm thử hộp đen, tập trung chuyên sâu vào việc xác định mạng lưới hệ thống hoạt động giải trí theo đúng những nhu yếu nhiệm vụ, trải qua một tài liệu gọi là đặc tả nhu yếu ( Requirement Specification ) được tăng trưởng nhằm mục đích hướng dẫn kiểm tra ứng dụng đúng mực hơn .Functional Testing về cơ bản là một quy trình tiến độ so sánh sự độc lạ giữa đặc tả bên ngoài của ứng dụng với những công dụng thực tiễn mà ứng dụng cung ứng. Các tính năng sẽ được kiểm tra bằng cách nhập những giá trị nguồn vào và sau đó sẽ kiểm tra, nhìn nhận những hiệu quả đầu ra mà không cần chăm sóc đến những cấu trúc hay thiết lập bên trong của ứng dụng .Nhờ có Functional Testing, hoàn toàn có thể tránh được những việc kiểm thử dư thừa những tính năng không thiết yếu. Đồng thời giúp ngăn ngừa nhiều lỗi Open cùng một thời gian .

functional testing

 Functional Testing là một trong các quy trình đảm bảo chất lượng của lĩnh vực kiểm thử phần mềm. 

2. Các loại Functional Testing

Vì Functional Testing là một giải pháp kiểm tra những thông số kỹ thuật khác nhau của một mẫu sản phẩm ứng dụng, nên nó được thực thi trong nhiều tính năng khác nhau. Dưới đây là 8 loại kiểm thử công dụng thường được sử dụng nhất :

  • Unit testing (Kiểm thử đơn vị)

Kiểm thử đơn vị chức năng là Lever kiểm thử tiên phong, thường được thực thi bởi những nhà tăng trưởng. Mục tiêu của kiểm thử đơn vị chức năng là cô lập một phần code và xác định tính đúng mực của đơn vị chức năng đó. Quá trình này bảo vệ rằng những thành phần riêng không liên quan gì đến nhau của một ứng dụng hoạt động giải trí và phản ứng như mong đợi. Hoạt động kiểm thử đơn vị chức năng hoàn toàn có thể được thực thi theo cách thủ công bằng tay, nhưng việc tự động hóa tiến trình sẽ tăng cường những chu kỳ luân hồi tiến hành và lan rộng ra khoanh vùng phạm vi kiểm tra .

  • Smoke Testing

Smoke testing là một loại kiểm thử phần mềm được thực hiện sau khi có một bản build mới, để đảm bảo rằng các chức năng chính, quan trọng của phần mềm vẫn hoạt động bình thường. Công việc này được thực hiện để phát hiện các vấn đề nghiêm trọng sớm nhất có thể, trong trường hợp phát hiện vấn đề, bản build đó sẽ bị từ chối, và không được bàn giao cho giai đoạn kiểm thử tiếp theo, do đó sẽ giúp tránh lãng phí thời gian cho cả người kiểm thử và phát triển. Trong smoke testing, các test case được chọn sẽ bao phủ được hầu hết các tính năng, thành phần chính quan trọng của sản phẩm phần mềm. Có thể nói, Smoke Testing chính là loại kiểm tra tổng quát ban đầu.

  • Sanity Testing

Được triển khai sau khi nhận được bản build, ở bản build này 1 số ít tính năng của ứng dụng được chỉnh sửa, update do nhu yếu hoặc 1 số ít lỗi nào đó đã được sửa, việc này để kiểm tra nhanh những trạng thái hoặc đổi khác đó có tác động ảnh hưởng đến những tính năng khác hay không, có cung ứng như mong đợi hay không ? Nếu những yếu tố được tìm thấy, bản build sẽ không được đưa tới quy trình tiến độ kiểm thử chi tiết cụ thể hơn tiếp theo, giúp giảm thiểu thời hạn và những ngân sách khác .

  • Interface testing (Kiểm thử giao diện)

Được dùng để kiểm thử tích hợp khi thực thi 2 hoặc nhiều công dụng, thành phần của phần. Các tính năng đó sẽ được tích hợp để tạo thành một mạng lưới hệ thống hoàn hảo. Tóm lại, Integration Testing sẽ giúp kiểm tra hoạt động giải trí đúng của ứng dụng khi những thành phần được hợp nhất với nhau .

functional testing type

 Functional Testing (Kiểm thử chức năng) là một phương pháp kiểm tra các thông số khác nhau của một sản phẩm phần mềm

  • Integration testing (Kiểm thử tích hợp)

( Kiểm thử tích hợp ) Kiểm thử tích hợp được phong cách thiết kế để xác lập xem những thành phần ứng dụng riêng không liên quan gì đến nhau có hoạt động giải trí thông thường hay không khi chúng được liên kết với nhau. Kiểm thử tích hợp bảo vệ rằng mọi liên kết giữa những đơn vị chức năng khác nhau chạy trơn tru. Loại thử nghiệm này cố gắng nỗ lực phát hiện ra những loại lỗi khác nhau như sự không thích hợp trong thông tin hoặc định dạng tài liệu cũng như những tham số đầu vào hoặc đầu ra không hợp lệ hoàn toàn có thể bất thần làm gián đoạn một công dụng .

  • System testing (Kiểm thử hệ thống)

Kiểm thử mạng lưới hệ thống là một giải pháp kiểm thử hộp đen để nhìn nhận một loại sản phẩm ứng dụng hoàn hảo và tích hợp. Mục tiêu của kiểm thử mạng lưới hệ thống là xác định sự tuân thủ của mạng lưới hệ thống với những nhu yếu đơn cử. Loại kiểm tra này thường được triển khai bởi một nhóm kiểm thử khác với nhóm tăng trưởng trước khi ứng dụng được đưa lên thiên nhiên và môi trường Production .

  • Regression testing (Kiểm thử hồi quy)

Dùng để kiểm tra hồi quy, được thực thi khi bản build ứng dụng đã fix những bugs trong lần test bắt đầu. Nó cũng giúp xác định xem những bug đã thực sự được fix hay chưa và kiểm tra hàng loạt ứng dụng có hoạt động giải trí tốt với những biến hóa đó không .

  • Acceptance testing (Kiểm thử chấp nhận)

Kiểm thử đồng ý nhiều lúc được gọi là kiểm thử ứng dụng, là quy trình tiến độ ở đầu cuối của kiểm thử tính năng ứng dụng được thực thi trước khi loại sản phẩm ứng dụng được phát hành ra thị trường. 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 ở đầu cuối hoặc người mua sẽ được cung ứng phiên bản dùng thử, đây là cách để kiểm tra xem ứng dụng có hoạt động giải trí đúng theo nhu yếu trong thực tiễn hay không. Mục tiêu của quy trình này là bảo vệ rằng ứng dụng đã chuẩn bị sẵn sàng để phân phối và phân phối nhu yếu của người dùng cuối. Đổi lại, điều này nhu yếu loại sản phẩm phải được thử nghiệm trong “ quốc tế thực ” – bởi người dùng cuối trải qua quy trình thử nghiệm beta .

B. Non-Functional Testing

Theo thuật ngữ ứng dụng, khi một ứng dụng hoạt động giải trí theo mong đợi của người dùng, trơn tru và hiệu suất cao trong bất kể điều kiện kèm theo nào, thì ứng dụng đó được coi là một ứng dụng đáng đáng tin cậy. Dựa trên những góc nhìn này của chất lượng, việc kiểm tra theo những thông số kỹ thuật này là rất quan trọng. Loại kiểm tra này được gọi là Non-Functional Testing ( Kiểm thử phi công dụng ) .

Phần thông tin phía trên đã giúp bạn đã hiểu Functional Testing là gì và có vai trò vô cùng quan trọng trong việc xác nhận chất lượng và chức năng của phần mềm đã đạt yêu cầu hay chưa, thì Non-Functional Testing (Kiểm thử phi chức năng) cung cấp thông tin quan trọng về độ an toàn, khả năng phục vụ và độ tin cậy của hệ thống.

Hoạt động kiểm thử phi tính năng là sự bổ trợ hiệu suất cao cho hoạt động giải trí kiểm thử tính năng vì nó phân phối những chỉ số, những thông tin quan trọng giúp bạn có một ứng dụng mềm mại và mượt mà, đem tới thưởng thức hài lòng nhất đến cho người dùng ở đầu cuối .

Non Functional Testing

Non-Functional Testing ( Kiểm thử phi tính năng ) là sự bổ trợ hiệu suất cao cho hoạt động giải trí kiểm thử tính năngLoại thử nghiệm này kiểm tra cách loại sản phẩm ứng dụng hoạt động giải trí và gồm có ( nhưng không số lượng giới hạn ở ) những loại sau :

Stability tests (Kiểm thử độ ổn định):

Đánh giá ứng dụng hoàn toàn có thể liên tục hoạt động giải trí tốt trong hoặc ngay trên khoảng chừng thời hạn hoàn toàn có thể đồng ý hay không. Mục đích của kiểm thử độ không thay đổi là bảo vệ rằng mạng lưới hệ thống hoàn toàn có thể xử lý sự ngày càng tăng dự kiến về lưu lượng người dùng, khối lượng tài liệu, tần suất số lượng thanh toán giao dịch, v.v.

Reliability Tests (Kiểm thử độ tin cậy)

Kiểm thử độ đáng tin cậy kiểm tra xem ứng dụng hoàn toàn có thể duy trì một mức hiệu suất nhất định với những điều kiện kèm theo nhất định và trong một khoảng chừng thời hạn nhất định hay không. Mục đích của kiểm tra độ đáng tin cậy là để bảo vệ rằng mẫu sản phẩm ứng dụng không có lỗi và đủ an toàn và đáng tin cậy cho mục tiêu mong đợi của nó .

Robustness Tests (Kiểm thử độ bền)

Loại thử nghiệm này được phong cách thiết kế để chứng tỏ rằng mạng lưới hệ thống hoạt động giải trí đúng chuẩn trong mọi điều kiện kèm theo, ngay cả trong những sự kiện giật mình .

Stress tests (Kiểm thử áp lực)

Stress test có mục đích giám sát hành vi của hệ thống trong các trường hợp bất thường, điều này xác định giới hạn mà phần mềm sẽ bị phá vỡ. Kiểm thử áp lực được sử dụng để phân tích những gì sẽ xảy ra khi một hệ thống bị lỗi, với mục đích đảm bảo rằng phần mềm có thể phục hồi, ổn định và đáng tin cậy.

Performance Tests (Kiểm tra hiệu năng)

Kiểm thử hiệu suất được triển khai để xác lập cách ứng dụng hoạt động giải trí về năng lực phân phối và vận tốc giải quyết và xử lý trong một khối lượng việc làm. Các bài kiểm tra này tìm ra những yếu tố trong phong cách thiết kế ứng dụng và hiệu suất kiến trúc .

non functional testing 1024x936 1

Ví dụ tiêu biểu vượt trội cho Non-Functional Testing như : kiểm tra có bao người truy vấn đồng thời vào một ứng dụng ?

Load Tests (Kiểm thử khả năng chịu tải)

Load Test là quy trình mô phỏng độ chịu tải trong thực tiễn của bất kể ứng dụng hoặc website nào. Nó kiểm thử cách ứng dụng hoạt động giải trí trong điều kiện kèm theo hoạt động giải trí thông thường và hoạt động giải trí hiệu suất cao. Điều này được thực thi để xác lập mức độ việc làm mà ứng dụng hoàn toàn có thể giải quyết và xử lý trước khi hiệu suất bị tác động ảnh hưởng .

Usability Tests (Kiểm thử tính khả dụng)

Đây là kỹ thuật được phong cách thiết kế để xác định xem người dùng cuối hoàn toàn có thể thuận tiện sử dụng loại sản phẩm ứng dụng hay không. Thử nghiệm này được khuyến nghị trong quy trình tiến độ phong cách thiết kế bắt đầu của SDLC, mang lại năng lực hiển thị rõ ràng hơn trên sự mong đợi của người dùng .

Maintainability Tests (Kiểm thử khả năng bảo trì)

Các bài kiểm tra năng lực bảo dưỡng được triển khai để nhìn nhận năng lực của ứng dụng trong việc phân phối những nhu yếu của người dùng và khi được đổi khác thì không gặp bất kể yếu tố gì .

Portability Tests (Kiểm tra tính tương thích)

Các bài kiểm tra tính di động đo lường và thống kê mức độ thuận tiện chuyển ứng dụng sang thiên nhiên và môi trường khác, ví dụ điển hình như mức độ thuận tiện chuyển ứng dụng di động sang những hệ quản lý và điều hành khác nhau hoặc những thiết bị khác nhau .

C. Phân biệt Functional và Non-Functional Testing

Sau khi đã tìm hiểu Functional Testing là gì? Non-Functional Testing là gì? Xin mời các bạn cùng tìm hiểu sự khác nhau của 2 loại kiểm thử này.

Cả Functional Testing ( Kiểm thử tính năng ) và Non – Functional Testing ( Kiểm thử phi công dụng ) trong ứng dụng đều được phong cách thiết kế để phân phối loại sản phẩm tương thích với nhu yếu của người mua. Sự độc lạ chính giữa kiểm thử công dụng và kiểm thử phi tính năng là kiểm thử công dụng được chạy để bảo vệ rằng ứng dụng cung ứng những nhu yếu đơn cử, trong khi kiểm thử phi công dụng tập trung chuyên sâu vào việc bảo vệ mạng lưới hệ thống hoạt động giải trí tốt .

Functional Testing thường được thực hiện nhằm phát hiện và loại bỏ các lỗi trong phần mềm để nó có thể đáp ứng các yêu cầu nghiệp vụ một cách hoàn hảo. Trái ngược, các loại kiểm thử phần mềm phi chức năng quan tâm đến trải nghiệm và hành vi của người dùng nhưng không liên quan đến việc “tìm lỗi”.

Sự khác biệt quan trọng cần đề cập đến là các tiêu chí dựa trên Functional Testing và Non – Functional Testing. Trong kiểm thử chức năng, cả hoạt động hợp lệ và không hợp lệ đều được thực hiện để kiểm tra hành vi của phần mềm cả trong điều kiện mong muốn và không mong muốn. Mặt khác, trong khi chạy các kiểu kiểm thử phần mềm phi chức năng, bạn cần phải xem xét các tham số bị bỏ qua khi thực hiện kiểm tra chức năng tích cực (Positive) và tiêu cực (Negative Test). Còn một sự phân biệt nữa giữa hai loại thử nghiệm – các thử nghiệm chức năng được thực hiện trước các thử nghiệm phi chức năng.

maxresdefault

Functional Testing và Non-Functional Testing có gì độc lạ ?

Những khác biệt chính giữa Functional Testing và Non – Functional Testing

  • Kiểm thử chức năng xác minh từng chức năng/tính năng của phần mềm trong khi kiểm thử phi chức năng xác minh các khía cạnh phi chức năng như hiệu suất, khả năng sử dụng, độ tin cậy, v.v.
  • Kiểm thử chức năng có thể được thực hiện thủ công trong khi kiểm thử phi chức năng khó thực hiện bằng tay.
  • Kiểm thử chức năng dựa trên yêu cầu của khách hàng trong khi kiểm thử phi chức năng dựa trên kỳ vọng của khách hàng.
  • Kiểm thử chức năng có mục tiêu xác thực các hành động phần mềm trong khi kiểm thử phi chức năng có mục tiêu xác nhận hiệu suất của phần mềm.

Ví dụ : bạn hoàn toàn có thể kiểm tra xem việc nhập tên người dùng và mật khẩu có được cho phép bạn đăng nhập vào thông tin tài khoản trên website hay không. Và với Non-functional Testing, bạn xác định xem bằng cách nhập cùng một tài liệu, bạn hoàn toàn có thể đăng nhập vào thông tin tài khoản của mình trong vòng 2 giây hay không .

  • Kiểm thử chức năng mô tả những gì sản phẩm làm trong khi Kiểm thử phi chức năng mô tả cách sản phẩm hoạt động.
  • Kiểm thử chức năng được thực hiện trước khi kiểm thử phi chức năng.

Phân biệt cụ thể Functional và Non-Functional Testing

Functional Testing (Kiểm thử chức năng) Non-Functional Testing (Kiểm thử phi chức năng)
Là kiểm tra các hoạt động (operations) và hành động (actions) của một Ứng dụng Là kiểm tra các hành vi (behavior) của 1 Ứng dụng
Rất dễ dàng để xác định các yêu cầu chức năng và tiến hành chính xác Rất khó để xác định các yêu cầu cho kiểm thử phi chức năng. Bởi vậy khó xác định được hiệu quả bằng một con số cố định cụ thể.
Được thực hiện bằng cách sử dụng đặc tả chức năng Đươc thực hiện bởi các thông số kỹ thuật về hiệu suất
Là kiểm tra xem kết quả thực tế có hoạt động theo kết quả mong đợi hay không Là kiểm tra thời gian đáp ứng (response time) và tốc độ (speed) của phần mềm trong các điều kiện cụ thể.
Được thực hiện thủ công. (Manual test)
Ví dụ: Phương pháp kiểm tra hộp đen. (Black box testing)
Được thực hiện thông qua các công cụ tự động để xác định các chỉ số
Ví dụ: Loadrunner, Jmeter…
Kiểm tra theo yêu cầu của khách hàng. Kiểm tra theo mong đợi của khách hàng.
Phản hồi của khách hàng giúp giảm các yếu tố rủi ro của sản phẩm trong quá trình sử dụng. Phản hồi của khách hàng có giá trị hơn đối với thử nghiệm phi chức năng vì nó giúp cải thiện và cho phép người thử nghiệm biết được sự mong đợi của khách hàng, từ đó đáp ứng tốt mong đợi khách hàng hơn.
Giúp xác thực hành vi của ứng dụng. Giúp xác nhận hiệu suất của ứng dụng.
Kiểm thử (thực hiện test) các chức năng của phần mềm. Kiểm tra hiệu năng (performance) của chức năng của phần mềm.
Bao gồm các loại Testing sau:· Unit testing· Smoke testing· User Acceptance· Integration Testing· Regression testing· Localization· Globalization· Interoperability Bao gồm các loại Testing sau:· Performance Testing· Volume Testing· Scalability· Usability Testing· Load Testing· Stress Testing· Compliance Testing· Portability Testing· Disaster Recover Testing

 

D. Kết luận

Trên đây là một số kiến thức về Functional Testing là gì cũng như về Non-Functional Testing và cách phân biệt 2 loại kiểm thử này.

CO-WELL Asia tự hào là Global Partner thứ 8 trên thế giới – hạng parter cao nhất của tổ chức ISTQB, đồng thời có nhiều năm kinh nghiệm phát triển dịch vụ kiểm thử phần mềm IT Outsource nhằm giải quyết những vướng mắc của các doanh nghiệp. Nếu bạn có bất kỳ câu hỏi nào về dịch vụ kiểm thử phần mềm, đừng ngần ngại liên hệ ngay với CO-WELL Asia tại ĐÂY để được tư vấn và báo giá nhé!

Nguồn tìm hiểu thêm :