^Back To Top
Kiểm thử phần mềm là một hoạt động quan trọng nhằm đảm bảo chất lượng phần mềm. Để cải thiện tính chính xác, hiệu quả, giảm chi phí và rút ngắn thời gian trong quá trình kiểm thử phần mềm thì kiểm thử tự động là giải pháp hiệu quả và duy nhất.
Kiểm thử tự động là quá trình thực hiện một cách tự động các bước trong một kịch bản kiểm thử. Kiểm thử tự động bằng một công cụ nhằm rút ngắn thời gian kiểm thử. Mục đích của kiểm thử tự động là giảm thiểu thời gian, công sức và kinh phí trong khi vẫn tăng độ tin cậy, tăng tính hiệu quả và giảm sự nhàm chán cho người kiểm thử trong quá trình kiểm thử sản phẩm phần mềm.
Kiểm thử tự động sẽ được sử dụng khi dự án không đủ tài nguyên (thời gian, nhân lực và chi phí), phải thực hiện kiểm thử hồi quy khi sản phẩm được sửa đổi hoặc nâng cấp và cần kiểm thử lại các tính năng đã thực hiện tốt trước đó, kiểm tra khả năng vận hành của sản phẩm trong các môi trường đặc biệt (đo tốc độ xử lý trung bình ứng với mỗi yêu cầu, xác định khả năng chịu tải tối đa, xác định cấu hình tối thiểu để thực thi hệ thống, kiểm tra các cơ chế an ninh và an toàn).
Hình 2.1 mô tả kiến trúc chung nhất của một bộ kiểm thử tự động. Các công cụ cơ bản trong kiến trúc này bao gồm:
- Quản lý kiểm thử: Công cụ này cho phép quản lý việc thực hiện, thực thi các ca kiểm thử. Nó giám sát việc thực hiện từng ca kiểm thử ứng với bộ giá trị đầu vào, giá trị đầu ra mong muốn và giá trị đầu ra thực tế.
Hình 2.1. Kiến trúc chung của một bộ kiểm thử tự động
- Sinh các ca kiểm thử: đây là một trong những công cụ quan trọng nhất của các bộ kiểm thử tự động. Các giá trị này có thể được lựa chọn trong cơ sở dữ liệu hoặc được sinh một cách ngẫu nhiên.
- Sinh giá trị đầu ra mong muốn: Các ca kiểm thử được sinh ra bởi công cụ trên chỉ chứa các giá trị ứng với các biến đầu vào. Công cụ này cho phép sinh ra giá trị đầu ra mong muốn ứng với mỗi bộ dữ liệu đầu vào của mỗi ca kiểm thử.
- So sánh kết quả kiểm thử: Công cụ này so sánh giá trị đầu ra thực tế và giá trị đầu ra mong muốn của mỗi ca kiểm thử khi nó được thực hiện trên chương trình/đơn vị chương trình cần kiểm thử.
- Tạo báo cáo kiểm thử: Ưu điểm của các bộ công cụ kiểm thử tự động là nó có cơ chế sinh báo cáo kiểm thử một cách chính xác và nhất quán. Dựa vào kết quả của công cụ so sánh kết quả kiểm thử, công cụ này sẽ tự động sinh ra báo cáo kết quả kiểm thử theo định dạng mong muốn của đơn vị phát triển.
- Bộ mô phỏng: Có nhiều loại mình mô phỏng được cung cấp trong các bộ kiểm thử tự động. Mục đích của các công cụ này là mô phỏng quá trình thực hiện của chương trình cần kiểm thử. Ví dụ, các công cụ mô phỏng giao diện người dùng cho phép thực hiện tự động các tương tác giữa người dùng và sản phẩm.
- Độ tin cậy cao: Nhờ sự ổn định vượt trội của công cụ kiểm thử tự động so với các hoạt động thủ công của người kiểm thử, đặc biệt trong trường hợp có quá nhiều ca kiểm thử cần được thực thi, nên độ tin cậy của kiểm thử tự động thường cao hơn so với kiểm thử thủ công.
- Khả năng lặp: khi chúng ta thực thi một ca kiểm thử với nhiều bộ dữ liệu đầu vào khác nhau, chỉ cần nhập dữ liệu vào một tệp Excel hoặc một kịch bản (script) rồi cho công cụ thực hiện và ngồi nghỉ ngơi cho tới khi nhận được báo cáo kiểm thử từ công cụ này.
- Khả năng tái sử dụng: Với một bộ kiểm thử tự động, chúng ta có thể sử dụng cho nhiều phiên bản ứng dụng khác nhau, đây được gọi là tính tái sử dụng.
- Nhanh hơn kiểm thử thủ công.
- Chi phí thấp: Nếu áp dụng kiểm thử tự động đúng cách, chúng ta có thể tiết kiệm được rất nhiều chi phí, thời gian và nhân lực.
- Khó mở rộng, khó bảo trì: Trong cùng một dự án, để mở rộng phạm vi cho kiểm thử tự động là khó hơn nhiều so với kiểm thử cách thủ công. Số lượng công việc phải làm để mở rộng phạm vi cho kiểm thử tự động là nhiều hơn và khó hơn kiểm thử thủ công.
- Khả năng bao phủ thấp: Xét trên góc nhìn toàn dự án, chính vì việc khó ứng dụng, khó mở rộng, cũng như đòi hỏi quá nhiều kỹ năng lập trình nên độ bao phủ của kiểm thử tự động khá thấp.
- Vấn đề công cụ và nhân lực: Cho đến nay công cụ hỗ trợ kiểm thử tự động đã có những bước phát triển mạnh mẽ. Tuy nhiên, chưa có một bộ công cụ đủ tốt để đáp ứng các yêu cầu kiểm thử và đảm bảo chất lượng hiện nay.
Load Runner giả lập một môi trường ảo gồm nhiều người dùng thực hiện các giao dịch cùng một lúc nhằm giám sát các thông số xử lý của phần mềm cần kiểm thử. Kết quả thống kê sẽ được lưu lại và cho phép kiểm thử viên thực hiện phân tích nhằm kiểm thử khả năng chịu tải và các yêu cầu phi chức năng khác của sản phẩm.
Apache Jmeter là một ứng dụng mã nguồn mở, phát triển hoàn toàn trên Java, được thiết kế để kiểm thử khả năng chịu tải và kiểm thử hiệu năng cho các ứng dụng web. Công cụ này hỗ trợ kiểm thử hiệu năng của các mã nguồn được viết bằng ngôn ngữ khác nhau như Java, PHP, ASP.Net. Ngoài ra, nó có thể kiểm tra hiệu năng cả tĩnh và động. Công cụ này hỗ trợ giao diện đồ họa giúp phân tích tốt hiệu suất khi kiểm thử đồng thời nhiều ca kiểm thử.
NUnit là một framework kiểm thử đơn vị cho tất cả ngôn ngữ .Net. Ban đầu Nunit được chuyển từ công cụ Junit. Phiên bản mới nhất mà Nunit đang được sử dụng hiện nay là phiên bản 3.0. phiên ban này được viết lại hoàn toàn với nhiều tính năng mới và hỗ trợ cho một loạt các nền tảng .NET. Nunit là một bộ công cụ miễn phí và được viết hoàn toàn bằng C#. Hiện nay, Nunit đã được tích hợp trong các phiên bản Visual Studio của Microshoft và hỗ trợ đắc lực cho quá trình kiểm thử.
CFT4Cunit (Control Flow Testing for C Unit) là một bộ công cụ kiểm thử tự động mã nguồn mở, được viết bằng ngôn ngữ Java. Công cụ này tự động hóa các bước trong quy trình kiểm thử dòng điều khiển. Đầu vào của công cụ này là các hàm/đơn vị chương trình viết bằng ngôn ngữ C và độ đo cần kiểm thử. Công cụ sẽ xây dựng đồ thị dòng dữ liệu ứng với độ đo này, hiển thị đồ thị luồng điều khiển một cách trực quan và sinh ra các ca kiểm thử tương ứng. Các ca kiểm thử được sinh ra sẽ được xuất ra một tệp nhằm giúp cho kiểm thử viên thêm giá trị đầu ra mong muốn vào mỗi ca kiểm thử. Khi kiểm thử viên làm việc với mỗi ca kiểm thử, công cụ cho phép làm nổi bật dòng điều khiển của đơn vị chương trình ứng với ca kiểm thử này nhằm trợ giúp trong việc sinh giá trị đầu ra mong muốn một cách chính xác. Cuối cùng, công cụ cho phép thực hiện các ca kiểm thử và tạo ra báo cáo kiểm thử.
[1] http://doan.edu.vn/do-an/tim-hieu-ve-corba-21555/
[2] Hoàng Văn Dũng - Ứng dụng RMI vào hệ thống ngân hàng – 2011
[3] http://vi.scribd.com/doc/138885023/EJB