1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo kiểm chứng phần mềmtìm hiểu và trình bày các tính năng công cụ kiểm thử đơn vị junit

12 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu và trình bày các tính năng công cụ kiểm thử đơn vị JUnit
Tác giả Phan Anh Tuấn, Võ Như Hoàng Huy, Nguyễn Tấn Dũng, Trần Ngọc Duy, Phạm Tấn Khiêm
Người hướng dẫn Hồ Văn Quí
Trường học Học Viện Hàng Không Việt Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo kiểm chứng phần mềm
Năm xuất bản 2024
Thành phố TP. HCM
Định dạng
Số trang 12
Dung lượng 626,26 KB

Nội dung

Kiểm thử đơn vị là một phần quantrọng của quy trình phát triển phần mềm, giúp phát hiện lỗi sớm trong quá trình pháttriển và đảm bảo rằng các phần tử nhỏ nhất của ứng dụng hoạt động chín

Trang 1

HỌC VIỆN HÀNG KHÔNG VIỆT NAM

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO KIỂM CHỨNG PHẦN MỀM“Tìm hiểu và trình bày các tính năng

công cụ kiểm thử đơn vị JUnit”

HỌC KỲ III – NĂM HỌC:2023-2024MÃ LỚP HỌC PHẦN: 010100086601

Giảng viên hướng dẫn: Hồ Văn Quí

Võ Như Hoàng Huy MSSV: 2254810046Nguyễn Tấn Dũng MSSV: 2254810046

TP HCM, tháng 6 năm 2024

Trang 2

NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN

Trang 3

Chương II Các tính năng chính của JUnit 4

2.1 Annotation 5

2.2 Assertions 5

2.3 Test RunnerTest 6

2.4 Parameterized Tests 6

2.5 Integration with IDEs and Build Tools 6

Chương III Cài đặt một bài toán cụ thể 7

3.1 Mã nguồn của lớp ArrayUtils 7

3.2 Tạo test script 7

Chương IV Thực thi test script và kiểm tra kết quả 10

Chương V Kết luận 11

Trang 4

Chương I Giới thiệu về kiểm thử đơn vị và JUnit

Kiểm thử đơn vị (unit testing) là một phương pháp kiểm thử phần mềm mà trong đócác phần tử nhỏ nhất của mã nguồn, gọi là đơn vị (unit), được kiểm thử độc lập đểđảm bảo chúng hoạt động đúng như mong đợi Kiểm thử đơn vị là một phần quantrọng của quy trình phát triển phần mềm, giúp phát hiện lỗi sớm trong quá trình pháttriển và đảm bảo rằng các phần tử nhỏ nhất của ứng dụng hoạt động chính xác

JUnit là một framework kiểm thử đơn vị phổ biến nhất trong môi trường phát triểnphần mềm Java Được tạo ra bởi Kent Beck và Erich Gamma, JUnit cung cấp mộtnền tảng mạnh mẽ và dễ sử dụng để viết và thực thi các test case JUnit đã trở thànhtiêu chuẩn cho kiểm thử đơn vị trong Java và được tích hợp tốt với các công cụ xâydựng và môi trường phát triển tích hợp (IDE) như Maven, Gradle, IntelliJ IDEA vàEclipse

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ã

Trang 5

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

Chương II Các tính năng chính của JUnit

JUnit nổi bật với nhiều tính năng mạnh mẽ hỗ trợ việc viết và quản lý các test case dễdàng và hiệu quả

 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 quamộ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 testcase 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ếuthử nghiệm chạy thành công và nó chuyển sang màu đỏ khi thử nghiệm khôngthà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ộtphầ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ểmtra 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 đầuvà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

Trang 6

quyết(precondition) và đầu ra dự kiến sẽ kiểm tra điều kiện sau ( condition.).

post- 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ầuphụ, mỗi yêu cầu phụ phải có ít nhất hai trường hợp thử nghiệm là valid datavà invalid data

Dưới đây là một số tính năng quan trọng của JUnit:

2.2 Assertions

Assertions là các phương thức được sử dụng để kiểm tra tính đúng đắn của kết quảkiểm thử JUnit cung cấp nhiều phương thức assertion để so sánh kết quả mong đợivà kết quả thực tế, bao gồm:

assertEquals(expected, actual): Kiểm tra xem giá trị thực tế có bằng giá trị mong đợikhông

Trang 7

assertTrue(condition): Kiểm tra xem điều kiện có đúng không.assertFalse(condition): Kiểm tra xem điều kiện có sai không.assertNull(object): Kiểm tra xem đối tượng có null không.assertNotNull(object): Kiểm tra xem đối tượng có không null không.assertThrows(expectedType, executable): Kiểm tra xem một ngoại lệ có được ném ranhư mong đợi không.

2.4 Parameterized Tests

JUnit hỗ trợ việc kiểm thử với nhiều bộ dữ liệu khác nhau thông qua tính năngparameterized tests Điều này cho phép chúng ta viết một test case duy nhất nhưng cóthể kiểm thử với nhiều bộ dữ liệu khác nhau, giúp tiết kiệm thời gian và công sức

2.5 Integration with IDEs and Build Tools

JUnit tích hợp tốt với các IDE như IntelliJ IDEA, Eclipse và các công cụ xây dựngnhư Maven, Gradle Điều này cho phép các nhà phát triển dễ dàng viết, thực thi vàquản lý các test case trong môi trường phát triển quen thuộc

Trang 8

