Kiểm thử là gì? Các mức độ kiểm thử
Mở Đầu
xin chào các bạn lại là mình đây hôm nay mình sẽ quay trở lại với một chủ đề mới toanh mà mình chưa viết bao giờ
. Đó là chủ đề liên quan đến
Testing
bài viết này chủ yếu đề cập đến lý thuyết để hiểu rõ hơn về các khái niệm, mọi người tham khảo nhé. Bắt đầu luôn thôi nào
Nội dung
Kiểm thử: là một hoạt động được thực hiện để đánh giá chất lượng sản phẩm, và để cải thiện nó, bằng cách xác định khuyết tật và các vấn đề.
Người kiểm thử: lập trình viên, tester, người dùng
Kiểm thử đơn vị (Unit testing): test ở mức cơ bản, test từng module nhỏ trong hệ thống
Kiểm thử đơn vị thường được xem như 1 phần phụ cho bước mã hóa sau khi mã nguồn được phát triển, được duyệt lại và được kiểm tra đúng cú pháp, thì bắt đầu thiết kế các trường hợp kiểm thử đơn vị
Kiểm thử đơn vị được đơn giản hóa khi mô-đun có sự liên kết cao được thiết kế. Khi chỉ 1 chức năng được gọi bởi một mô-đun, số các trường hợp kiểm thử được giảm xuống và các lỗi có thể dự đoán và phát hiện sớm hơn
Unit Test thường do lập trình viên thực hiện. Unit Test đòi hỏi kiểm tra viên có kiến thức về thiết kế và code của chương trình, mục đích của Unit Test là bảo đảm thông tin được xử lý và xuất là chính xác
Các mức độ kiểm thử
Kiểm thử tích hợp là 1 kĩ thuật có hệ thống để xác định cấu trúc chương trình trong khi thực hiện các kiểm thử nhằm phát hiện các lỗi liên quan đến điều kiện.Mục tiêu là lấy các thành phần đã được kiểm thử và xây dựng cấu trúc chương trình đã được mô tả bởi thiết kế
Kiểm thử tích hợp có các mục tiêu chính
-
Kiểm tra tích hợp chức năng: Mục tiêu chính của kiểm thử tích hợp là kiểm tra tích hợp chức năng giữa các thành phần, mô-đun hoặc hệ thống con trong ứng dụng. Nó đảm bảo rằng các thành phần hoạt động một cách hợp lý khi được kết hợp lại và tương tác với nhau.
-
Xác nhận giao tiếp và tương tác: Kiểm thử tích hợp giúp xác minh rằng các giao tiếp và tương tác giữa các thành phần của hệ thống là chính xác và đáng tin cậy. Điều này bao gồm kiểm tra đầu vào và đầu ra của các thành phần, kiểm tra giao tiếp qua giao diện, kiểm tra dữ liệu chia sẻ và kiểm tra quy trình truyền thông giữa các thành phần.
-
Đảm bảo tính thống nhất và độ tin cậy: Mục tiêu của kiểm thử tích hợp là đảm bảo tính thống nhất và độ tin cậy của hệ thống khi các thành phần được kết hợp lại. Nó đảm bảo rằng việc tích hợp không gây ra lỗi hoặc xung đột và hệ thống hoạt động một cách mượt mà và đáng tin cậy.
-
Phát hiện lỗi tích hợp: Mục tiêu quan trọng của kiểm thử tích hợp là phát hiện và báo cáo lỗi tích hợp. Nó giúp xác định các vấn đề phát sinh khi các thành phần được kết hợp lại và tương tác với nhau, như lỗi giao tiếp, lỗi tích hợp dữ liệu và lỗi xung đột giữa các thành phần.
-
Đảm bảo hiệu suất và tài nguyên: Kiểm thử tích hợp cũng có thể đánh giá hiệu suất và sử dụng tài nguyên của hệ thống khi các thành phần được kết hợp lại. Nó giúp xác định các vấn đề liên quan đến hiệu suất, tải và sử dụng tài nguyên quan trọng như bộ nhớ, CPU và băng thông mạng.
Kiểm tra cấu trúc (structure): Tương tự White Box Test (kiểm tra nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng), chú trọng đến hoạt động của các thành phần cấu trúc nội tại của chương trình chẳng hạn các lệnh và nhánh bên trong.
Kiểm tra chức năng (functional): Tương tự Black Box Test (kiểm tra chỉ chú trọng đến chức năng của chương trình, không quan tâm đến cấu trúc bên trong), chỉ khảo sát chức năng của chương trình theo yêu cầu kỹ thuật.
Kiểm tra hiệu năng (performance): Kiểm tra việc vận hành của hệ thống.
Kiểm tra khả năng chịu tải (stress): Kiểm tra các giới hạn của hệ thống.
Kiểm thử hệ thống (System Test): Kiểm thử hệ thống là một mức của tiến trình kiểm thử phần mềm khi các mô-đun và tích hợp các mô-đun đã được test.
Mục tiêu của kiểm thử hệ thống là để đánh giá phần mềm có tuân thủ theo các yêu cầu đã đưa ra không
Điểm khác nhau then chốt giữa Kiểm thử tích hợp
vàKiểm thử hệ thống
là Kiểm thử hệ thống
chú trọng các hành vi và lỗi trên toàn hệ thống, còn Kiểm thử tích hợp
chú trọng sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm việc cùng nhau. Thông thường ta phải thực hiện Unit Test và Kiểm thử tích hợp
để bảo đảm mọi Unit và sự tương tác giữa chúng hoạt động chính xác trước khi thực hiện Kiểm thử hệ thống
.
Kiểm thử hệ thống
thường được thực hiện bởi một nhóm kiểm tra viên hoàn toàn độc lập với nhóm phát triển dự án.
Phân loại Kiểm thử hệ thống
- Basic tests để chứng tỏ hệ thống có thể cài đặt được, cấu hình được và hoạt động được
- Functionality tests cung cấp kiểm tra toàn bộ yêu cầu (requirements) trên cả hệ thống
- Robustness tests xác định xem khả năng phục hồi của hệ thống từ input errors và các tình huống failure khác
- Inter-operability tests xác định xem hệ thống có thể tương thích (inter-operate) với các sản phẩm của bên thứ 3
- Performance tests đánh giá hiệu năng của hệ thống, e.g., băng thông, phản hồi dưới các điều kiện khác nhau
- Scalability tests xác định giới hạn quy mô của hệ thống, như quy mô người dùng, quy mô địa lý, quy mô nguồn lực
- Stress tests để hệ thống ở tình trạng áp lực (stress) để xác định giới hạn của hệ thống và, khi nó fail, xác định cách thức để gây ra failure
- Load and Stability kiểm tra khả năng ổn định của hệ thống trong thời gian dài với toàn tải
- Reliability tests đánh giá khả năng hệ thống giữ hoạt động trong thời gian dài mà không gây ra failures
- Regression tests kiểm tra hệ thống vẫn ổn định khi tích hợp thêm các hệ thống con khác và khi bảo trì
- Documentation tests đảm bảo system’s user guides là chính xác và khả dụng
Kiểm thử chấp nhận(Acceptance test):Kiểm thử chấp nhận là một cấp độ trong tiến trình kiểm thử phần mềm nhằm kiểm thử hệ thống về khả năng chấp nhận được.Mục tiêu của kiểm thử này là để đánh giá sự tuân thủ của hệ thống với các yêu cầu nghiệp vụ và thẩm định xem đã có thể chấp nhận để bàn giao chưa.Kiểm thử chấp nhận được khách hàng thực hiện (hoặc ủy quyền cho một nhóm thứ ba thực hiện).
Gồm 2 loại kiểm thử là:
- Alpha Test: người dùng kiểm thử phần mềm ngay tại nơi phát triển phần mềm, lập trình viên sẽ ghi nhận các lỗi hoặc phản hồi, và lên kế hoạch sửa chữa.
- Beta Test: phần mềm sẽ được gửi tới cho người dùng để kiểm thử ngay trong môi trường thực, lỗi hoặc phản hồi cũng sẽ gửi ngược lại cho lập trình viên để sửa chữa.
Lưu ý: không nhất thiết phải thực hiện tất cả các loại kiểm tra nêu trên. Tùy yêu cầu và đặc trưng của từng hệ thống, tuỳ khả năng và thời gian cho phép của dự án, khi lập kế hoạch, trưởng dự án sẽ quyết định áp dụng những loại kiểm tra nào.
Kết Luận
Trên đây mình đã giới thiệu đến các bạn về một số khái niệm liên quan đến kiểm thử và các mức độ kiểm thử phần mềm, Bài viết còn chỗ nào thiếu sót rất mong nhận được sự đóng góp của các bạn còn nếu thấy bài viết hữu ích thì hãy cho mình một upvote nhé, Cảm ơn các bạn
All rights reserved