độ tin cậy, hiệu suất, bảo mật và tương thích với cáchệ thống khác.-Phát hiện lỗi và sữa chữa : Kiểm thử giúp pháthiện các lỗi và vấn đề trong mã nguồn phần mềm.Sau khi lỗi được xác định
Trang 1TRƯỜNG ĐẠI HỌC DUY TÂN
Võ Bảo Long Nguyễn Quang Phú Bùi Minh Huy
Hoàng Trung Kiên Trần Ngọc Sang Nguyễn Hữu Thành
Trang 2
BẢNG PHÂN CÔNG CÔNG VIỆC NHÓM 5
viên
thành Nguyễn Hoàng
Trang 3C Các phương pháp kĩ thuật kiểm thử
Trang 4CHƯƠNG III : CHẠY THỰC NGHIỆM VÀ MINH HỌA
Trang 5tính năng, hiệu suất, hoặc tính năng bảo mật củachúng Mục tiêu chính của kiểm thử là đảm bảo rằngsản phẩm phần mềm hoặc hệ thống hoạt động đúngcách, đáp ứng được yêu cầu của người dùng, vàkhông gây ra lỗi hoặc vấn đề không mong muốn.
2 Mục đích của kiểm thử
- Xác định lỗi và các vấn đề : Kiểm thử giúp phát
triển và xác định lỗi trong phần mềm hoặc hệ thống.Điều này bao gồm các lỗi cú pháp, lỗi logic, hoặc vấn
đề hiệu xuất
- Đảm bảo tính đáng tin cậy : Kiểm thử đảm bảo
rằng phần mềm hoạt động đúng cách trong mọi tìnhhuống, và người dùng có thể dựa vào nó mà khônggặp lỗi hoặc sự cố
- Xác minh tính chất của phần mềm : Kiểm thử
giúp xác minh rằng phần mềm đáp ứng được yêu cầucủa người dùng và các chức năng được triển khaiđúng cách
- Đánh gia hiệu xuất : Kiểm thử hiệu suất đánh giá
tính năng hiệu suất của phần mềm, bao gồm thờigian phản hồi, tải trọng, và khả năng xử lý
- Kiểm thử bảo mật : Đảm bảo tính an toàn và bảo
mật của phần mềm trước các mối đe dọa bảo mật,như tấn công hacker hoặc vi phạm quyền truy cập
B Tầm quan trọng của kiểm thử
Kiểm thử là một phần quan trọng trong quá trình pháttriển phần mềm vì nó giúp đám bảo chất lượng và độ tincậy của sản phẩm cuối cùng Đây là một quá trình kiểmtra và đánh giá các tính năng, chức năng và hiệu xuất củaphẩn mềm để tim ra các lỗi, sai sót và vấn đề khác
- Đảm bảo tính ổn định của phần mềm : Kiểm thử
giúp xác định xem phần mềm có hoạt động đúng và
ổn định hay không Điều này giúp tránh sự cố và lỗitrong quá trình sử dụng sản phẩm
- Đảm bảo chất lượng : Kiểm thử giúp đảm bảo rằng
phần mềm đáp ứng được các yêu cầu chất lượng như
Trang 6độ tin cậy, hiệu suất, bảo mật và tương thích với các
hệ thống khác
- Phát hiện lỗi và sữa chữa : Kiểm thử giúp phát
hiện các lỗi và vấn đề trong mã nguồn phần mềm.Sau khi lỗi được xác định, chúng có thể được sửachữa để đảm bảo tính ổn định của sản phẩm
- Tiết kiệm thời gian và nguồn lực : Bằng cách
phát hiện và sửa lỗi sớm trong quá trình kiểm thử,bạn có thể tiết kiệm thời gian và nguồn lực so vớiviệc phát hiện chúng sau khi sản phẩm đã ra thịtrường
- Tạo lòng tin của người dùng : Phần mềm được
kiểm thử kỹ lưỡng thường mang lại trải nghiệm tốthơn cho người dùng Điều này có thể tạo lòng tin và
sự hài lòng từ phía người dùng cuối
- Đảm bảo tuân thủ quy định và tiêu chuẩn :
Trong nhiều ngành, có các quy định và tiêu chuẩn màphải tuân thủ Kiểm thử giúp đảm bảo rằng phầnmềm tuân thủ các quy định và tiêu chuẩn này
- Giảm rủi ro : Bằng cách kiểm thử phần mềm một
cách cẩn thận, bạn có thể giảm thiểu rủi ro liên quanđến sự cố hoặc lỗi phát sinh sau khi sản phẩm đượctriển khai
- Hỗ trợ quá trình phát triển : Kiểm thử có thể giúp
cho nhóm phát triển hiểu rõ hơn về tính năng vàhành vi của phần mềm, từ đó tạo điều kiện thuận lợicho việc phát triển và cải thiện sản phẩm
- Kiểm tra tính năng : Kiểm thử giúp đảm bảo rằng
tất cả các tính năng đã được triển khai hoạt độngtheo cách mong muốn và không gây ra xung đột vớinhau
- Đảm bảo sự cải thiện liên tục : Kiểm thử không
chỉ dừng lại ở giai đoạn phát triển ban đầu mà cònliên quan đến việc cải thiện liên tục sản phẩm quacác phiên bản và bản cập nhật
Tóm lại, kiểm thử phần mềm là một phần quan trọng củaquy trình phát triển phần mềm để đảm bảo tính ổn định,chất lượng và hiệu suất của sản phẩm cuối cùng, cũng như
Trang 7giúp đảm bảo sự hài lòng của người dùng và tuân thủ cácquy định và tiêu chuẩn.
C Các phương pháp kĩ thuật kiểm thử
1 Kiểm thử đơn vị (Unit Testing): Kiểm thử đơn vị là
quá trình kiểm tra từng phần riêng lẻ của mã nguồn đểđảm bảo rằng chúng hoạt động đúng Thông thường,các hàm, phương thức hoặc lớp được kiểm tra một cáchriêng lẻ để xác định xem chúng có thực hiện chính xáccác chức năng mong đợi hay không
2 Kiểm thử tích hợp (Integration Testing): Kiểm thử
tích hợp là quá trình kiểm tra và xác định xem cácthành phần riêng lẻ của phần mềm hoạt động đúng khiđược kết hợp lại với nhau Mục tiêu của kiểm thử tíchhợp là đảm bảo tính tương thích và giao tiếp chính xácgiữa các thành phần khác nhau của hệ thống
3 Kiểm thử hệ thống (System Testing): Kiểm thử hệ
thống là quá trình kiểm tra và xác định xem phần mềmhoạt động đúng theo yêu cầu và mong đợi của ngườidùng Nó bao gồm kiểm tra tính toàn vẹn dữ liệu, tínhnăng, hiệu suất, bảo mật và khả năng chịu tải của hệthống
4 Kiểm thử chấp nhận (Acceptance Testing): Kiểm
thử chấp nhận là quá trình kiểm tra xem phần mềm đápứng được yêu cầu và mong đợi của người dùng haykhông Nó thường được thực hiện bởi các người dùngcuối hoặc các bên liên quan để xác nhận rằng phầnmềm hoạt động chính xác và đáp ứng được nhu cầukinh doanh
5 Kiểm thử hạ tầng (Infrastructure Testing): Kiểm
thử hạ tầng là quá trình kiểm tra và đánh giá tính ổnđịnh, hiệu suất và khả năng mở rộng của hạ tầng phầncứng và phần mềm của hệ thống Nó bao gồm kiểm tracác thành phần như máy chủ, mạng, cơ sở dữ liệu vàcác thành phần hỗ trợ khác
6 Kiểm thử bảo mật (Security Testing): Kiểm thử bảo
mật là quá trình kiểm tra và đánh giá tính bảo mật của
Trang 8CHƯƠNG II : GIỚI THIỆU VỀ CÔNG CỤ KIỂM THỬ
- Selenium tập trung vào việc tự động hoá các ứng dụng dựa trênweb Kiểm thử được thực hiện bằng cách sử dụng công cụSelenium thường được gọi là Kiểm thử Selenium
- Selenium không chỉ là một công cụ mà còn là một bộ phần mềm,mỗi bộ đều đáp ứng nhu cầu kiểm tra khác nhau của một tổ chức
Nó gồm bốn thành phần bên dưới:
Selenium Integrated Development Environment (IDE)
Selenium Remote Control (RC)
Năm 2006, Simon Stewart - một nhân viên của Google tiếp tụcphát triển Selenium với công việc được đặt tên là WebDriver Nhờ
có công cụ này, Google đã nhận được một lượng người sử dụngSelenium rất lớn nhưng đứng trước những hạn chế của sản phẩmthì các tester vẫn phải làm việc rất vất vả
Trang 9 Năm 2008, Selenium và WebDriver chính thức được kết hợp bởiSelenium đang dần lớn mạnh và WebDriver lại là công cụ củatương lai Với sự kết hợp này, người dùng được cung cấp một tệpnhững tính năng lớn.
Cái tên Selenium xuất hiện từ một trò đùa của Huggins dành cho Mercury(công ty đã từng tạo ra một framework thử nghiệm phổ biến hơn khiSelenium đang trong quá trình phát triển) - đối thủ cạnh tranh của mình
Những thành phần quan trọng của Selenium
Selenium là một phần mềm chuyên dụng hỗ trợ thực hiện kiểm thử mà ở
đó, mỗi thành phần sẽ đáp ứng từng nhu cầu kiểm thử khác nhau Về cơbản, Selenium bao gồm bốn thành phần quan trọng sau:
Selenium IDE (Integrated Developer Environment): Thành
phần này là một plug-in nằm trên trình duyệt Firefox dựa trên mộttest case hay một quy trình bất kỳ để thực hiện việc record hay playlại các thao tác
Selenium RC (Remote Control): Đây là thành phần có khả năng
hỗ trợ các Selenium Server hoạt động và tương tác với các trìnhduyệt web
Selenium WebDriver: Nhiệm vụ của thành phần này là tiến hành
gửi lệnh khởi chạy và thực hiện tương tác với các trình duyệt mộtcách trực tiếp mà không cần phải thông qua bất kỳ server nào nhưRC
Trang 10 Selenium Grid: Được sử dụng với mục đích khởi chạy các kiểm
thử, Selenium Grid có thể thực hiện thông qua các trình duyệt cũngnhư các máy khác nhau trong cùng một thời điểm được xác định
Tuy có bốn thành phần nhưng do tính chất giống nhau nên Selenium team
đã quyết định kết hợp Selenium RC và Selenium WebDriver lại với nhau
để khởi tạo Selenium với những tính năng hiện đại hơn và mạnh mẽ hơn
Và hầu hết các Selenium Project đều lựa chọn sử dụng Selenium 2
3 Selenium IDE
Selenium Integrated Development Environment (IDE) là framework đơngiản nhất trong bộ Selenium và là cách đơn giản nhất để học Đây là mộtplugin của Firefox mà bạn có thể cài đặt dễ dàng như các plugin khác.Tuy nhiên, vì tính đơn giản của nó, Selenium IDE chỉ nên được sử dụngnhư là một công cụ tạo mẫu Nếu bạn muốn tạo các trường hợp kiểm thửnâng cao hơn, bạn sẽ cần phải sử dụng Selenium RC hoặc WebDriver
Đa nền tảng, chạy trên nhiều hệ điều hành Chỉ có trong Firefox
Trang 11Ưu Điểm Nhược Điểm
như : windows,Mac,Linux Dễ dàng cài
đặt và sử dụng
Không yêu cầu kinh nghiệm lập trình, chỉ
cần có kiến thức HTML và DOM
Thiết kế chỉ để tạo mẫu của kiểm thử
Có thể export test sang định dạng được sử
dụng trong Selenium RC và Webdriver
Không cung cấp sự lặp lại hoặc câu lệnh
có điều kiện cho tập lệnh kiểm tra
Được xây dựng để có thể report kết quả Thực hiện kiểm thử chậm so với Selenium
RC và webdriverCung cấp hỗ trợ cho các phần mở rộng
4 Selenium Remote Control (Selenium RC)
Selenium RC là framework kiểm thử hàng đầu của toàn bộ dự án
Selenium trong một thời gian dài Đây là công cụ kiểm tra web tự động
đầu tiên cho phép người dùng sử dụng ngôn ngữ lập trình mà họ thích
Tính đến phiên bản 2.25.0, RC có thể hỗ trợ các ngôn ngữ lập trình sau:
Ưu & nhược điểm của Selenium RC
Nhiều trình duyệt và đa nền tảng Cài đặt phức tạp hơn IDE
Có thể hỗ trợ việc lặp lại hoặc câu lệnh có
điều kiện cho tập lệnh kiểm tra
Yêu cầu phải có kiến thức lập trình
Có thể hỗ trợ kiểm tra theo dữ liệu Cần phải có Selenium RC Server để chạy
Đã hoàn chỉnh API API có các lệnh thừa và khó hiểu
Trang 12Ưu Điểm Nhược Điểm
Có thể sẵn sàng hỗ trợ các trình duyệt mới Tương tác với trình duyệt ít hơn thực tế
Thực hiện nhanh hơn IDE Kết quả không phù hợp và sử dụng
JavascriptThời gian thực thi chậm hơn Web Driver
5 WebDriver
WebDriver chứng tỏ rằng nó tốt hơn cả Selenium IDE và Selenium RC vềnhiều mặt Nó thực hiện một cách hiện đại và ổn định hơn trong tự độnghoá các hành động của trình duyệt WebDriver, không giống nhưSelenium RC, không dựa vào JavaScript dành cho tự động hóa Nó điềukhiển trình duyệt bằng cách trực tiếp liên lạc với nó Các ngôn ngữ được
hỗ trợ giống với những ngôn ngữ trong Selenium RC
Cài đặt đơn giản hơn Selenium
RC
Lắp đặt phức tạp hơn Selenium IDE
Giao tiếp trực tiếp với trình duyệt Yêu cầu kiến thức lập trình
Sự tương tác của trình duyệt thực
tế hơn
Không thể sẵn sàng hỗ trợ các trình duyệt mới
Không cần một thành phần riêng
biệt như RC Server
Không có cơ chế tích hợp để ghi lại các thông điệp thời gian chạy và tạo ra các kết quả kiểm tra
Trang 13Ưu Điểm Nhược Điểm
Thời gian thực hiện nhanh hơn
IDE và RC
6 Selenium Gril
Selenium Grid là một công cụ được sử dụng cùng với Selenium RC đểchạy thử nghiệm song song trên các máy khác nhau và các trình duyệtkhác nhau cùng một lúc Thực hiện song song có nghĩa là chạy nhiều testcase cùng một lúc Tính năng, đặc điểm:
Cho phép chạy đồng thời các test case trong nhiều trình duyệt vàmôi trường
Tiết kiệm nhiều thời gian
Sử dụng khái niệm hub-and-node Hub hoạt động như một nguồnchính của lệnh Selenium cho mỗi kết nối vơi nó
B Một số lưu ý và lựa chọn công cụ Selenium phù hợp với nhu cầu
1 Lưu ý về trình duyệt và hỗ trợ môi trường
Do sự khác biệt về kiến trúc, Selenium IDE, Selenium RC và WebDriver
hỗ trợ các bộ trình duyệt và môi trường hoạt động khác nhau
Selenium IDE
o Hỗ trợ trình duyệt : Mozilla Firefox
o Hệ điều hành : Windows MacOS X, Linux
WebDriver
o Hỗ trợ trình duyệt :
Internet Explorer phiên bản 6 đến 11, cả 32 và 64-bit
Microsoft Edge phiên bản 12.10240 trở lên (một phần
hỗ trợ một số chức năng đang được phát triển)
Trang 142 Làm thế nào để chọn công cụ Selenium phù hợp với nhu cầu của người dùng
Khi nào thì nên chọn Selenium IDE
o Để tìm hiểu về các khái niệm về kiểm thử tự động vàSelenium, bao gồm:
Các lệnh Selenese như kiểu, mở, clickAndWait, khẳngđịnh, xác minh, v.v
Vị trí như id, tên, xpath, css selector, v.v
Thực hiện mã JavaScript tùy chỉnh bằng cách sử dụnglệnh runScript
Xuất các trường hợp thử nghiệm ở các định dạng khácnhau
o Tạo các bài kiểm tra có ít hoặc không có kiến thức về lậptrình
o Để tạo các trường hợp thử nghiệm đơn giản và bộ thửnghiệm mà bạn có thể xuất sau đó đến RC hoặc WebDriver
o Để kiểm tra một ứng dụng web chỉ với Firefox
Khi nào thì nên chọn Selenium RC
o Thiết kế một bài kiểm tra sử dụng một ngôn ngữ biểu cảmhơn Selenese
o Để chạy thử nghiệm của bạn đối với các trình duyệt khácnhau (ngoại trừ HtmlUnit) trên các hệ điều hành khác nhau
o Để triển khai thử nghiệm của bạn trên nhiều môi trường sửdụng Selenium Grid
o Để kiểm tra ứng dụng của bạn đối với một trình duyệt mới
hỗ trợ JavaScript
o Để kiểm tra các ứng dụng web với các kịch bản dựa trênAJAX phức tạp
Khi nào thì nên chọn WebDriver
o Để sử dụng một ngôn ngữ lập trình nhất định trong việc thiết
kế trường hợp thử nghiệm của bạn
o Để kiểm tra các ứng dụng có nhiều chức năng dựa trênAJAX
o Để thực hiện kiểm tra trên trình duyệt HtmlUnit
o Để tạo ra các kết quả kiểm tra tùy chỉnh
Khi nào thì nên chọn Grid
o Để chạy tập lệnh Selenium RC của bạn trong nhiều trìnhduyệt và hệ điều hành đồng thời
o Để chạy một bộ phần mềm kiểm tra khổng lồ, cần phải hoànthành trong thời gian sớm nhất có thể
Trang 153 So sánh giữa Selenium và QTP (nay là UFT)
Quick Test Professional (QTP) là một công cụ kiểm tra tự động độc quyền
trước đây thuộc sở hữu của công ty Mercury Interactive trước khi nó được
mua lại bởi Hewlett-Packard vào năm 2006 Bộ công cụ Selenium có
nhiều ưu điểm hơn QTP, chi tiết như dưới đây:
Ưu điểm của Selenium qua QTP:
Mã nguồn mở , miễn phí để sử
dụng
Thương mại
Khả năng mở rộng cao Bổ sung tiện ích
Có thể chạy thử nghiệm trên các
Chỉ có thể được sử dụng trong Windows
Hỗ trợ thiết bị di động QTP Hỗ trợ Tự động hóa thử nghiệm ứng dụng trên
điện thoại di động (iOS và Android) bằng giải pháp
HP được gọi là - HP Mobile Center
Có thể thực hiện các bài kiểm tra
trong khi trình duyệt được giảm
Trang 16QTP Selenium
xây dựng sẵn
Tự động nhanh hơn Selenium bởi vì nó là
một IDE hoàn toàn đặc trưng
Tự động với tốc độ chậm hơn vì nó không
có IDE gốc và chỉ IDE của bên thứ ba có thể được sử dụng để phát triển
Thử nghiệm theo hướng dữ liệu được thực
hiện dễ dàng hơn bởi vì nó có tích hợp các
bảng dữ liệu cục bộ và cục bộ
Thử nghiệm theo hướng dữ liệu phức tạp hơn vì bạn phải dựa vào khả năng của ngônngữ lập trình để cài đặt các giá trị cho dữ liệu thử nghiệm
Có thể truy cập các điều khiển bên trong
trình duyệt (chẳng hạn như thanh yêu thích,
thanh địa chỉ, nút Back and Forward, v.v.)
Không thể truy cập phần tử bên ngoài ứng dụng web đang được kiểm tra
Cung cấp hỗ trợ khách hàng chuyên nghiệp Không có hỗ trợ người dùng chính thức
nào đang được cung cấp
Có khả năng tự xuất dữ liệu thử nghiệm
sang các định dạng bên ngoài
Không có khả năng tự xuất dữ liệu thời gian chạy vào định dạng bên ngoài
Hỗ trợ Thông số được xây dựng Thông số có thể được thực hiện thông qua
Chi phí (vì Selenium hoàn toàn miễn phí)
Tính linh hoạt (vì một số ngôn ngữ lập trình, trình duyệt và nền
tảng mà nó có thể hỗ trợ)
Kiểm tra song song (cái gì mà QTP có khả năng nhưng chỉ với việc
sử dụng Trung tâm Chất lượng)
Lưu Ý:
1 Để tận dụng tối đa selenium, bạn cần có một lượng kiến thức lập trình
tốt
2 Đối với selenium Web driver ,có nhiều khung kiểm thử hỗ trợ như
Junit ,testNG (cho Java),pytest(cho python) để giúp tổ chức và quản lý
các kịch bản kiểm thử cho bạn