Trong thời điểm hiện tại, khi mà nhu cầu về sử dụng phần mềm ngày càng nhiều và phức tạp hơn, thì yêu cầu tối ƣu kiểm thử trƣớc khi đƣa đến tay ngƣời sử dụng càng đòi hỏi cấp thiết hơn. Việc tự động hóa một phần quy trình kiểm thử sẽ giúp hỗ trợ các kiểm thử viên nâng cao năng suất lao động và chất lƣợng dự án. Tuy nhiên, chi phí cho các phần mềm kiểm thử thƣơng mại thƣờng rất cao, đôi khi làm cho dự án không có khả năng sinh lời. Vì thế việc tìm đến một công cụ kiểm thử mã nguồn mở là một lựa chọn sáng suốt. Một trong số những công cụ kiểm thử tự động, mã nguồn mở mạnh mẽ nhất hiện nay cho việc kiểm thử ứng dụng web là Selenium. Selenium gồm một bộ các công cụ hỗ trợ kiểm thử tự động tính năng của ứng dụng web là Selenium IDE, Selenium Remote Control (RC), Selenium Core và Selenium Grid. Bộ công cụ
này hoạt động tốt trên nhiều hệ điều hành và có thể thực thi kiểm tra trực tiếp trên nhiều trình duyệt web khác nhau [12]
a) Selenium IDE: Một ứng dụng mở rộng cho Mozilla Firefox. Công cụ này cung cấp chức năng “thu và chạy lại” (Record & Playback). Nhờ đó, tester có thể nhanh chóng tạo một kịch bản kiểm thử (test script) bằng cách trực tiếp “thu” các thao tác của mình trên đối tƣợng cần kiểm thử thành một tập những lệnh Selenese (ngôn ngữ kịch bản đƣợc dùng riêng cho Selenium IDE và Selenium Core, có dạng HTML). Sau đó chạy lại các câu lệnh này để kiểm thử. Chức năng này rất hữu dụng giúp tiết kiệm thời gian viết kịch bản kiểm thử. Senenium IDE còn cho phép lƣu kịch bản đã thâu dƣới nhiều loại ngôn ngữ lập trình khác nhau nhƣ PHP, Java, C#, Ruby, Perl hay Python.
b) Selenium RC: Công cụ này có thể nhận các test script đƣợc thu bƣởi selenium IDE, cho phép chỉnh sửa, cải tiến linh động bằng nhiều ngôn ngữ lập trình khác nhau. Sau đó khởi động một trong các trình duyệt web đƣợc chỉ định để thực thi kiểm thử trực tiếp trên trình duyệt đó. Selenium RC còn cung cấp khả năng lƣu lại kết quả kiểm thử.
c) Selenium Core: Đã đƣợc tích hợp trong Selenium IDE. Selenium Core là một công cụ chạy các kịch bản kiểm thử viết bằng Selenese. Thế mạnh của công cụ này là có thể chạy các kịch bản kiểm thử trên tất cả các trình duyệt, nhƣng lại yêu cầu đƣợc cài đặt trên máy chủ của website cần kiểm tra. Điều này là không thể khi các kiểm thử viên không có quyền truy cập đến máy chủ đó.
d) Selenium Grid: Thực hiện phƣơng pháp kiểm tra phân bổ, phối hợp nhiều Selenium RC để có thể thực thi trên nhiều trình duyệt khác nhau trong cùng một lúc. Cũng cho phép lƣu lại kết quả kiểm thử.
Một số đặc điểm cơ bản để so sánh Selenium với các công cụ khác
Selenium là một phần mềm mã nguồn mở, phải nói đây là điểm mạnh nhất của Selenium khi so sánh với các công cụ kiểm thử khác. Vì là mã nguồn mở nên chúng ta không cần phải lo lắng về phí bản quyền và hạn sử dụng.
Vì là mã nguồn mở nên Selenium có một cộng đồng hỗ trợ khá mạnh mẽ. Bên cạnh đó Google là nơi phát triển của Selenium nên chúng ta có thể yên tâm về sự hỗ trợ miễn phí khi có vấn đề về Selenium.
Selenium hỗ trợ nhiều ngôn ngữ lập trình nhƣ Java, Python, Ruby, C#, Perl, Groovy …
Selenium hỗ trợ chạy trên nhiều hệ điều hành khác nhau nhƣ Window, Linux, Unix và Macintosh
Chạy ca kiểm thử ở nền (background), vì vậy khi chúng ta thực hiện kịch bản kiểm thử , chúng ta hoàn toàn có thể làm việc khác trên cùng một máy tính.
Môi trƣờng phát triển kiểm thử có thể đƣợc phát triển trong nhiều trình soạn thảo nhƣ Eclipse, Visual Studio, Netbeans, ...
Đề tài này sẽ đi sâu vào nghiên cứu Selenium IDE (Integrated Development Environment), một công cụ phù hợp nhất cho ngƣời mới bắt đầu sử dụng Selenium. Cụ thể hơn là nghiên cứu 3 chức năng sau của Selenium IDE:
Tạo các ca kiểm thử
- Sử dụng chức năng [Record] trên thanh công cụ để ghi lại các hành động cần thiết có trong một kịch bản kiểm thử
- Sử dụng các câu lệnh hỗ trợ của Selenium để xác nhận kết quả nhƣ + verifyTitle/assertTitle,
+ verifyTextPresent + verifyElementPresent + verifyText
+ verifyTable
Thực hiện kiểm thử: Sử dụng chức năng [Play] trên thanh công cụ để thực hiện kịch bản kiểm thử.
Báo cáo kết quả kiểm thử: Xem kết quả kiểm thử sau khi hoàn thành việc thực hiện kiểm thử.