Chương III Cài đặt một bài toán cụ thể

Để minh họa cách sử dụng JUnit trong thực tế, chúng ta sẽ tạo một ứng dụng đơngiản để tính toán tổng của một mảng số nguyên và kiểm thử các phương thức của nóbằng JUnit Bài toán cụ thể là kiểm tra hàm sumArray trong lớp ArrayUtils

3.1 Mã nguồn của lớp ArrayUtils

Dưới đây là mã nguồn của lớp ArrayUtils với hàm sumArray để tính tổng của mộtmảng số nguyên

javaSao chép mãpublic class ArrayUtils { public static int sumArray(int[] array) { int sum = 0;

for (int num : array) { sum += num; }

return sum; }

}

3.2 Tạo test script

Chúng ta sẽ viết các test case để kiểm tra hàm sumArray sử dụng JUnit Dưới đây làmã nguồn của lớp ArrayUtilsTest với các test case cho hàm sumArray

Trang 9

javaSao chép mãimport org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.*;

public class ArrayUtilsTest { @Test

public void testSumArray_EmptyArray() { int[] array = {};

int result = ArrayUtils.sumArray(array); assertEquals(0, result, "Sum of empty array should be 0"); }

@Test public void testSumArray_SingleElement() { int[] array = {5};

int result = ArrayUtils.sumArray(array); assertEquals(5, result, "Sum of array with single element 5 should be 5"); }

@Test public void testSumArray_MultipleElements() { int[] array = {1, 2, 3, 4, 5};

Trang 10

int result = ArrayUtils.sumArray(array); assertEquals(15, result, "Sum of array {1, 2, 3, 4, 5} should be 15"); }

@Testpublic void testSumArray_NegativeNumbers() { int[] array = {-1, -2, -3, -4, -5};

int result = ArrayUtils.sumArray(array); assertEquals(-15, result, "Sum of array {-1, -2, -3, -4, -5} should be -15"); }

@Test public void testSumArray_MixedNumbers() { int[] array = {-1, 2, -3, 4, -5};

int result = ArrayUtils.sumArray(array); assertEquals(-3, result, "Sum of array {-1, 2, -3, 4, -5} should be -3"); }

}

Trang 11

Chương IV Thực thi test script và kiểm tra kết quả

Có thể nói, test script là bản hướng dẫn chi tiết, viết bằng code (mã) để thực hiện automation testing (kiểm thử tự động) Ngoài ra, bạn cũng cần dùng phần mềm automation testing để thực thi test script Một số phần mềm được sử dụng phổ biến hiện nay gồm có Selenium, UTF One (Micro Focus Unified Functional Testing), TestComplete, Cucumber,

Thông thường, trong test script, bạn sẽ viết code để thực hiện ít nhất một lần những tác vụ sau:

1 Xác định trường tham chiếu của input hay test data (dữ liệu đầu vào)2 Kiểm tra sự tồn tại của trường tham chiếu input

3 Điều hướng đến nó và nhập input4 Định vị trường tham chiếu của output (dữ liệu đầu ra)5 Xác minh sự tồn tại của trường tham chiếu output6 Điều hướng đến nó để đọc output

7 So sánh output với expected value (kết quả dự kiến)8 Lưu trữ kết quả kiểm thử vào log (bản nhật ký) hoặc report (bản báo cáo)

Chúng ta có thể thực thi các test case này bằng cách sử dụng IDE hoặc các công cụxây dựng như Maven hoặc Gradle Dưới đây là cách thực thi bằng IntelliJ IDEA:Mở lớp ArrayUtilsTest

Nhấn chuột phải và chọn "Run 'ArrayUtilsTest'".Kết quả kiểm thử sẽ được hiển thị trong cửa sổ kết quả kiểm thử của IDE.Nếu tất cả các test case đều vượt qua, điều đó chứng tỏ hàm sumArray hoạt độngđúng với các trường hợp đã kiểm tra Kết quả kiểm thử sẽ cho thấy các phương thứckiểm thử đã được thực thi thành công và không có lỗi xảy ra

Trang 12

Chương V Kết luận

JUnit là một công cụ mạnh mẽ và dễ sử dụng cho việc kiểm thử đơn vị trong Java.Với các tính năng như annotation, assertion, và tích hợp tốt với các IDE và công cụxây dựng, JUnit giúp các nhà phát triển dễ dàng viết, thực thi và quản lý các test case.Kiểm thử đơn vị không chỉ giúp phát hiện lỗi sớm trong quá trình phát triển mà cònđảm bảo chất lượng phần mềm tốt hơn

Trong bài viết này, chúng ta đã tìm hiểu các tính năng chính của JUnit và áp dụngchúng vào một bài toán cụ thể Chúng ta đã tạo một lớp ArrayUtils với hàmsumArray và viết các test case để kiểm thử hàm này bằng JUnit Qua việc thực thi cáctest case, chúng ta đã xác định rằng hàm sumArray hoạt động đúng như mong đợi

Sử dụng JUnit không chỉ giúp cải thiện chất lượng mã nguồn mà còn giúp tăng hiệuquả phát triển phần mềm bằng cách tự động hóa quá trình kiểm thử Điều này đặc biệtquan trọng trong môi trường phát triển Agile, nơi mà kiểm thử tự động đóng vai tròquan trọng trong việc đảm bảo chất lượng và tính ổn định của phần mềm trong cácchu kỳ phát hành nhanh chóng

Ngày đăng: 06/09/2024, 16:59

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w