Chi tiết bài viết

Functional testing (kiểm thử chức năng) cũng như non functional testing (kiểm thử phi chức năng) là hai kỹ thuật kiểm thử trong kiểm thử phần mềm. Thế nhưng nhiều bạn vẫn chưa biết; Functional testing là gì? Non functional testing là gì? Sự khác biệt của 2 phương thức kiểm thử này là như thế nào?

Functional testing là gì? Sự khác biệt giữa Functional và Non Functional Tests.
Functional testing là gì? Sự khác biệt giữa Functional và Non Functional Tests.

Funcional testing

Functional testing là gì?

Functional testing là một kỹ thuật kiểm thử hộp đen, tập trung vào việc xác minh, đảm bảo hệ thống làm việc đúng với tác vụ thông qua quá trình đặc tả yêu cầu (Software Requirement Specification), chuyên biệt cho quá trình kiểm thử ứng dụng, apps.

Cụ thể hơn, khi thực hiện kỹ thuật Functional testing, Tester đang thực hiện một quy trình so sánh sự khác biệt giữa đặc tả bên ngoài của phần mềm với những chức năng, trải nghiệm thực tế mà phần mềm cung cấp. Các chức năng của phần mềm sẽ được kiểm tra lại bằng các nhập đầu vào, đánh giá kết quả đầu ra. Việc đánh giá này hoàn toàn dựa vào kết quả mà không liên quan đến cấu trúc hay những cài đặt bên trong của ứng dụng.

Chính vì thế khi thực hiện Functional testing, có thể tránh được những bước kiểm thử dư thừa và ngăn chặn nhiều lỗi xuất hiện cùng một lúc trong cùng một thời điểm.

8 kỹ thuật bên trong functional testing
8 kỹ thuật bên trong functional testing

Các kiểu funcional testing ?

Vì là kỹ thuật kiểm thử dựa trên thông số của phần mềm, nên funcional testing được thực hiện trong nhiều chức năng khác nhau. Chủ yếu 8 kỹ thuật kiểm thử chức năng thường gặp nhất:

Unit test

 Đây là cấp độ kiểm thử đầu tiên, thường được thực hiện bởi các nhà phát triển. Mục tiêu chính của Unit test là cô lập riêng phần code và xác minh sự chính xác của đoạn code đó. Thực hiện unit test sẽ đảm bảo rằng các phần riêng lẻ của phần mềm hoạt động hiệu quả và như mong đợi của người lập trình. Chính vì với mục đích này, quá trình Unit test phải được thực hiện thủ công

Smoke test

Đây là quá trình kiểm thử sau khi có một bản build mới của phần mềm, để đảm bảo các chức năng chính vẫn hoạt động hiệu quả. Smoke test diễn ra để phát hiện các lỗi sớm nhất có thể, nếu lỗi xảy ra bản build mới sẽ bị từ chối, tránh lãng phí thời gian của cả tester lẫn developer. Tóm lại smoke test là quá trình kiểm tra tổng quát ngay từ ban đầu.

Sanity testing

Sanity test là bước kiểm thử ngay sau Smoke test, khi có có được bản build mới hoàn chỉnh, tuy nhiên những sửa đổi trước đó trong quá trình Smoke test cần phải được kiểm thử để đảm bảo các tính năng của bản build ở trạng thái ổn định. Nếu tiếp tục phát hiện ra lỗi thì phải chỉnh sửa lại mà không được đưa đến bước kiểm thử chi tiết.

Interface testing

Kiểm thử giao diện được thực hiện khi tích hợp 2 hay nhiều chức năng, phần của chương trình. Các chức năng sẽ được tích hợp vào một hệ thống hoàn chỉnh, quá trình Interface đảm bảo tính đồng nhất của chức năng.

Integration testing

Mục đích thực hiện kiểm thử integration testing là gì? Nếu như Interface đảm bảo tính đồng nhất của của các chức năng trong hệ thống thì Interface lại đảm bảo các chức năng hoạt động đúng với vai trò của mình trong một hệ thống tích hợp. Loại kiểm thử này với mục đích phát hiện ra các lỗi khác nhau như sự không tương thích trong thông báo hay hay định dạng dữ liệu hay các tham số dữ liệu vào gia ổn định không làm gián đoạn chức năng phần mềm.

System testing

Tiếp tục lại là một phương pháp kiểm thử hộp đen để đánh giá một sản phẩm, phần mềm hoàn chỉnh, xác minh sự tuân thủ của hệ thống với các yêu cầu cụ thể. Quá trình này khá năng vậy nên cần phải được thực hiện bởi 1 nhóm kiểm thử.

Regression testing

