Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm và phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và đầy đủ theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra. Software testing cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm điều này cho phép đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. Cụ thể là gì? Hãy cùng ACC tìm hiểu thông qua bài viết dưới đây
1. Kiểm thử là gì?
Đây là một trong những loại kiểm thử phần mềm quan trọng để xác nhận xem hệ thống có hoạt động đúng yêu cầu hay không. Ở tất cả các mức độ kiểm thử đều được kiểm thử chức năng.
Testing of function là một trong những loại kiểm thử phần mềm quan trọng
Testing of function có thể thực hiện theo 2 quan điểm: business - process – based và requirements-based. Với business - process – based, kiểm thử viên sẽ sử dụng các kiến thức về quy trình nghiệp vụ (mô tả các kịch bản liên quan đến nghiệp vụ của hệ thống mỗi ngày).
Trong khi đó, requirements-based sử dụng các đặc tả yêu cầu của hệ thống làm cơ sở để design test. Để đảm bảo những thành phần quan trọng nhất đều được kiểm thử, hãy xem xét độ ưu tiên của yêu cầu dựa trên tiêu chí rủi ro, theo đó, chúng ta sẽ sử dụng độ ưu tiên để kiểm thử.
Các bước kiểm thử chức năng gồm:
Bước 1: Xác định phần mềm sẽ kiểm thử và chức năng của nó
Bước 2: Dựa trên tài liệu đặc tả chức năng để tạo dữ liệu đầu vào
Bước 3: Dựa vào tài liệu đặc tả chức năng để xác định đầu ra
Bước 4: Thực hiện các trường hợp kiểm thử phần mềm
Bước 5: So sánh kết quả thực tế với mong muốn đạt được
2. Những điều cần biết về kiểm thử phần mềm với Junit
Junit là một framwork kiểm thử đơn vị cho ngôn ngữ lập trình Java. JUnit đã rất quan trọng trong việc phát triển phần mềm theo hướng thử nghiệm. Junit là một thể hiện của kiến trúc xUnit cho các khung kiểm thử đơn vị. JUnit thiết lập ý tưởng "thử nghiệm đầu tiên sau codeing", nhấn mạnh vào việc thiết lập dữ liệu thử nghiệm cho một đoạn code có thể được kiểm tra trước và sau đó được triển khai. Cách tiếp cận này giống như "kiểm tra một chút, viết mã một chút, kiểm tra một chút, viết mã một chút.". Junit làm tăng năng suất của lập trình viên và sự ổn định của mã chương trình, do đó làm giảm sự căng thẳng trên lập trình viên và thời gian dành cho việc gỡ lỗi. ****Các tính năng của Junit
JUnit là một framework mã nguồn mở, được sử dụng để viết và chạy thử nghiệm.
Cung cấp chú thích để xác định phương pháp thử nghiệm.
Cung cấp xác nhận để kiểm tra kết quả mong đợi
Cung cấp các trình chạy thử nghiệm để chạy thử nghiệm
Các bài kiểm tra JUnit cho phép bạn viết mã nhanh hơn, làm tăng chất lượng phần mềm
JUnit rất đơn giản và tốn ít thời gian hơn
Các bài kiểm tra JUnit có thể được chạy tự động và họ kiểm tra kết quả của riêng họ và cung cấp phản hồi ngay lập tức. Không cần phải tự tay thông qua một báo cáo kết quả kiểm tra.'
Các bài kiểm tra JUnit có thể được tổ chức thành các test suites chứa các test case và thậm chí các test suites khác.
JUnit cho thấy tiến trình thử nghiệm trong một thanh có màu xanh lá cây nếu thử nghiệm chạy thành công và nó chuyển sang màu đỏ khi thử nghiệm không thành công. Trường hợp kiểm thử đơn vị là gì?
Một trường hợp kiểm thử đơn vị là 1 phần của mã nguồn để đảm bảo rằng một phần của mã nguồn hay còn gọi là phương thức hoạt động như mong đợi. Để đạt được kết quả mong muốn một cách nhanh chóng, cần có framewoke kiểm tra bắt buộc. JUnit là một framewoke kiểm thử đơn vị hoàn hảo cho ngôn ngữ lập trình Java.
Một trường hợp thử nghiệm đơn vị viết chính thức được đặc trưng bởi một đầu vào được biết đến và một đầu ra dự kiến, được thực hiện trước khi thử nghiệm được thực hiện. Đầu vào đã biết nên kiểm tra điều kiện tiên quyết(precondition) và đầu ra dự kiến sẽ kiểm tra điều kiện sau ( post-condition.).
Phải có ít nhất hai trường hợp thử nghiệm đơn vị cho mỗi yêu cầu - một thử nghiệm valid data và một thử nghiệm invalid data. Nếu yêu cầu có yêu cầu phụ, mỗi yêu cầu phụ phải có ít nhất hai trường hợp thử nghiệm là valid data và invalid data.
3. Đặc điểm của Framework kiểm thử Junit
JUnit là một khung kiểm thử hồi quy được sử dụng bởi các nhà phát triển để thực hiện kiểm thử đơn vị trong Java và đẩy nhanh tốc độ lập trình và tăng chất lượng code. JUnit Framework có thể được tích hợp dễ dàng với các bộ công cụ sau: Eclipse, Ant, Maven...
4. Junit cung cấp các tính năng quan trọng sau:
Fixtures Là trạng thái cố định của một tập hợp các đối tượng được sử dụng làm đường cơ sở để chạy thử nghiệm. Mục đích của test fixture là để đảm bảo rằng có một môi trường phổ biến và cố định trong đó các bài kiểm tra được chạy để kết quả có thể lặp lại. Fixtures bao gồm 2 phương thức chính: + setup(): chạy trước mỗi lời gọi thử nghiệm + tearDown(): chạy sau mỗi phương pháp thử nghiệm Test suites Một bộ test bao gồm một vài trường hợp thử nghiệm đơn vị và chạy chúng cùng nhau. Trong JUnit, cả chú thích @RunWith và @Suite đều được sử dụng để chạy bộ thử nghiệm. Test runners Test runner được sử dụng để thực hiện các trường hợp thử nghiệm. JUnit classes Các lớp JUnit là các lớp quan trọng, được sử dụng trong viết và kiểm tra các JUnits. Một số lớp quan trọng là: Assert: Chứa một tập hợp các phương thức thẩm định. TestCase - Chứa một trường hợp kiểm tra xác định fuxture để chạy nhiều bài kiểm tra TestResult - Chứa các phương pháp để thu thập kết quả thực hiện một trường hợp thử nghiệm
5. Hướng dẫn cài đặt, sử dụng junit trong eclipse
5.1. Tạo Maven Project
Đầu tiên, bạn cần tạo maven project có tên "junit-example".
Ví dụ JUnit trên Eclipse
Update file pom.xml
?
1
2
3
4
5
6
5.2. Tạo lớp bạn muốn test
Tạo một lớp Operation.java có 2 phương thức, phương thức cộng hai số nguyên add() và phương thức trừ hai số nguyên subtract().
File: Operation.java
?
1
2
3
4
5
6
7
8
9
10
11
package vn.viettuts;
public class Operation {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
5.3. Tạo lớp test
Tạo một lớp TestOperation.java được extends lớp junit.framework.TestCase. Có 2 phương thức test, phương thức test cộng hai số nguyên testAdd() và phương thức trừ hai số nguyên testSubtract().
File: TestOperation.java
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package vn.viettuts;
import org.junit.Test;
import junit.framework.TestCase;
public class TestOperation extends TestCase {
@Test
public void testAdd() {
Operation myUnit = new Operation();
int result = myUnit.add(2, 3);
assertEquals(result, 5);
}
@Test
public void testSubtract() {
Operation myUnit = new Operation();
int result = myUnit.subtract(6, 4);
assertEquals(result, 2);
}
}
Chú thích JUnit @Test được thực sử dụng để đánh dấu phương thức hiện tại là một kiểm thử đơn vị.
Các phương thức có tiền tố "test" là một kiểm thử đơn vị. Các phương thức có tiền tố "test" sẽ được thực thi bởi test runner.
5.4. Run test case
Với Eclipse bạn có thể thực thi lớp Unit Test bằng 2 cách sau:
Sử dụng phím tắt Ctrl + F11.
Click chuột phải vào lớp Unit Test --> "Run As" --> "JUnit Test".
Kết quả:
Nội dung bài viết:
Bình luận