Selenium được biết đến là một công cụ kiểm thử tự động các ứng dụng Web, có thể kiểm thử trên nhiều trình duyệt, hỗ trợ nhiều ngôn ngữ lập trình, giao tiếp được với các công cụ kiểm thử
Trang 1TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN Môn : Kiểm thử và đảm bảo chất lượng phần mềm
Họ và Tên : Phạm Khánh Dư
MSV: 2121051209
Trang 2LỜI MỞ ĐẦU
1 Lí do chọn đề tài
Trong giai đoạn phát triển của công nghệ thông tin, ngành công nghệ phần mềm đang chiếm một vị trí hết sức quan trọng trong xu hướng phát triển kinh tế công nghiệp hóa, hiện đại hóa của nước ta Cùng với sự phát triển ấy là những yêu cầu, thách thức về việc đảm bảo chất lượng phần mềm cũng ngày một tăng cao Từ đó, kiểm thử phần mềm ra đời nhằm nâng cao chất lượng cũng như tăng tính chuyên nghiệp của dự án Nhưng thực tế cho thấy, kiểm thử phần mềm là giai đoạn chiếm đến hơn 40% thời gian, kinh phí và nhân lực trong quá trình phát triển dự án phần mềm
Ngày nay, việc tự động hóa đang được đưa vào nhiều lĩnh vực, trong đó côngnghệ phần mềm nói chung và kiểm thử phần mềm nói riêng đều không phải ngoại lệ Do việc kiểm thử thủ công tiêu tốn một lượng không nhỏ thời gian, kinh phí, nhân lực nên sự ra đời của các công cụ kiểm thử tự động như: Quick Test Professional, NUnit, JUnit, LoadRunner, là điều tất yếu Trong cáccông cụ kiểm thử tự động, không thể không nhắc đến Selenium Selenium được biết đến là một công cụ kiểm thử tự động các ứng dụng Web, có thể kiểm thử trên nhiều trình duyệt, hỗ trợ nhiều ngôn ngữ lập trình, giao tiếp được với các công cụ kiểm thử khác như Junit, TestNG (với Java) hay Nunit (với C#)
và đặc biệt công cụ này là một bộ mã nguồn mở, do đó các tổ chức không cần tốn kinh phí mua bản quyền
Với mong muốn có cái nhìn xác thực, rõ ràng hơn về quy trình kiểm thử phần mềm, đảm bảo chất lượng phần mềm và tiếp cận với công cụ kiểm thử
tự động Selenium em chọn đề tài “Ứng dụng Selenium trong kiểm thử website”
Trang 32 Mục tiêu
Đề tài được thực hiện nhằm mục đích tìm hiểu tổng quan phần mềm, kiểm thử tự động phần mềm, đặc biệt là kiểm thử tự động Website và các phương phápkiểm thử Tập trung nghiên cứu vai trò, phương pháp cũng như ứng dụng của Selenium Webdriver trong việc kiểm thử Website Từ đó, thực hiện phân tích, xây dựng các trường hợp kiểm thử cho các chức năng của một website Sử dụng ngôn ngữ lập trình Java tạo các test script từ trường hợp kiểm thử để kiểm tra khả năng thực hiện đúng và đủ của từng chức năng Từ kết quả kiểm thử đánh giá được chất lượng của Website đó
3 Phạm vi và cấu trúc đề tài
Để thực hiện được các mục tiêu của đề tài, các công việc cần được quan tâm
đó là: Tìm hiểu tổng quan về kiểm thử phần mềm nói chung và kiểm thử tự độngứng dụng Web nói riêng
Tìm hiểu về vai trò của kiểm thử tự động trong kiểm thử phần mềm Các công cụ hỗ trợ kiểm thử phần mềm
Tìm hiểu về Selenium, hoạt động, ưu nhược điểm và cách sử dụng Selenium Webdriver Ứng dụng của nó trong kiểm thử một website
Thực hiện phân tích xây dựng bộ các trường hợp kiểm thử từ đó tạo các testscript để thực hiện các trường hợp kiểm thử nhằm phát hiện lỗi, xây dựng báo
cáo kiểm thử
4 Bố cục báo cáo
Báo cáo được trình bày trong bốn chương, cụ thể như sau:
Chương 1: Tổng quan về phần mềm và kiểm thử phần mềm
Trang 4Chương này giới thiệu tổng quan về phần mềm, kiểm thử phần mềm, nêu lênvai trò kiểm thử trong quá trình phát triển dự án phần mềm và quy trình kiểm thửphần mềm tự động Đồng thời tập trung tìm hiểu việc kiểm thử tự động ứng dụngWeb, các bước kiểm thử và lựa chọn công cụ kiểm thử phù hợp – Selenium IDE
Từ đó đi sâu vào tìm hiểu công cụ Selenium IDE về vai trò, ưu nhược điểm cũng như các đặc mà công cụ hỗ trợ
Chương 2: Giới thiệu về kiểm thử website và bộ công cụ Selenium IDE
Chương này trình bày chi tiết các khái niệm về kiểm thử ứng dụng Web, các công việc khi kiểm thử ứng dụng Web, giới thiệu một số công cụ hỗ trợ kiểmthử ứng dụng web Giới thiệu Website bán hàng
Chương 3: Ứng dụng Selenium vào kiểm thử Website
Đi vào xây dựng kịch bản kiểm thử cho các chức năng chính của website Đồng thời, đưa ra giải pháp giải quyết bài toán kiểm thử tự động ứng dụng Web, quy trình thực thi kiểm thử tự động và đưa ra báo cáo cho kết quả kiểm thử
Trang 5CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1 Tổng quan về phần mềm
Phần mềm được hiểu là tập hợp các chức năng có mối liên hệ chặt chẽ với nhau, giữ vai trò thực hiện một số nhiệm vụ, chức năng nào đó trên thiết bị điện tử Các tập tin này có thể bao gồm: các file mã nguồn được viết bằng một hoặc kết hợp nhiều ngôn ngữ lập trình khác nhau, các file dữ liệu, các file hướng dẫn …
Thực hiện các chức năng bằng cách gửi các chỉ thị đến Hardware (Phần cứng) hoặc cung cấp dữ liệu để phục vụ các chương trình và phần mềm khác nhau.Có thể tự động hoặc thực hiện theo các thông tin, dữ liệu đầu vào khi thực thi nhiệm vụ Phần mềm muốn thực thi được phải có phần cứng đi kèm như: máy tính, các thiết bị điện tử…
b Kiểm thử phần mềm là gì?
Kiểm thử phần mềm là quá trình thực thi 1 chương trình với mục đích tìm ralỗi
Kiểm thử phần mềm đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy
đủ và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đề đã đặt ra
Kiểm thử phần mềm cũng cung cấp mục tiêu, cái nhìn độc lập về phầnmềm, điều này cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi testKiểm thử phần mềm tạo điều kiện cho bạn tận dụng tối đa tư duy đánh giá và sáng tạo để bạn có thể phát hiện ra những điểm mà người khác chưa
2.Các mức kiểm thử
Unit Testing( kiểm thử đơn vị)
Trang 6Unit Testing là một mức kiểm thử phần mềm với mục đích để xác nhận từng unit của phần mềm được phát triển đúng như được thiết kế Unit
testing là mức test nhỏ nhất trong bất kỳ phần mềm nào các hàm
(Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức
(Method) đều có thể được xem là Unit Nó thường có một hoặc vài đầu vàonhưng đầu ra là duy nhất
Mục đích:
Tăng sự đảm bảo khi có sự thay đổi mã
Code dễ sử dụng, dễ hiểu, có thể tái sử dụng nhiều hơn
Phát triển nhanh hơn
Chi phí sửa lỗi thấp hơn so với các mức kiểm thử giai đoạn sau
Debug dễ dàng
Integration Testing( Kiểm thử tích hợp)
Kiểm thử tích hợp là một mức của kiểm thử phần mềm kiểm tra một nhóm các module nhỏ liên quan đến nhau xem chúng có hoạt động đúng chức năng như trong thiết kế hay không Theo ISTQB( International
Software Testing Qualifications Board):
Kiểm thử tích hợp được thực hiện để phát hiện các lỗi về giao diệnhoặc trong tương tác giữa các thành phần hoặc hệ thống tích hợp
Kiểm thử tích hợp thành phần: kiểm tra sự tương tác giữa các thànhphần với điều kiện các thành phần đã pass ở phần kiểm thử thành phầntrước đó
Kiểm thử tích hợp hệ thống: kiểm tra sự tương tác giữa các hệ thốngcon khác nhau và các hệ thống này đã pass ở lần kiểm thử trước đó
Trang 7Mục đích: Kiểm tra sự tích hợp 1 nhóm các thành phần riêng lẻ có liên quan xem chúng có hoạt động đúng như mong đợi hay không.
System Testing( Kiểm thử hệ thống)
Kiểm thử hệ thống là một mức của kiểm thử phần mềm Giai đoạn này
sẽ hoàn thiện và hợp nhất phần mềm để kiểm thử Theo ISTQB định nghĩa:quy trình của kiểm thử tích hợp hệ thống để xác nhận xem hệt hống phần mềm có đáp ứng đúng theo đặc tả yêu cầu
Mục đích: để đánh giá sự hoạt động của hệ thống có đúng theo như tài liệu đặc tả
Acceptance Testing( Kiểm thử chấp nhận)
Theo ISTQB định nghĩa: Kiểm thử chấp nhận chính thức liên quan đến yêu cầu và quy trình kinh doanh để xác định liệu hệ thống có đáp ứng tiêu chí chấp nhận hay không và cho phép người dùng, khách hàng hoặc tổ chứcđược ủy quyền khác xác định có chấp nhận hệ thống hay không
Mục đích: Đảm bảo phần mềm đáp ứng đúng yêu cầu của khách hàng Sản phẩm nhận được sự chấp nhận từ khách hàng/ người dùng cuối
Trang 8a Các kĩ thuật kiểm thử
i Kiểm thử hộp đen.
Kiểm thử hộp đen là một phương pháp kiểm thử mà các tester không cầnquan tâm đến các hoạt động bên trong hệ thống chạy ra sao, không cần quan tâm đến các dòng lệnh bên trong hệ thống hệ thống như thế nào mà chỉ cần tập trung vào các giá trị đầu vào và các giá trị đầu ra của hệ thống
có đúng với kết quả mong đợi của các trường hợp kiểm thử không để từ đó đánh giá chất lượng hệ thống
Chính vì cơ chế như vậy nên phương pháp này có các ưu nhược điểm như sau:
Trang 9Ưu điểm Nhựợc điểm
- Rất phù hợp và hiệu quả khi mà
- Phân biệt được rõ ràng quan
điểm của người dùng với quan
điểm của nhà phát triển
- Độ bao phủ sẽ bị thiếu vì tester không kiểm tra được các đoạn lệnh của hệ thống hoặc tập trung vào các dòng lệnh dễ xảy ra lỗi
- Không cần đòi hỏi những kiến
thức về ngôn ngữ lập trình ở các
tester để có thể kiểm thử hệ thống
- Sẽ khó để có thể thiết kế đầy đủ các trường hợp kiểm thử
Các loại kỹ thuật kiểm thử hộp đen:
- Phân vùng tương đương (Equivalence Partition)
- Phân tích giá trị biên (Boundary Value Analysis)
- Bảng quyết định (Decision Table)
- Đoán lỗi (Error Guessing)
a Phân vùng tương đương (Equivalence partitioning):
Chia đầu vào thành những nhóm tương đương nhau Nếu 1 giá trị đại diện trong nhóm hoạt động đúng thì tất cả giá trị trong nhóm đó cũng hoạt động đúng và ngược lại
Mục đích của phương pháp này là giảm đáng kể số lượng test case phải thiết
kế vì với mỗi lớp tương đương ta chỉ cần test trên các phần tử đại diện
Trang 10Thiết kế test case theo phương pháp này được thực hiện thông qua 2 bước: xác định lớp tương đương và các ca kiểm thử
b Phân tích giá trị biên (Boundary values analysis):
Là phương pháp test mà tester test tất cả các giá trị ở vùng biên của dữ liệu đầu vào và đầu ra (chỉ tập trung vào các giá trị biên chứ không test toàn bộ
dữ liệu) Thay vì chọn nhiều giá trị trong lớp tương đương để làm giá trị đại diện, phân tích biên yêu cầu chọn 1 hoặc 1 vài giá trị là biên của lớp tương đương để làm điều kiện test
Các giá trị biên được chọn test thường gồm 5 giá trị: Giá trị nhỏ nhất (GTNN), Giá trị ngay dưới GTNN, Giá trị bình thường, Giá trị lớn nhất (GTLN) và giá trị ngay trên GTLN
c Phương pháp bảng quyết định (Decision table):
Phương pháp bảng quyết định dùng trong trường hợp kiểm thử hành vi hệ thống với nhiều trường dữ liệu, bảng quyết định sẽ giúp người kiểm thử phân loại và định hình được kịch bản kiểm thử một cách chính xác, logic.Phương pháp này là kỹ thuật quyết định số test case tối thiểu với độ bao phủtối đa
Các bước để tạo bảng quyết định: Liệt kê các Condition/Input, Tính số lượng kết hợp có thể, Đưa tất cả các kết hợp vào trong bảng Số cột của bảng diễn tả mọi điều kiện bằng 2 lũy thừa của số điều kiện (ví dụ có 2 điều kiện thì có 2 mũ 2 = 4 cột)
d Phương pháp đoán lỗi (Error Guessing):
Đoán lỗi là kỹ thuật dựa vào kinh nghiệm của Tester chứ không có luật rõ ràng như các kỹ thuật trên Với các tester có kinh nghiệm thì họ có thể phỏng đoán các lỗi đã xảy ra với các chương trình trước đó để viết testcase phù hợp Những kỹ thuật như vậy không có bất kỳ quy tắc nào để quyết định và hoàn toàn dựa trên kinh nghiệm
ii Kiểm thử hộp trắng.
Kiểm thử hộp trắng là việc nghiên cứu cụ thể chi tiết từng luồng hoạt động cũng như các dòng lệnh bên trong hệ thống Kiểm thử hộp trắng cũng
Trang 11được gọi dưới các cái tên khác như: Glass testing hay open-box testing Kiểm thử hộp trắng đòi hỏi tester phải có kiến thức về ngôn ngữ lập trình Tester sẽ cần phải nghiên cứu vào bên trong hê thống cụ thể là các dòng lệnh để tìm hiểu chúng có chạy đúng hay không.
Dưới đây là các ưu nhược điểm của phương pháp này:
- Đối với những tester có kiến thức về
- Giúp tối ưu hóa các dòng lệnh của
- Các dòng lệnh không cần thiết hoặc
các dòng lệnh có khả năng mang đến
các lỗi tiềm ẩn sẽ bị loại bỏ
- Rất khó để duy trì phương pháp này liên tục, cần phải có những tool chuyên biệt như tool về phân tích codehay tool về phát hiện lỗi và sửa lỗi
- Các tester có kiến thức về ngôn ngữ
lập trình sau khi đã thực hiện phương
pháp này thì sẽ dễ dàng đạt được độ
bao phủ lớn nhất khi thực hiện thiết
kế các trường hợp kiểm thử sau này
Trang 12CHƯƠNG 2 GIỚI THIỆU VỀ KIỂM THỬ TỰ ĐỘNG VÀ
CÔNG CỤ KIỂM THỬ SELENIUM IDE
1 Kiểm thử tự động
a Khái niệm kiểm thử tự động
Kiểm thử tự động là thực hiện kiểm thử phần mềm một cách tự động các bước trong một kịch bản kiểm thử bằng một chương trình đặc biệt với rất ít hoặc không có
sự tương tác của con người, giúp cho người thực hiện việc kiểm thử phần mềm không phải lặp đi lặp lại các bước nhàm chán.
Công cụ kiểm thử tự động có thể lấy dữ liệu từ file bên ngoài (Excel, csv…) nhập vào ứng dụng, so sánh kết quả mong đợi (từ file Excel, csv…) với kết quả thực tế
và xuất ra báo cáo kết quả kiểm thử.
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, kiểm tra các cơ chế an ninh và an toàn, ).
b Quy trình kiểm thử tự động
Quy trình kiểm thử tự động gồm các bước sau:
Lập kế hoạch kiểm thử
Thiết kế test case
Phát triển test script
Thực hiện kiểm thử
Đánh giá kết quả kiểm thử
Trang 13Mục đích: Nhằm chỉ định và mô tả các loại kiểm thử sẽ được triển khai và thực hiện.
Kết quả của bước lập kế hoạch là bản tài liệu kế hoạch kiểm thử phần mềm, bao gồm:
Các giai đoạn kiểm thử áp dụng cho dự án phần mềm
Chiến lược kiểm thử
Các công cụ kiểm thử
Nguồn lực kiểm thử
Môi trường kiểm thử, bao gồm tài nguyên phần cứng và phần mềm
Mốc bàn giao các tài liệu kiểm thử
Thiết kế Test case
Mục đích: Nhằm xác định các test case và các bước kiểm tra chi tiết cho mỗi phiên
bản phần mềm Giai đoạn thiết kế test case là hết sức quan trọng, nó bảo đảm tất cả các tình huống kiểm thử “quét” hết tất cả yêu cầu cần kiểm tra.
Phát triển Test Script
Mục đích: Bước này thường không bắt buộc trong các loại và mức kiểm thử, chỉ yêu
cầu trong những trường hợp đặc thù cần thiết kế, tạo ra các test script có khả năng chạy trên máy tính giúp tự động hóa việc thực thi các bước kiểm tra đã định nghĩa ở bước thiết kế test case.
Trong đó, một test script được hiểu là một nhóm mã lệnh dạng đặc tả kịch bản dùng để
tự động hóa một trình tự kiểm thử, giúp cho việc kiểm thử nhanh hơn, hoặc cho những trường hợp mà kiểm thử bằng tay sẽ rất khó khăn hoặc không khả thi Các test script
có thể tạo thủ công hoặc tạo tự động dùng công cụ kiểm thử tự động.
Mục đích: Thực hiện các bước kiểm tra đã thiết kế hoặc thực thi các test script nếu
tiến hành kiểm tra tự động và ghi nhận kết quả.
Đánh giá kết quả kiểm thử
Mục đích: Đánh giá toàn bộ quá trình kiểm thử, bao gồm xem xét và đánh giá kết quả
Trang 14kiểm thử, liệt kê lỗi, chỉ định các yêu cầu thay đổi, và tính toán các số liệu liên quan đến quá trình kiểm thử như số giờ, thời gian kiểm thử, số lượng lỗi, phân loại lỗi…
c So sánh kiểm thử tự động và kiểm thử thủ công
Ưu điểm:
Độ tin cậy cao (Reliability): Nhờ sự ổn định vượt trội của công cụ kiểm thử tự động so với con người, đặc biệt trong trường hợp có quá nhiều test case 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 (Repeatability): công cụ kiểm thử tự động ra đời là để giúp cho các tester không phải lặp đi lặp lại các thao tác như: nhập dữ liệu, click, check kết quả… một cách nhàm chán với độ tin cậy và ổn định cao.
Khả năng tái sử dụng dụng (Reusability): với một bộ kiểm thử tự động, người 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.
Tốc độ cao (Fast): do thực thi bởi máy nên tốc độ của kiểm thử tự động nhanh hơn nhiều so với tốc độ của con người Nếu cần 5 phút để thực thi một test case một cách thủ công thì có thể người ta chỉ cần khoảng 30 giây để thực thi một cách tự động.
Chi phí thấp (Cost Reduction): nếu áp dụng kiểm thử tự động đúng cách, người
ta có thể tiết kiệm được nhiều chi phí, thời gian và nhân lực, do kiểm thử tự động nhanh hơn nhiều so với kiểm thử thủ công, đồng thời nhân lực cần để thực thi và bảo trì scripts không nhiều.
Nhược điểm:
Khó mở rộng, khó bảo trì (Poor scalability and maintainability): Trong cùng một
dự án, để mở rộng phạm vi cho kiểm thử tự động khó hơn nhiều so với kiểm thử 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 Cũng vậy, để cập nhật một test case thủ công, người ta chỉ cần mở ra và gõ, rất đơn giản Nhưng kiểm thử tự động lại không đơn giản như vậy, cập nhật hay chỉnh sửa yêu cầu rất
Trang 15nhiều công việc như debug, thay đổi dữ liệu đầu vào, và cập nhật code mới.
Khả năng bao phủ thấp (Low coverage): do khó ứng dụng, khó mở rộng
và đòi hỏi 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 (Technology vs people issues): hiện nay cũng có nhiều công cụ hỗ trợ kiểm thử tự động khá tốt nhưng chúng vẫn còn nhiều hạn chế Ngoài ra nguồn nhân lực có thể sử dụng thành thạo các công cụ này cũng không nhiều.
Hỗ trợ các tệp tin selenium user-extensions.js.
Tự động hoàn chỉnh cho tất cả các lệnh Selenium thường gặp.
Selenium thuận lợi hơn QTP về mặt chi phí và tính linh hoạt Nó cũng cho phép bạn chạy kiểm thử song song, không giống như trong QTP, nơi bạn chỉ được phép chạy thử nghiệm theo tuần tự.
b) Hạn chế:
Selenium chỉ hỗ trợ những ứng dụng web
Các ứng dụng trên mobile không thể sử dụng selenium.
Selenium là tool miễn phí, do đó không có hỗ trợ từ nhà cung cấp mặc dù có thể tìm thấy giúp đỡ từ đông đảo cộng đồng sử dụng Selenium.
Người sử dụng cần có kiến thức về ngôn ngữ lập trình
d Một số công cụ kiểm thử tự động phổ biến
Trang 16 Visual Studio
2 Công cụ kiểm thử tự động Selenium và Selenium ID
a Khái quát về Selenium
Selenium(SE) là một phần mềm nguồn mở, được phát triển ban đầu bởi nhóm ThoughtWorks vào năm 2004 tại Chicago, là một công cụ kiểm tra tự động các ứng dụng web, nó có thể chạy trên hầu hết các trình duyệt và hệ điều hành: Windows, Linux, Mac… hỗ trợ hầu hết các ngôn ngữ lập trình web như: C#, Java, Perl, PHP, Python, Ruby…
Selenium là một bộ kiểm thử tự động mã nguồn mở miễn phí cho các ứngweb trên các trình duyệt và nền tảng khác nhau Nó khá giống với HPQuick Test Pro (QTP bây giờ là UFT) chỉ khác là Selenium thì tập trungvào việc tự động hóa các ứng dụng dựa trên nền tảng web Kiểm thử đượcthực hiện bằng cách sử dụng công cụ Selenium được gọi là Kiểm thửSelenium
Selenium được thiết kế giống như một cách để hỗ trợ và khuyến khíchkiểm thử tự động về mặt chức năng của ứng dụng dạng web và một loạt cáctrình duyệt, nền tảng Do Selenium sử dụng mã nguồn mở nên nó trở thànhmột trong những tools được chấp nhận sử dụng nhiều nhất của các chuyêngia kiểm thử
Selenium hỗ trợ nhiều trình duyệt, kỹ năng và nền tảng
b Thành phần của selenium
Selenium không phải một tool hay một tiện ích đơn thuần, hơn thế nó là một package – gói – với một vài tool test, do đó nó giống một bộ hơn Mỗi tool được thiết kế nhằm phục vụ các mục đích kiểm thử khác nhau và các yêu cầu về môi trường kiểm thử Gói phần mềm bao gồm các tool sau:
Selenium Integrated Development environment (IDE) : một tiện ích bổ sung của Firefox (hiện nay có cả Chrome) mà bạn chỉ có thể sử dụng trong việc tạo ra các trường hợp thử nghiệm tương đối đơn giản và bộ phần mềm thử nghiệm.
Selenium Remote Control (RC) : (hay còn gọi là Selenium 1) là công cụ Selenium đầu tiên cho phép người dùng sử dụng các ngôn ngữ lập trình để tạo các kiểm thử phức tạp.