Áp dụng các phương pháp kiểm thử

Một phần của tài liệu Phát triển phần mềm áp dụng các phương pháp Scrum và Extreme Programming (Trang 69 - 73)

Chúng ta đều phải công nhận rằng việc kiểm thử rất quan trọng. Một chức năng được đưa ra chỉ có thể đảm bảo hoạt động khi nó được kiểm thử. Thông thường việc kiểm thử được giao cho người kiểm thử, và người kiểm thử sẽ kiểm thử các chức năng của sản phẩm đưa ra thông qua giao diện người dùng. Với cách này, người kiểm thử thường kiểm tra không kỹ, hoặc bị

quá chú trọng vào một vài mảng chức năng mà bỏ qua các chức năng khác. Do đó, các lỗi tiềm ẩn có thể không được phát hiện ra.

Như vậy, việc kiểm thử là một công việc tương đối tốn thời gian. Nhiều người phát triển cho rằng họ không phải là người có trách nhiệm thực hiện việc kiểm thử, và hầu hết đều ngại công việc này.

Dể việc kiểm thử được hiệu quả, thì việc kiểm thử phải được thực hiện một cách có phương pháp. Đã có nhiều phương pháp được nghiên cứu, phần này sẽđề cập một số cách tiếp cận phù hợp và được chấp nhận rộng rãi.

3.3.2.1. Tạo bộ kiểm thử trước khi cài đặt

Cách tiêp cận này được biết đến với cái tên Test Driven Development (TDD). Trước tiên là tạo các bài kiểm thử rồi mời cài đặt các chức năng. Điều này nghe vẻ ngược với những cách kiểm thử mà thường được sử dụng: các bài kiểm thửđược viết dựa trên các chức năng đã được cài đặt.

Hình 3.2 – Quy trình kiểm thử TDD

ƒ Bước 1: Viết bài thử

Dựa vào yêu cầu hệ thống và dựđịnh chức năng cần cài đặt, viết một bài thử cho chức năng sẽ cài đặt.

ƒ Bước 2: Chạy tất cả các bài thử

Chạy thử các bài thử. Kết quả phải là thất bại vì chức năng chưa

được cài đặt, nếu mọi bài kiểm thửđều qua có nghĩa là bài kiểm thử mới thêm vào không chính xác, hoặc phải sửa lại hoặc là đưa ra bài kiểm thử khác.

ƒ Bước 3: Cài đặt chức năng

Cài đặt chức năng mà đã được viết bài kiểm thử, và chỉ chức năng đó mà thôi. Bắt đầu Thêm một bài thử Thực hiện các bài thử Cài đặt chức năng Thực hiện các bài thử Kết thúc qua thất bại thất bại Dừng cài đặt Cài đặt tiếp

ƒ Bước 4: Chạy tất cả các bài thử

Chạy lại tất cả các bài thử, nếu không qua nghĩa là chức năng mới cần phải được chỉnh sửa lại (quay lại bước 3). Nếu qua toàn bộ, thì nếu công việc hoàn thành thì kết thúc, ngược lại quay lại bước 1 để bắt đầu việc cài đặt một chức năng mới.

Với cách tiếp cận này, thì để có thể viết được một bài kiểm thử cho một chức năng thì chúng ta phải suy nghĩ về chức năng đó và phải xác định được cách sử dụng chức năng đó. Nếu không có bộ kiểm thử nào cho chức năng, thì có nghĩa là chức năng đó không cần thiết.

3.3.2.2. Kiểm thử đơn vị

Kiểm thử đơn vị là kiểm thử một đơn vị nhỏ nhất mà có thể kiểm thử được. Các đơn vị có thể là một phương thức, hay một chức năng nhỏ. Kiểm thửđơn vị kiểm tra xem đơn vị đó có thực hiện đúng như những gì đã thiết kế

không. Kiểm thửđơn vị được áp dụng cho từng phương thức, các thành phần khác chỉ mang tính chất phụ trợ nếu cần thiết.

Kiểm thửđơn vị được thực hiện dựa trên các bộ kiểm thử. Bộ kiểm thử

là một danh sách các bài kiểm thử, trong đó có các cột: chức năng cần kiểm thử, dữ liệu đưa vào hoặc thao tác, kết quảđầu ra mong đợi hoặc đáp ứng của hệ thống. Và người kiểm thử sẽ tiến hành thực hiện và ghi kết quả kiểm thử

vào cột kết quả kiểm thử.

3.3.2.3. Kiểm thử chức năng

Kiểm thử chức năng là việc kiểm tra các chức năng lớn hơn, kiểm tra hoạt động của toàn hệ thống. Ở mức này, việc kiểm thử nhằm kiểm tra xem hệ thống hoạt động có đúng như yêu cầu, mong muốn của khách hàng hay

không. Việc quyết định kết quả có đạt hay không phải là sự đánh giá của khách hàng, người dùng cuối.

Để có thểđánh giá được chính xác, toàn diện, kiểm thử chức năng phải

được thực hiện trong một khoảng thời gian dài, với các bộ dữ liệu thực tế và thực hiện trong điều kiện thực tế.

Các phương pháp kiểm thửđơn vịđược áp dụng trong giai đoạn cài đặt các chức năng, mỗi khi một chức năng mới được tạo ra. Kiểm thử chức năng

được áp dụng chủ yếu trong giai đoạn đưa ra các kết quả, vì khi đó về cơ bản hệ thống đã có thể hoạt động được và các chức năng đã có thể tương tác với nhau.

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Phát triển phần mềm áp dụng các phương pháp Scrum và Extreme Programming (Trang 69 - 73)