Được thực hiện khi truy xuất những lỗi đã test từ bản build đầu tiên, đảm bảo những lỗi đó đã được fix hoàn hảo.

Acceptance testing

Đây là giai đoạn cuối của kiểm thử chức năng phần mềm trước khi được phân phối ra thị trường. Đây là bước kiểm tra sự hài lòng của khách hàng, bằng cách cung cấp một bản dùng thử, mức độ hài lòng của người dùng vào sản phẩm sẽ được đánh giá qua mức độ hài lòng với các tính năng của bản dùng thử. Tuy nhiên để thực hiện quá trình kiểm thử này, bản dùng thử phải được đảm bảo đã qua thử nghiệm trong thế giới thực.

Non functional testing

Non functional testing là gì?

Non functional testing đúng như tên gọi của mình là quá trình kiểm thử phi chức năng. Sau khi phần mềm được đảm bảo hoạt động trơn tru, đúng mong đợi của end user, ứng dụng được coi là đáng tin cậy. Sẽ được chuyển đến giai đoạn Non functional testing dựa theo các thông số chất lượng. Nếu như ở phía trên có thể bạn đã biết Functional testing là gì? Và vai trò của quá trình kiểm thử này là đảm bảo chất lượng và chức năng của phần mềm này hoạt động hiệu quả hay chưa? Thì Non functional testing lại cung cấp cho nhóm dự án những thông tin về độ an toàn, độ tin cậy và khả năng phục vụ mà phần mềm có thể đem lại.

Hiểu đơn giản hơn thì quá trình kiểm thử phi chức năng sẽ cung cấp các chỉ số, thông tin để đội ngũ phát triển khắc phục để ứng dụng hoạt động mượt mà, trải nghiệm người dùng tốt hơn.

Các kiểu Non functional testing là gì?

Nếu như Functional Testing có 8 loại kiểm thử thì Non functional testing có đến tận 10 loại:

Stability test

Là quá trình kiểm tra phần mềm có hoạt động tốt trong 1 khoảng thời gian liên tục hay không? Đồng thời đảm bảo hệ thống có thể xử lý những gia tăng ngoài dự kiến về khối lượng dữ liệu, khối lượng giao dịch.

Reliability test 

Là quá trình kiểm thử độ tin cậy, kiểm tra xem chương trình có thể duy trì với một mức hiệu suất nhất định và trong khoảng thời gian nhất định hay không? Mục đích của quá trình là đảm bảo sản phẩm không có lỗi và đủ tin cậy với mục đích sử dụng của nó.

Robustness test

Là thao tác chứng minh hệ thống hoạt động chính xác, trơn tru trong mọi điều kiện, ngay cả trong các tình huống bất ngờ.

Stress test

Giám sát hành vi của hệ thống chương trình hoạt động trong các tình huống bất ngờ để tìm gia mức giới hạn mà phần mềm có thể phá vỡ. Quá trình sẽ phân tích những gì sẽ xảy ra khi một hệ thống bị lỗi, giúp cho phần mềm có thể phục hồi và ổn định trở lại.

Performance Test

Xác định cách phần mềm hoạt động như: khả năng đáp ứng, tốc độ xử lý trong khối lượng công việc.

Load test

Mô phỏng quá trình chịu tải thực tế. Quá trình mô phỏng cách ứng dụng hoạt động trong điều kiện bình thường cũng như trong áp lực cao. Điều này được thực hiện để xác định mức độ công việc mà phần mềm có thể xử lý trước khi hiệu suất bị ảnh hưởng.

Usability Test

Thao tác xác minh xem người dùng cuối cùng có dễ dàng sử dụng phần mềm hay không? Thử nghiệm này nên được sử dụng ngay từ đầu thiết kế SDLC, mang đến khả năng hiển thị rõ ràng hơn cả sự mong đợi của người dùng.

Maintainability test

Maintainability testing là gì? Đây là bài kiểm tra đòi hỏi phần mềm vượt qua những đòi hỏi của người dùng và khi thay đổi theo những yêu cầu đó sẽ không gặp bất kỳ vấn đề gì.

Portability

Đo lường mức độ dễ dàng, độ thích ứng khi chuyển phần mềm sang một môi trường khác.Ví dụ như việc chuyển đổi thiết bị sử dụng ứng dụng hay hệ điều hành sử dụng.

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

Sau khi đã hiểu rõ Functional testing là gì? Và Non Functional Testing là gì? Cùng daotaotester.vn tìm hiểu sự khác biệt giữa hai hình thức Testing này

