Dưới đây là một sốmối quan hệ chính giữa quy trình phát triển phần mềm và kiểm thử: -Liên kết với quy trình phát triển phần mềm: Kiểm thử là một phần quan trọng của quy trình phát triể
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN
-*** -BÀI TẬP LỚN KIỂM THỬ PHẦN MỀM
ĐỀ TÀI:
KIỂM THỬ TỰ ĐỘNG MỘT SỐ CHỨC NĂNG WEBSITE SPOTIFY
Giảng viên hướng dẫn : Nguyễn Thị Thanh
Sinh viên thực hiện : Ngô Đình Mạnh
Hà Nội: 04/05/2024
Trang 2LỜI MỞ ĐẦU 5
CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM 6
1 Tổng quan về phần mềm 6
1.1 Phần mềm là gì? 6
1.2 Quy trình phát triển phần mềm 6
1.3 Mối quan hệ phần mềm với kiểm thử phần mềm 7
2 Tổng quan về kiểm thử phần mềm 8
2.1 Kiểm thử phần mềm là gì? 8
2.2 Vai trò kiểm thử phần mềm 8
2.3 Các thuật ngữ liên quan kiểm thử phần mềm 9
2.4 Các mức độ kiểm thử phần mềm 9
2.5 Các kỹ thuật kiểm thử phần mềm 10
CHƯƠNG 2: TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG VÀ CÔNG CỤ KIỂM THỬ SELENIUM IDE 13
1 Tổng quan về kiểm thử tự động 13
1.1 Khái niệm 13
1.2 Quy trình kiểm thử tự động 14
1.3 Mục đích của kiểm thử tự động 14
1.4 Kiểm thử tự động khi nào? 14
1.5 Một số công cụ kiểm thử tự động phổ biến 15
2 Tổng quan về công cụ kiểm thử Selenium 15
2.1 Selenium là gì? 15
2.2 Các thành phần của Selenium 16
2.3 Một số ưu điểm và hạn chế của Selenium 17
CHƯƠNG 3: GIỚI THIỆU TRANG WEB SPOTIFY 18
Trang 33.1 Spotify là gì? 18
18
3.2 Các chức năng của trang web Spotify 19
3.2.1 Chức năng đăng nhập 19
3.2.2 Chức năng đăng kí 20
3.2.3 Chức năng tìm kiếm 22
3.2.4 Chức năng playlist 23
CHƯƠNG 4: THIẾT KẾ CA KIỂM THỬ 23
4.1 Chiến lược kiểm thử 23
4.1.1 Các loại kiểm thử 23
4.2 Thiết kế test case 24
4.2.1 Chức năng đăng nhập 24
4.2.2 Chức năng đăng kí 25
4.2.3 Kiểm thử chức năng tìm kiếm 27
KẾT LUẬN 29
Trang 4để nâng cao kỹ năng chuyên môn cho bản thân.
Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến cô Nguyễn Thị Thanh người đã tận tìnhcung cấp tài liệu, kiến thức cho chúng em trong suốt quá trình thực hiện đề tài này
Trong quá trình làm đề tài, do thời gian có hạn và trình độ kiến thức, kinh nghiệm cònhạn chế nên chắc chắn không tránh khỏi những thiếu sót Em rất mong nhận được sựgóp ý cô để em có thể học hỏi thêm nhiều điều, hoàn thiện hơn bài báo cáo của mìnhcũng như hoàn thành tốt hơn các bài báo cáo sắp tới
Em xin chân thành cảm ơn!
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM.
1 Tổng quan về phần mềm
1.1 Phần mềm là gì?
Phần mềm hay còn được gọi là phần mềm, là thuật ngữ chỉ mọi loại chương trình, ứngdụng, hoặc dữ liệu được thiết kế và phát triển để thực hiện các tác vụ cụ thể trên máytính hoặc các thiết bị điện tử khác Trái ngược với phần cứng, mà bạn có thể chạm vào
và cảm nhận được, Phần mềm chỉ tồn tại dưới dạng mã số hoặc dữ liệu, được lưu trữtrên ổ cứng, thẻ nhớ, hoặc được phát trực tuyến từ internet
Phần mềm được phát triển bởi các lập trình viên thông qua quá trình viết và kiểm thử mãnguồn, sử dụng các ngôn ngữ lập trình như Java, Python, C++, hoặc Swift Quá trìnhnày yêu cầu một sự hiểu biết sâu sắc về lập trình, logic toán học, và nhu cầu của ngườidùng, cũng như khả năng giải quyết vấn đề phức tạp
1.2 Quy trình phát triển phần mềm.
Một quy trình phát triển phần mềm thông thường sẽ gồm 6 giai đoạn chính sau:
Lên kế hoạch và phân tích yêu cầu - Analysis
Các mô hình nhiều phiên bản (Multi-version models)
Mô hình mẫu (Prototype)
Mô hình tiến hóa (Evolutionary)
Mô hình lặp và tăng dần (Iterative and Incremental)
Mô hình phát triển ứng dụng nhanh (RAD)
Mô hình xoắn ốc (Spiral)
Trang 61.3 Mối quan hệ phần mềm với kiểm thử phần mềm.
Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử là rất chặt chẽ và tươngtác Cả hai đều là các hoạt động quan trọng trong quy trình phát triển phần mềm và đềuhướng đến mục tiêu chung là sản phẩm phần mềm chất lượng cao Dưới đây là một sốmối quan hệ chính giữa quy trình phát triển phần mềm và kiểm thử:
-Liên kết với quy trình phát triển phần mềm: Kiểm thử là một phần quan trọng
của quy trình phát triển phần mềm và thường được tích hợp vào các chu trình pháttriển như: Agile, Waterfall, hoặc DevOps Trong mỗi chu trình, các hoạt độngkiểm thử được lập kế hoạch và triển khai song song với các hoạt động phát triển
-Phản hồi và cải tiến liên tục: Kiểm thử cung cấp phản hồi quan trọng cho quá
trình phát triển phần mềm Kết quả từ việc kiểm thử giúp các nhà phát triển hiểu
về chất lượng và tính chính xác của sản phẩm, từ đó họ có thể điều chỉnh hoặc cảithiện mã nguồn để đạt được kết quả tốt hơn
-Xác định yêu cầu và tiêu chí chấp nhận: Trong quy trình phát triển phần mềm,
các yêu cầu và tiêu chí chấp nhận được xác định từ đầu Các test case sau đó đượcphát triển dựa trên những yêu cầu này để đảm bảo rằng phần mềmđáp ứng đượcnhững yêu cầu này
-Kiểm thử hỗ trợ phát triển: Trong quy trình phát triển phần mềm, kiểm thử
cung cấp một cơ chế để đảm bảo rằng mãnguồn được phát triển đúng cách Việcviết test case trước khi triển khai mã nguồn (TDD) có thể thúc đẩy thiết kế tốt hơn
và giúp phát triển mã nguồn có chất lượng cao hơn
-Bảo đảm chất lượng sản phẩm: Kiểm thử là một phần quan trọng của quy trình
đảm bảo chất lượng phần mềm (QA -Quality Assurance) Các hoạt động kiểm thửnhư kiểm thử đơn vị, kiểm thử hệ thống và kiểm thử tích hợp giúp đảm bảo rằngphần mềm được phát triển đáp ứng được các tiêuchuẩn chất lượng và yêu cầu củakhách hàng
Tóm lại, quy trình phát triển phần mềm và kiểm thử là haiphần không thể thiếu và tươngtác chặt chẽ trong việc tạo racác sản phẩm phần mềm chất lượng Sự liên kết và phốihợpgiữa chúng giúp đảm bảo rằng sản phẩm phần mềm cuối cùngđáp ứng được yêu cầucủa khách hàng và có chất lượng cao
Trang 72 Tổng quan về kiểm thử phần mềm.
2.1 Kiểm thử phần mềm là gì?
Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm và phát hiện ra cáclỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và đầy đủ theo yêu cầu củakhách hàng, yêu cầu của sản phẩm đã đặt ra Software testing cũng cung cấp mục tiêu,cái nhìn độc lập về phần mềm điều này cho phép đánh giá và hiểu rõ các rủi ro khi thựcthi phần mềm Các phương pháp kiểm thử phần mềm:
Kiểm thử hộp trắng (white box testing): Trong kiểm thử hộp trắng cấu trúc mã,
thuật toán được đưa vào xem xét Người kiểm thử truy cập vào mã nguồn củachương trình để có thể kiểm tra nó
Kiểm thử hộp đen (black box testing) : Kiểm tra các chức năng của hệ thống
dựa trên bản đặc tả yêu cầu
Kiểm thử hộp xám (gray box testing): Là sự kết hợp giữa black box testing và
white box testing
2.2 Vai trò kiểm thử phần mềm.
Vai trò của kiểm thử phần mềm là vô cùng quan trọng trongquy trình phát triển phầnmềm và có ảnh hưởng đến nhiều khíacạnh khác nhau của dự án Dưới đây là một số vaitrò chính củakiểm thử phần mềm:
Giảm thiểu rủi ro: Một trong nhiều rủi ro lớn trong quá trình phát triển phần
mềm mà nhà đầu tư không bao giờ mong muốn gặp phải là lỗi Khi một phầnmềm được hoàn thiện và đưa vào sử dụng mới phát hiện ra lỗi, không chỉ thờigian, công sức, tiền bạc mà uy tín của nhà sản xuất cũng bị ảnh hưởng Vậy nênviệc kiểm thử cần được thực hiện xuyên suốt vòng đời phát triển phần mềm đểtránh rủi ro không đáng có
Tính bảo mật: Đảm bảo sự an toàn của sản phẩm khỏi những lỗ hổng khó thấy
hay những cuộc tấn công từ hacker là điều vô cùng cần thiết Do vậy, loại kiểmthử bảo mật được sinh ra với vai trò thiết thực trong việc xử lý dữ liệu mật vàngăn chặn sự xâm nhập từ các phần tử độc hại, sự truy cập trái phép từ bên ngoài
Đáp ứng nhu cầu của người dùng: Sự hài lòng, tin tưởng từ khách hàng là mục
đích cuối cùng mà bất kỳ công ty phần mềm nào cũng hướng tới Việc kiểm thửgiống như hình ảnh minh họa quá trình sử dụng sản phẩm trước khi nó được pháthành, phản ánh chân thực cảm xúc khi trải nghiệm phần mềm của người dùngcuối
Trang 8 Thúc đẩy phát triển phần mềm: Đôi khi trong quá trình kiểm tra sẽ bắt gặp
những lỗi không ngờ tới Nhìn vào đó, ta có thể cải tiến hay tìm ra chức năng mới,cũng như hướng giải quyết hiệu quả hơn cho tiến trình phát triển ứng dụng
Đảm bảo chất lượng sản phẩm: Việc kiểm thử phần mềm sẽ giúp nhà sản xuất
đi theo đúng yêu cầu, định hướng, kế hoạch và tài liệu liên quan đã thống nhất từđầu Từ đó đảm bảo sản phẩm cuối đạt chất lượng tốt, góp phần củng cố thươnghiệu và niềm tin từ phía khách hàng
2.3 Các thuật ngữ liên quan kiểm thử phần mềm.
Lỗi (Error): Là hành động của con người dẫn đến kết quả sai.
Sai (Fault): Lỗi xảy ra khi làm sai các step, process, hoặc chuẩn bị dữ liệu.
Thất bại (Failure): Lỗi khi có kết quả sai lệch so với yêu cầu đặc tả, là sự khác
biệt giữa kết quả thực tế trên màn hình và kết quả mong đợi của một thành phần,
hệ thống hoặc service nào đó
Sự cố (Incident): là bất kỳ tình huống nào mà hệ thống thực hiện đều có vấn đề,
có một sự gián đoạn không được lên kế hoạch trước hoặc sự sụt giảm chất lượngcủa dịch vụ Các nguyên nhân gây ra sự cố bao gồm cấu hình sai hoặc lỗi của môitrường thử nghiệm, dữ liệu kiểm thử không đúng, kết quả dự kiến không hợp lệhoặc lỗi của người kiểm thử
2.4 Các mức độ kiểm thử phần mềm.
Unit testing (Kiểm thử đơn vị)
Unit testing là quá trình kiểm thử từng module nhỏ trong hệ thống nhằm mục đíchxác nhận mỗi thành phần của phần mềm đều thực hiện đúng với thiết kế Trong đó, cácmodule đơn lẻ chủ yếu được test là: Hàm (Function), Lớp (Class) và Phương thức(Method)
Integration Testing (Kiểm thử tích hợp)
Integration Testing là hoạt động kiểm thử một nhóm các module riêng lẻ được tíchhợp logic lại với nhau Mỗi dự án phần mềm bao gồm nhiều module được code bởinhiều developers khác nhau, vì vậy kiểm thử tích hợp tập trung vào kiểm tra việc truyền
dữ liệu giữa các module
System Testing (Kiểm thử hệ thống)
Trang 9System Testing là giai đoạn kiểm thử một hệ thống đã được tích hợp hoàn chỉnhnhằm xác minh hệ thống có tuân thủ đúng với đặc tả yêu cầu hay không.
System Testing thuộc loại kiểm thử hộp đen vì vậy quá trình test sẽ tập trung nhiềuhơn vào các chức năng của toàn bộ hệ thống Ngoài việc kiểm tra chức năng, các tester
sẽ kiểm tra giao diện, các hành vi của hệ thống liên quan đến các hoạt động bên ngoàicủa phần mềm từ quan điểm của người sử dụng
Acceptance Testing (Kiểm thử chấp nhận)
Kiểm thử chấp nhận giống như kiểm thử hệ thống nhưng thường được khách hàngthực hiện test Mục đích của giai đoạn này là đánh giá hệ thống đã tuân thủ đúng với yêucầu của khách hàng chưa và có thể chấp nhận hay không chấp nhận bàn giao sản phẩm
Có 2 phương pháp kiểm thử chấp nhận:
Kiểm thử alpha: được thực hiện tại nơi tổ chức phát triển nhưng không phải
do nhóm phát triển test mà do khách hàng thực hiện test
Kiểm thử beta: được thực hiện bởi khách hàng hoặc các khách hàng tiềm năng
tại nơi của họ (khách hàng download bản beta và cài vào máy mình rồi sửdụng)
2.5 Các kỹ thuật kiểm thử phần mềm.
2.5.1 Kiểm thử hộp đen.
Kiểm thử hộp đen: là một phương pháp kiểm thử phần mềm được thực hiện mà không
biết được cấu tạo bên trong của phần mềm, là cách mà các tester kiểm tra xem hệ thốngnhư một chiếc hộp đen, không có cách nào nhìn thấy bên trong của cái hộp
Phù hợp và hiệu quả khi số lượng các
dòng lệnh của hệ thống là lớn
Bị giới hạn bởi độ bao phủ của cáctrường hợp kiểm thử
Không cần truy cập mã nguồn Kiểm thử không hiệu quả, do thực tế
tester bị hạn chế kiến thức về hệ thống.Phân biệt rõ ràng quan điểm của người Không có độ bao phủ, vì người kiểm thử
Trang 10dùng với quan điểm của nhà phát triển
thông qua các vai trò được xác định rõ
ràng
không thể kiểm tra các đoạn mã nguồnhoặc tập trung vào các đoạn mã bị lỗi
Một số lượng lớn tester có kỹ năng vừa
phải có thể kiểm tra ứng dụng mà không
cần có nhiều kiến thức, ngôn ngữ lập
trình hoặc hệ điều hành
Rất khó để thiết kế được hầu hết cáctrường hợp kiểm thử cho hệ thống
Các kỹ thuật kiểm thử hộp đen:
Đoán lỗi: là một kỹ năng quan trọng của tester, thậm chí có thể gọi là nghệ thuật.
Một kiệt tác của trực giác Phương pháp này đặc biệt dựa vào kinh nghiệm và kiếnthức của tester Nhiều tester cố gắng đoán xem phần nào của hệ thống mà có khảnăng ẩn chứa lỗi Với phương pháp này, họ không cần một công cụ hay một kịchbản kiểm thử nào khi bắt đầu vào việc
Kiểm thử dựa vào đồ thị nguyên nhân - kết quả (Cause Effect Graphing): là
một kỹ thuật thiết kế kiểm thử phần mềm liên quan đến việc xác định các trườnghợp (điều kiện đầu vào) và các hiệu ứng (điều kiện đầu ra) Vì các hệ thống hiệnnay đều được phát triển trên nền tảng OOP, do đó, chúng ta có thể có được một đồthị các đối tượng mà hệ thống định nghĩa và kết nối Từ đồ thị này, chúng ta dễdàng biết các mối quan hệ của những đối tượng mà hệ thống xử lý, từ đó sẽ chochúng ta các kịch bản kiểm thử phù hợp
Phân vùng tương đương (Equivalence Class): là một kỹ thuật kiểm thử phần
mềm có liên quan đến phân chia các giá trị đầu vào thành các phân vùng hợp lệ vàkhông hợp lệ, sau đó chúng ta sẽ viết ra các kịch bản kiểm thử cho từng phần,chọn giá trị đại diện từ mỗi phân vùng làm dữ liệu thử nghiệm Phân vùng tươngđương: là kỹ thuật thực hiện test theo từng class đồng giá trị (tập hợp điều kiệncùng một thao tác) Tập hợp giá trị input có cùng một kết quả xử lý, tập hợp thờigian có cùng một kết quả xử lý, tập hợp kết quả export được xử lý cùng một giátrị nhập
Sử dụng bảng quyết định (Decision Tables): Là dùng bảng để hiển thị danh sách
các thao tác phần mềm được quyết định trên các điều kiện khác nhau Decisiontable testing chú trọng vào nhiều điều kiện để thực hiện test
2.5.1 Kiểm thử hộp trắng.
Kiểm thử hộp trắng: là một phương pháp kiểm thử phần mềm trong đó tester biết về cấu
trúc nội bộ / thiết kế Người kiểm tra chọn đầu vào để thực hiện các đường dẫn thông
Trang 11qua mã và xác định đầu ra thích hợp Kiến thức lập trình và kiến thức thực hiện là rấtcần thiết trong kiểm thử hộp trắng.
Kiểm thử hộp trắng bao gồm phân tích dòng dữ liệu, điều khiển dòng, dòng thông tin,
mã thực hành, ngoại lệ và những lỗi trình bày trong hệ thống để kiểm tra những hànhđộng của phần mềm không được định hướng trước
Tối ưu hóa mã bằng cách tìm lỗi ẩn Đòi hỏi nguồn lực chuyên nghiệp có kiến
Kiểm tra kỹ lưỡng hơn vì tất cả các
đường dẫn mã thường được bao phủ
Kiểm thử diễn ra khi sản phẩm chưa được hoàn thiện nên các công cụ phục vụcho mọi loại triển khai/nền tảng thường không sẵn có
Kiểm thử có thể được thực hiện sớm
trong quy trình phát triển phần mềm ngay
cả khi GUI (Graphical User Interface -
Giao diện đồ họa người dùng) không khả
dụng
Kiểm tra hộp trắng được đánh giá khá phức tạp và tốn kém Developers không kiểm tra hộp trắng chi tiết có thể dẫn đến lỗi sản xuất
Các kỹ thuật kiểm thử hộp trắng:
Bao phủ câu lệnh(Statement Coverage): Kiểm thử sao cho mỗi câu lệnh được
thực thi ít nhất 1 lần
Bao phủ điều kiện(Branch Coverage, Decision coverage): Kiểm thử đòi hỏi phải
đủ trường hợp thử nghiệm như vậy mà mỗi điều kiện trong một quyết định có trêntất cả các kết quả có thể ít nhất một lần Đó là các nhánh (quyết định) lấy cả 2trường hợp đúng và sai Nó giúp trong việc chứng thực tất cả các ngành có mãđảm bảo rằng đó không có chi nhánh dẫn đến hành vi bất thường của ứng dụng
Trang 12 Bao phủ nhánh(Path Coverage): Trong các trường hợp kiểm thử được thực hiện
trong một cách mà mọi con đường được thực hiện ít nhất một lần Tất cả các conđường kiểm soát có thể được thực hiện, bao gồm tất cả những con đường vòng lấybằng không, một lần, và nhiều (lý tưởng là tối đa) các trường hợp thử nghiệmđược chuẩn bị dựa trên các biện pháp phức tạp logic của một thiết kế thủ tục Đểhoàn thiện bao phủ nhánh, chúng ta phải xét thêm 2 trường hợp bug(a) khi đúng
Kiểm thử tự động: Là xử lý một cách tự động các bước thực hiện các testcase, kiểm thử
tự động bằng một công cụ nhằm rút ngắn thời gian kiểm thử
Kiểm thử tự động: là một kỹ thuật tự động trong đó người kiểm thử tự viết các tập lệnh
và sử dụng phần mềm phù hợp để kiểm thử phần mềm Nó về cơ bản là một quá trình tựđộng hóa của một quy trình kiểm thử thủ công Giống như kiểm thử hồi quy, kiểm thử tựđộng cũng được sử dụng để kiểm thử ứng dụng theo quan điểm tải, hiệu năng và ứngsuất
Kiểm thử tự động giúp giảm chi phí kiểm thử bằng cách hỗ trợ quá trình kiểm thử thôngqua các công cụ phần mềm
Kiểm thử tự động hay sử dụng phần mềm để kiểm thử với các ưu điểm:
Có thể thực hiện các kiểm thử một cách liên tục, lặp lại và giảm chi phí cho nhânlực kiểm thử
Luôn đảm bảo hoạt động theo một kịch bản duy nhất – không bị ảnh hưởng nhưvới kiểm thử viên
1.2 Quy trình kiểm thử tự động.
Quy trình kiểm thử tự động bao gồm: tester sử dụng các kịch bản tự động (automationscripts) và thực thi các script để chạy ứng dụng với sự giúp sức của các automation tool.Một khi script đã sẵn sàng thì việc thực thi kiểm thử có thể diễn ra nhanh chóng và hiệuquả
Trang 13Các hoạt động của kiểm thử tự đông:
Phân tích yêu cầu/Xác định môi trường/công cụ
Xác định tiêu chí đầu ra
Lên kế hoạch và kiểm soát
Thiết lập môi trường kiểm thử
Triển khai thiết kế kiểm thử
Thực thi kiểm thử
Phân tích, báo cáo
1.3 Mục đích của kiểm thử tự động.
Kiểm thử tự động với các mục đích:
Giảm bớt công sức và thời gian thực hiện quá trình kiểm thử
Tăng độ tin cậy
Giảm sự nhàm chán cho con người
Rèn luyện kỹ năng lập trình cho kiểm thử viên
Giảm chi phí cho tổng quá trình kiểm thử
1.4 Kiểm thử tự động khi nào?
Khi nào cần kiểm thử tự động:
Không đủ tài nguyên: Khi số lượng TestCase quá nhiều mà kiểm thử viên không
thể hoàn tất trong thời gian cụ thể
Kiểm tra hồi quy: Nâng cấp phần mềm, kiểm tra lại các tính năng đã chạy tốt và
những tính năng đã sửa Tuy nhiên, việc này khó đảm bảo về mặt thời gian
Kiểm tra khả năng vận hành phần mềm trong môi trường đặc biệt (Đo tốc độtrung bình xử lý một yêu cầu của Web server, xác định cấu hình máy thấp nhất màphần mềm vẫn có thể hoạt động tốt)
1.5 Một số công cụ kiểm thử tự động phổ biến.
HP Quick Test Professional
Selenium
Visual Studio Test Professional
Trang 14 IBM Rational Functional Tester
Selenium (thường được viết tắt là SE ) là một công cụ kiểm thử phần mềm tự động,
được phát triển bởi ThoughtWorks từ năm 2004với tên ban đầu làJavaScriptTestRunner Đến năm 2007, tác giả Jason Huggins rời ThoughtWorks và gianhập Selenium team, một phần của Google và phát triển thành Selenium như hiện nay.Selenium là một công cụ hỗ trợ kiểm tra tự động cho các ứng dụng chạy trên nền web.Selenium hỗ trợ kiểm tra hầu hết trên các trình duyệt phổ biến hiện nay như Firefox,Internet Explorer, Safari,…cũng như các hệ điều hành chủ yếu như Windows, Linux,Mac,…
Selenium hỗ trợ một số lớn các ngôn ngữ lập trình như C#, Java, Perl, PHP, Python,Ruby,…
Selenium có thể kết hợp thêm một số công cụ khác như Bromien, Junit nhưng với ngườidùng thông thường chỉ cần chạy tự động mà không cần cài thêm các công cụ hỗ trợ
2.2 Các thành phần của Selenium.
Selenium bao gồm một bộ các công cụ hỗ trợ kiểm tra tự động tính năng của ứng dụngweb bao gồm: Selenium IDE, Selenium Remote Control (RC), Selenium Web Driver vàSelenium Grid