Kiểm thử phần mềm là bước cuối cùng trong vòng tròn phát triển sản phẩm và trước khi đưa đến tay khách hàng. Kiểm thử sẽ được thực hiện theo các mức độ khác nhau: kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử chức năng, kiểm tra từ đầu đến cuối, kiểm thử chấp nhận, kiểm thử hiệu suất và kiểm thử khói. Bài viết này NIIT sẽ chia sẻ cho các bạn về các mức độ kiểm thử phần mềm mà bạn nên biết.
Unit testing (kiểm thử đơn vị)
Unit testing là mức độ kiểm thử phần mềm để xác định từng thành phần nhỏ nhất của phần mềm được phát triển. Trong bất cứ phần mềm nào, Unit testing là mức kiểm thử nhỏ nhất. Lớp (class), thủ tục (procedure), hàm (function) đều được xem là một Unit.
Unit testing là một kiểu kiểm thử hộp trắng, được thực hiện để biết được từng module riêng lẻ của mã nguồn có hoạt động chính xác hay không. Việc kiểm tra từng đơn vị sẽ giúp bắt kịp lỗi do thay đổi. Ưu điểm của kiểm thử đơn vị là cho phép lập trình viên cấu trúc lại code dễ dàng, nhanh chóng.
Bên cạnh đó, kiểm thử đơn vị có tính chất mô-đun nên cho phép kiểm thử từng phần mà không cần chờ người khác hoàn thiện. Hơn nữa, phát hiện và sửa lỗi trong giai đoạn này sẽ ít tốn kém hơn những giai đoạn sau.
Integration Testing (kiểm thử tích hợp)
Integration Testing là mức độ thứ hai trong kiểm thử phần mềm nhằm kiểm tra nhóm module liên quan đến nhau xem chúng hoạt động ra sao, có đúng chức năng như trong thiết kế hay không.
Theo ISTQB, Integration Testing được thực hiện để phát hiện lỗi khi các thành phần của hệ thống tương tác với nhau hoặc lỗi về giao diện. Một số phương pháp thường được sử dụng khi kiểm thử tích hợp gồm: Big Bang, Sandwich, Top-down, Bottom-up.
Functional Testing (kiểm thử chức năng)
Functional Testing là một kiểu kiểm thử hộp đen và test case của nó dựa trên đặc tả của thành phần hay ứng dụng đang test. Người kiểm thử rất ít quan tâm đến cấu trúc bên trong ứng dụng mà chỉ cần nhập vào các giá trị nhập sau đó kiểm tra kết quả cuối cùng.
Kiểm thử viên sẽ cố gắng tìm ra sự khác biệt giữa thực tế phần mềm cung cấp với những đặc tả bên ngoài (đặc tả chính xác về hành vi của phần mềm theo góc nhìn của người dùng). Một số kỹ thuật được áp dụng trong kiểm thử chức năng: Decision Tables, Domain Analysis, Equivalence Class Partitioning,…
Kiểm thử chức năng được thực hiện theo 5 bước cơ bản: xác định chức năng phần mềm kiểm thử => tạo dữ liệu đầu vào => xác định kết quả đầu ra dựa trên tài liệu đặc tả kỹ thuật các chức năng => thực hiện các trường hợp kiểm thử => so sánh kết quả mong muốn và kết quả thực tế đạt được.
End-to-End Testing (kiểm tra từ đầu đến cuối)
End-to-End Testing là kiểm tra từ đầu đến cuối nhằm xác định xem ứng dụng và các thành phần của nó có đáp ứng theo đúng yêu cầu hay không. Kiểm tra đầu cuối thường được thực hiện ngay sau khi kiểm tra hệ thống và kiểm tra chức năng của ứng dụng.
End-to-End Testing được thực hiện trong những tình huống thực tế như giao tiếp của ứng dụng với mạng, phần cứng, cơ sở dữ liệu và những ứng dụng khác. Nó thường được thực hiện khi đã kiểm thử toàn bộ chức năng của ứng dụng. Một số công cụ được sử dụng gồm: Avo Assure, TestCraft.
Khi kiểm tra đầu cuối, chúng ta sẽ xem xét lần lượt 3 loại: chức năng của người dùng, điều kiện và các trường hợp thử nghiệm. Những hoạt động có trong End-to-End Testing:
-
Thiết lập những môi trường thử nghiệm phù hợp
-
Nghiên cứu tỉ mỉ các yêu cầu để thực hiện thử nghiệm
-
Nghiên cứu cẩn thận yêu cầu về phần mềm và ứng dụng
-
Mô tả các sub-system, hệ thống phần mềm chính có liên quan
-
Thống kê vai trò, trách nhiệm đối với sub-system và hệ thống
-
Thiết kế các trường hợp kiểm thử và theo dõi các yêu cầu
-
Lưu hoặc ghi lại dữ liệu đầu vào và đầu ra của mỗi hệ thống
Acceptance Testing (kiểm thử chấp nhận)
Acceptance Testing là mức độ cuối cùng trong kiểm thử phần mềm. Kiểm tra hành vi của hệ thống và thông qua dữ liệu thực tế sẽ xác định xem hệ thống đó có đáp ứng được những tiêu chí đề ra và yêu cầu của khách hàng hay không.
Điều kiện tiên quyết của Acceptance Testing là các khâu kiểm thử đã hoàn thiện, môi trường acceptance testing đã sẵn sàng, không còn lỗi quan trọng trong hệ thống và đảm bảo các yêu cầu nghiệp vụ chính của ứng dụng.
Một số kỹ thuật thường được sử dụng khi kiểm thử chấp nhận: phân vùng tương đương, phân tích giá trị biên và sử dụng bảng quyết định. Các bước thực hiện acceptance testing gồm:
-
Phân tích yêu cầu của phần mềm
-
Tạo kế hoạch kiểm tra
-
Xác định kịch bản kiểm thử
-
Tạo các trường hợp kiểm tra
-
Chuẩn bị data test
-
Thực hiện kiểm thử
-
Ghi nhận kết quả
-
Xác định chức năng của sản phẩm
Performance Testing (kiểm thử hiệu suất)
Performance Testing nhằm xác định hiệu suất của hệ thống dưới khối lượng truy cập và khối lượng công việc xác định. Cụ thể, kiểm thử viên sẽ xác định băng thông, khả năng xử lý và khả năng mở rộng. Có 5 loại kiểm thử hiệu năng thông dụng: Load Testing, Stress Testing, Endurance Testing, Spike Testing và Volume Testing.
Mục tiêu chính của Performance Testing là đánh giá hiệu năng sản phẩm, hạ tầng triển khai, các vấn đề ảnh hưởng và điều chỉnh hệ thống. Đánh giá hiệu suất thường dựa trên một số tiêu chí như: tính ổn định, thời gian phản hồi, khả năng mở rộng, băng thông thông lượng.
Smoke Testing (kiểm thử khói)
Smoke Testing (kiểm thử khói) thường được thực hiện trên các bản build phần mềm lúc đầu và xác định xem những chức năng quan trọng của phần mềm có hoạt động ổn định, hiệu quả hay không.
Kiểm thử khói sẽ được thực hiện bất cứ khi nào chức năng mới của phần mềm được phát triển hay tích hợp với bản build hiện có, triển khai trong môi trường QA/staging. Chỉ cần có bản build mới, nhóm QA sẽ xác định chức năng chính của ứng dụng và bắt đầu kiểm thử khói.
Kiểm thử khói đóng vai trò quan trọng trong phát triển phần mềm, bởi lẽ, nó đảm bảo tính chính xác của hệ thống trong giai đoạn đầu. Hầu hết lỗi được xác định ở giai đoạn đầu phát triển phần mềm đều có sự trợ giúp của smoke testing (kiểm thử khói).
Team QA có khả năng tìm thấy lỗi bằng cách kiểm thử khói đối với chức năng ứng dụng có thể phát sinh bởi code mới. Nói chung, kiểm thử khói giúp đơn giản hóa việc phát hiện và chỉnh sửa lỗi, bao gồm cả những lỗi nghiêm trọng.
Trên đây là thông tin về
các mức độ kiểm thử phần mềm đặc điểm, chức năng, các bước thực hiện mỗi loại. Hy vọng, những thông tin mà chúng tôi chia sẻ thực sự hữu ích với những bạn muốn trở thành một tester giỏi trong tương lai.
Tham khảo:
Khóa học tester