Cả hai quá trình test đều được thiết kế với mục đích cung cấp những sản phẩm, ứng dụng phù hợp với người dùng. Để phân biệt hai hình thức kiểm thử này, ngay từ tên gọi đã cho thấy sự khác nhau. Trong khi Functional Testing đảm bảo rằng các chức năng của phần mềm, đáp ứng được yêu cầu cụ thể thì Non functional test lại tập trung vào việc hệ thống của phần mềm hoạt động tốt.

Hiểu rộng ra là trong kiểm thử chức năng thì các hoạt động hợp lệ và không hợp lệ đều được kiểm tra trong các điều kiện mong muốn hay không mong muốn. Ngược lại khi chạy kiểu kiểm thử phi chức năng, tất cả đều phải dựa vào các tham số chưa được kiểm tra trong quá trình Functional test. Bên cạnh đó các thử nghiệm chức năng bắt buộc phải được thực hiện trước sau đó mới đến khâu kiểm thử Non functional testing.

Chức năng của Non Functional Testing
Chức năng của Non Functional Testing

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

  • Xác minh từng tính năng của phần mềm trong khi kiểm thử phi chức năng chủ yếu kiểm thử những yếu tố không liên quan đến chức năng chính của phần mềm như hiệu suất, khả năng sử dụng, độ tin cậy…
  • Functional Testing có thể được thực hiện bởi quá trình kiểm thử thủ công trong khi quá trình Non functional testing phải dùng đến automation vì liên quan đến các tham số.
  • Quá trình kiểm thử chức năng phụ thuộc rất lớn vào yêu cầu của khách hàng thì quá trình kiểm thử phi chức năng ở các phần mềm là tương đối giống nhau vì mọi khách hàng, end user nào cũng mong muốn sử dụng phần mềm một cách mượt mà, ổn định.
  • Hơn hết trong khi Functional testing hướng đến việc xác thực các hành động của phần mềm còn Non Functional testing lại xác thực hiệu suất hoạt động của phần mềm

Cụ thể hơn, trong quá trình đăng nhập vào ứng dụng, chương trình, nếu như Functional testing cho phép bạn đăng nhập vào tài khoản nếu như nhập đúng tên tài khoản và mật khẩu. Thì Non functional testing bắt buộc bạn phải xác minh dữ liệu và cho phép bạn vào tài khoản trong vòng 2-3 giây.

  • Quá trình functional test sẽ mô tả những gì bên trong ứng dụng. Còn Non functional test lại mô tả cách ứng dụng hoạt động
  • Bắt buộc phải thực hiện functional test trước để đảm bảo tính năng của ứng dụng rồi mới thực hiện non functional test để tối ưu cách ứng dụng thực hiện.

Bài viết trên cho bạn biết những kiến thức về Functional testing là gì? Và sự khách biệt giữa kiểm thử chức năng và phi chức năng. Hy vọng bạn có thể áp dụng chúng trong quá trình học tập và tìm bugs để tích lũy kiến thức cho nghề tester sau này.

>>> Có thể bạn quan tâm: Top 7+ phương pháp kiểm thử phần mềm thông dụng nhất hiện nay

Các câu hỏi liên quan đến Functional testing

  1. Các bước thực hiện trong Functional testing là gì?

    Bước 1: Xác định các chức năng mà phần mềm dự kiến sẽ làm (căn cứ vào tài liệu đặc tả của phần mềm)
    Bước 2: Xác định Input vào dựa trên các thông số kỹ thuật của chức năng
    Bước 3: Tiếp tục xác định output dựa trên các thông số kỹ thuật của chức năng
    Bước 4: Thực hiện các bài kiểm thử test case để tìm ra dữ liệu đầu ra thực tế
    Bước 5: Lấy kết quả thực tế thu thập được so sánh với kết quả output trên lý thuyết đã được xác định trước đó
    Bước 6: Từ những so sánh đã thực hiện ở bước 5 và yêu cầu đầu vào của khách hàng để đưa ra những đánh giá về phần mềm gửi lại cho đội ngũ phát triển.

  2. Các kỹ thuật nào cần được thực hiện trong functional testing là gì?

    1. Kiểm thử điều hướng của người dùng (user navigation testing)
    2. Kiểm thử thao tác trên màn hình (transaction screen testing)
    3. Kiểm thử luồng thực hiện (transaction flow testing)
    4. Kiểm thử màn hình báo cáo (report screen testing)
    5. Kiểm thử luồng báo cáo (report flow testing)

Bài trước

Học lập trình game miễn phí có hiệu quả không?

Bài tiếp theo

Thực tập sinh tester: Cẩm nang vào nghề cho người mới bắt đầu

Chia sẻ:

Bình luận

Bài viết liên quan

Zalo Zalo Messenger Messenger Phone Phone