Tải bản đầy đủ (.docx) (63 trang)

TrầnThịMỹPhượng 18it095 ĐACS5

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (761.36 KB, 63 trang )

BÁO CÁO
ĐỒ ÁN CƠ SỞ 5

ĐỀ TÀI: ỨNG DỤNG SELENIUM
TRONG KIỂM THỬ WEBSITE

Họ và tên:
Lớp:

Trần Thị Mỹ Phượng

Mã sinh viên: 18IT095

18IT2

Giảng viên hướng dẫn: ThS. Lê Viết Trương

Đà Nẵng, ngày 22 tháng 4 năm 2021

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG VIỆT – HÀN
KHOA KHOA HỌC MÁY TÍNH


BÁO CÁO
ĐỒ ÁN CƠ SỞ 5

ĐỀ TÀI: ỨNG DỤNG SELENIUM
TRONG KIỂM THỬ WEBSITE

Họ và tên:
Lớp:



Trần Thị Mỹ Phượng

Mã sinh viên: 18IT095

18IT2

Giảng viên hướng dẫn: ThS. Lê Viết Trương

Đà Nẵng, ngày 22 tháng 4 năm 2021

LỜI CẢM ƠN


Đề án này được hoàn thành tại Khoa Khoa Học Máy Tính. Trong q trình học
tập và hồn thành đồ án em đã nhận được rất nhiều sự giúp đỡ, vì vậy chúng em
muốn viết lời cảm ơn này đến:
Chúng em xin gửi lời cảm ơn chân thành tới thầy cơ Khoa Khoa Học Máy Tính
đã giảng dạy cho chúng em thời gian qua. Đặc biệt là Ths Lê Viết Trương là người
trực tiếp chỉ bảo và hướng dẫn em hồn thành đồ án này.
Bên cạnh đó để hồn thành đồ án này em đã nhận được những lời khuyên sự
giúp đỡ tận tình từ anh chị em bạn bè chúng em xin cảm ơn.
Mặc dù đã vận dụng tất cả kiến thức đã được học tập và kinh nghiệm thực tế từ
bản thân để hoàn thành đề án này, song có thể cịn có những mặt hạn chế, thiếu sót.
Em rất mong nhận được ý kiến đóng góp và sự chỉ dẫn của các thầy cô giáo.
Xin chân thành cảm ơn !

NHẬN XÉT



(Lời nhận xét của GVHD)

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
Đà Nẵng tháng 5 năm 2021

MỤC LỤC


LỜI CẢM ƠN
NHẬN XÉT
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG
DANH MỤC TỪ VIẾT TẮT


DANH MỤC HÌNH ẢNH
C BẢNG

VIẾT TẮT
ISTQB
Selenium R

NỘI DUNG
International Software Testing Qualifications Board
Selenium Remote Control

C
Test Case

Một tập các dữ liệu đầu vào, hành động hoặc sự kiện và các kết quả
mong đợi

Test scrip

Một nhóm các 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ử

Validate

Một thuật ngữ trong kiểm thử phần mềm dùng để chỉ sự kiểm tra tính
hợp lệ của dữ liệu trên một yếu tố của ứng dụng



Ứng dụng

Selenium trong kiểm thử WebSite

TỔNG QUAN VỀ ĐỀ TÀI
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. Tuy nhiên, vì độ phức tạp của phần mềm và những giới hạn về thời gian
và chi phí, cho dù các hoạt động đảm bảo chất lượng phần mềm nói chung và kiểm
thử nói riêng ngày càng chặt chẽ và khoa học, vẫn không đảm bảo được rằng các
sản phẩm phần mềm đang được ứng dụng khơng có lỗi. Lỗi vẫn luôn tiềm ẩn trong
mọi sản phẩm phần mềm và cũng có thể gây những thiệt hại khơn lường. 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.
Bên cạnh đó, xu hướng áp dụng tự động hố đang được triển khai rộng rãi ở
nhiều lĩnh vực, trong đó có kiểm thử phần mềm. Đặc biệt, khi kiểm thử phần mềm
là công đoạn chiếm phần lớn thời gian trong quá trình phát triển dự án phần mềm
thì sự ra đời của các công cụ kiểm thử tự động càng có ý nghĩa hơn bao giờ hết,
giúp tiết kiệm thời gian, công sức và tiền bạc.
Selenium là một công cụ hỗ trợ kiểm thử tự động dành cho các ứng dụng Web,
hoạt động trên hầu hết các trình duyệt phổ biến hiện nay như Firefox, Chrome,
Internet Explorer, Safari, v.v. cũng như hỗ trợ số lượng lớn các ngôn ngữ lập trình
Web phổ biến. Cơng cụ Selenium hiện được đánh giá là một trong những công cụ
tốt nhất cho kiểm thử tự động các ứng dụng Web.
Với mong muốn tìm hiểu sâu về lĩnh vực kiểm thử phần mềm em đã chọn đề tài
“Ứng dụng selenium trong kiểm thử WebSite”.
2. 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áp kiểm
Khoa

7 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

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
Đề tài giới thiệu về lý thuyết kiểm thử phần mềm, các cơng cụ hỗ trợ kiểm thử tự
động. Ngồi ra, đề tài đi sâu vào việc tìm hiểu, sử dụng các tính năng, cơng cụ của
bộ phần mềm Selenium như:
- 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ử.
Với mục tiêu và phạm vi nêu trên, bố cục của báo cáo gồm:
Mở đầu: Trình bày lý do chọn đề tài, mục tiêu đồ án và bố cục của đồ án.
Chương 1: Cơ sở lý thuyết.

Chươ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ên
vai trị kiểm thử trong q 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ụng
Web, các bước kiểm thử và lựa chọn cơng cụ kiểm thử phù hợp – Selenium
WebDriver. Từ đó đi sâu vào tìm hiểu cơng cụ Selenium WebDriver về vai trị, ưu
nhược điểm cũng như các đặc mà cơng cụ hỗ trợ.
Khoa
8 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

Chương 2: Kiểm thử ứng dụng trên nền web
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ểm thử ứng dụng web. Giới
thiệu Website bán hàng

Chương 3: Ứng dụng Selenium Webdriver trong 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ử.
Chương 4: Thực nghiệm và đánh giá kết quả.
Áp dụng các kiến thức đã trình bày vào bài tốn cụ thể: Sử dụng công cụ kiểm
thử tự động Selenium WebDriver để kiểm thử tự động các chức năng đã phân tích.
Kết luận. Phần này đưa ra những kết quả đồ án đạt được, những thiếu sót chưa thực
hiện được và hướng phát triển đề tài trong tương lai.


Khoa
9 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

1

CƠ SỞ LÝ THUYẾT

1.1 Tổng quan về phần mềm
1.1.1 Khái niệm 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ử…
1.1.2 Vòng đời phát triển
Vòng đời phát triển phần mềm là thời kì tính khi phần mềm được sinh ra cho
đến khi chết đi ( từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến
khi loại bỏ khơng dùng nữa).
Vịng đời phát triển phần mềm chia thành các pha chính: Phân tích, thiết kế,
chế tạo, kiểm thử, bảo trì. Được biểu diễn theo mơ hình sau đây:


Khoa
10 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

Hình 1-1 Vịng đời phát triển phần mềm

1.2 Kiểm thử phần mềm
1.2.1 Khái niệm về kiểm thử phần mềm
Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm
ra lỗ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ần mề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 phần mềm.
Kiể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 nhìn thấy.
1.2.2 Các phương pháp kiểm thử
Kiểm thử tĩnh (Static testing)
Kiểm thử tĩnh là loại kiểm tra trong đó code khơng được thực hiện. Nó có thể
được thực hiện bằng tay hoặc bằng một bộ công cụ. Loại kiểm tra này thực hiện
kiểm tra code, tài liệu yêu cầu và tài liệu thiết kế và đưa ra nhận xét, lưu nhận xét
vào tài liệu công việc. Khi phần mềm khơng thực thi và khơng làm gì, chúng ta

Khoa

11 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

thực hiện kiểm tra trạng thái an tồn để phân tích phần mềm trong mơi trường
khơng chạy.
Với thử nghiệm tĩnh, chúng ta cố gắng tìm ra lỗi, các lỗi code và mã độc tiềm
ẩn trong ứng dụng phần mềm. Static test bắt đầu sớm hơn trong vịng đời phát triển,
và do đó nó cịn được gọi là thử nghiệm xác minh (verification testing). Kiểm tra
tĩnh có thể được thực hiện trên các tài liệu làm việc như yêu cầu kỹ thuật
(requirement), tài liệu thiết kế (documents) , mã nguồn (Source code), kế hoạch
kiểm tra (Test plan), kịch bản thử nghiệm (test script) và các trường hợp thử
nghiệm (test case) , nội dung trang web.
Kiểm thử động (Dynamic testing)
Kiểm thử động được thực hiện khi code đang ở chế độ thực thi. Thử nghiệm
động được thực hiện trong mơi trường thực thi chạy chương trình ứng dụng. Khi
code được thực thi, thì đầu vào được truyền một giá trị, kết quả hoặc đầu ra của
việc thực hiện được so sánh với kết quả dự kiến ban đầu đã đưa ra. Với việc này
chúng ta có thể quan sát được các hành vi chức năng của phần mềm, giám sát hệ
thống bộ nhớ, thời gian phản hồi của CPU, hiệu suất của hệ thống. Thử nghiệm
dynamic còn được gọi là thử nghiệm xác nhận (Validation testing), đánh giá sản
phẩm. Thử nghiệm động gồm hai loại: Kiểm tra chức năng và Kiểm tra phi chức
năng.
Sự khác nhau giữa Static testing và Dynamic testing
Static testing
Static testing chính là kiểm thử hộp

trắng được thực hiện ở giai đoạn đầu
của chu kì phát triển
Trong thời gian ngắn hơn, thì Statis
testing có nhiều phạm vi xác nhận hơn
so với Dynamic testing
Nó được thực hiện trước khi triển khai
code
Nó được thực hiện trong Bước Xác
minh
Khoa
12 Khoa Học Máy Tính

Dynamic testing
Dynamic testing được thực hiện ở giai
đoạn sau của pòng đời phát triển
Dynamic testing có phạm vi xác nhận
ít hơn vì nó chỉ bao gồm các khu vực
giới hạn của code
Nó được thực hiện sau khi triển khai
code
Nó được thực hiện trong Giai đoạn Xác
nhận
Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

Loại thử nghiệm này được thực hiện
mà không thực hiện code.

Static testing đưa ra đánh giá của code
cũng như tài liệu.
Trong kỹ thuật Static testing một danh
sách nội dung kiểm tra được chuẩn bị
cho quá trình kiểm tra

Loại thực hiện này được thực hiện với
việc thực thi code
Dynamic testing cho biết giới hạn của
hệ thống phần mềm.
Trong kỹ thuật Dynamic testing, các
trường hợp thử nghiệm được thực thi.

Các phương pháp Static testing bao gồm Dynamic testing bao gồm việc kiểm tra
Walkthroughs, code review.
chức năng và phi chức năng
Bảng 1-1 Sự khác nhau giữa Static testing và Dynamic testing

1.2.3 Các mưc độ kiểm thử
Một sản phẩm phần mềm từ khi bắt đầu phát triển đến khi hoàn thành và đưa
đến tay người dùng cuối phải trải qua bốn mức kiểm thử:

Hình 1-2 Các mức kiểm thử

Kiểm thử đơn vị (Unit Testing)
Kiểm thử đơn vị 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ào nhưng đầu ra là duy nhất.

Mục đích:
Khoa
13 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

-

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
Kiểm thử tích hợp (Integration Testing )
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ện hoặ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ành phần với điều
kiện các thành phần đã pass ở phần kiểm thử thành phần trướ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ống con khác nhau
và các hệ thống này đã pass ở lần kiểm thử trước đó.
Mụ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.
Kiểm thử hệ thống (System Testing )
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ả.
Kiểm thử chấp nhận (Acceptance Testing )
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

Khoa
14 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

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.
1.2.4 Các chiến lược kiểm thử
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ần quan
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:
Ưu điểm

Nhược điểm

Rất phù hợp và hiệu quả khi mà số Bị giới hạn ở độ bao phủ của các trường
lượng các dòng lệnh của hệ thống là lớn. hợp kiểm thử.
Khơng cần truy cập vào các dịng lệnh. Sẽ không hiệu quả bởi thực tế các tester
bị giới hạn kiến thức về hệ thống.
Phân biệt được rõ ràng quan điểm của Độ bao phủ sẽ bị thiếu vì tester không
người dùng với quan điểm của nhà phát kiểm tra được các đoạn lệnh của hệ
triển.

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ề Sẽ khó để có thể thiết kế đầy đủ các
ngơn ngữ lập trình ở các tester để có thể trường hợp kiểm thử.
kiểm thử hệ thống.
Bảng 1-2 Ưu nhược điểm kiểm thử hộp đen

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 được gọi dưới các
Khoa
15 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2



Ứng dụng
Selenium trong kiểm thử WebSite

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:
Ưu điểm
Nhựợc điểm
- Đối với những tester có kiến thức về - Trên thực tế việc sử dụng các tester có
ngơn ngữ lập trình sẽ rất dễ dàng để phát kiến thức về ngơn ngữ lập trình sẽ làm
hiện ra những lỗi ở trong các dòng lệnh. gia tăng giá để phát triển phần mềm.
Giúp tối ưu hóa các dịng lệnh của hệ Đơi lúc sẽ là khơng khả thi khi kiểm
thống.

tra chi tiết từng dòng lệnh để có thể từ
đó phát hiện ra các lỗi tiềm ẩn của hệ
thống, có rất nhiều các luồng khơng thể

kiểm tra được.
Các dịng lệnh khơng cần thiết hoặc các Rất khó để duy trì phương pháp này
dịng lệnh có khả năng mang đến các lỗi liên tục, cần phải có những tool chuyên
tiềm ẩn sẽ bị loại bỏ.

biệt như tool về phân tích code hay 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.
Bảng 1-3 Ưu nhược điểm kiểm thử hộp trắng

Kiểm thử hộp xám.
Kiểm thử hộp xám là một phương pháp kiểm thử mà đòi hỏi tester phải có một
lượng kiến thức nhất định về các luồng hoạt động ở bên trong hệ thống. Khác với
kiểm thử hộp đen, phương pháp mà tester chỉ quan tâm duy nhất để việc kiểm thử

Khoa
16 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

thông qua giao diện người dùng, kiểm thử hộp xám đòi hỏi tester phải truy cập vào
các tài liệu thiết kế hệ thống cũng như hệ thống cơ sở dữ liệu của hệ thống. Do đó
mà tester có thể chuẩn bị tốt hơn những dữ liệu cho việc kiểm thử cũng như các
trường hợp kiểm thử trong quá trình lên kế hoạch kiểm thử hệ thống.
Ưu điểm
Nhựợc điểm
Vì là sự kết hợp giữa kiểm thử hộp trắng Vì phương pháp này khơng dựa trên
và kiểm thử hộp đen nên có được ưu điểm việc truy cập code của hệ thống nên sẽ
của cả hai phương pháp này.


không tránh được việc độ bao phủ của

các trường hợp kiểm thử bị giới hạn.
Các tester sử dụng phương pháp này Khi sử dụng phương pháp này thì
khơng dựa vào các dòng lệnh của hệ nhiều trường hợp kiểm thử có thể bị dư
thống mà chủ yếu dựa trên các tài liệu thừa nếu mà những nhà thiết kế phần
định nghĩa giao diện cũng như các tài liệu mềm đã chạy các trường hợp kiểm thử
đặc tả chức năng.
này trước đó.
Trong phương pháp này các tester có thể Việc kiểm tra tất cả các luồng đầu vào
thiết kế nên những trường hợp kiểm thử của hệ thống là không thể thực hiện
đặc biệt xung quanh các giao thức kết nối được vì bị giới hạn về mặt thời gian
và các loại dữ liệu khác nhau.

kiểm thử và sẽ dẫn đến có rất nhiều các
luồng hoạt động của hệ thống khơng
được kiểm tra.

Việc kiểm thử được hồn thành từ góc
nhìn của người dùng chứ không phải từ
nhà thiết kế.
Bảng 1-4 Ưu nhược điểm kiểm thử hộp xám

1.3 Kiểm thử tự động
1.3.1 Khái niệm về 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

Khoa

17 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

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 tồn, ...).
1.3.2 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ử

Hình 1-3 Quy trình kiểm thử tự động


Lập kế hoạch kiểm thử
Mụ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:
Khoa
18 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

- 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.
Thực hiện kiểm thử
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á tồn bộ q trình kiểm thử, bao gồm xem xét và đánh giá kết
quả kiểm thử, liệt kê lỗi, chỉ định các yêu cầu thay đổi, và tính tố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…
Khoa
19 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

1.3.3 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 nhiều công việc như
debug, thay đổi dữ liệu đầu vào, và cập nhật code mới.
Khoa
20 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

- 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ế. Ngồ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.
1.4 Công cụ kiểm thử tự động Selenium và selenium Webdriver
1.4.1 Khái quát về selenium
Selenium là một công cụ hỗ trợ kiểm thử tự động cho các ứng dụng Web.
Selenium hỗ trợ kiểm thử trên hầu hết 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 cũng hỗ trợ một số lớn các ngơn ngữ lập trình
Web phổ biến hiện nay như C#, Java, Perl, PHP, Python, Ruby,... Công cụ này có
thể kết hợp thêm với một số cơng cụ khác như Junit và TestNG nhưng với người
dù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ụ bổ trợ.
Đặc điểm selenium
-

Mã nguồn mở: Đây là điểm mạnh nhất của Selenium khi so sánh với các test tool
khác. Vì là mã nguồn mở nên chúng ta có thể sử dụng mà khơng phải lo lắng về phí

bản quyền hay thời hạn sử dụng.
- Cộng đồng hỗ trợ: 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 Selenium nên chúng ta hồn tồn
có thể n tâm về sự hổ trợ miễn phí khi có vấn đề về Selenium. Tuy nhiên, đây
cũng là một điểm yếu của Selenium. Vì cơng cụ này hồn tồn miễn phí, cộng đồng
lại đơng nên một vấn đề có thể nhiều giải pháp, và có thể một số giải pháp là khơng
hữu ích. Mặc khác, chúng ta không thể hối thúc hay ra deadline cho sự hỗ trợ.
- Selenium hỗ trợ nhiều ngơn ngữ lập trình.
- Selenium hỗ trợ chạy trên nhiều hệ điều hành khác nhau với mức độ chỉnh sửa
script hầu như là khơng có. Thực sự thì điều này phụ thuộc phần lớn vào khả năng
viết script của người dùng.

Khoa
21 Khoa Học Máy Tính


Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite
-

Chạy test case ở background. Khi chúng ta thực thi một test script, chúng ta hồn
tồn có thể làm việc khác trên cùng một máy tính. Điều này hỗ trợ chúng ta khơng

cần tốn q nhiều tài ngun máy móc khi chạy test script.
- Khơng hỗ trợ Win app. Selenium thực sự chỉ hỗ trợ chúng ta tương tác với Browser
mà không hỗ trợ chúng ta làm việc với các Win app, kể cả Win dialog như
Download/Upload. Vậy nên, để xử lý các trường hợp cần tương tác với hệ thống
hay một app thứ ba, chúng ta cần một hay nhiều thư viện khác như AutoIt hay
Coded UI.
Là một công cụ hỗ trợ kiểm tra tính năng nên Selenium khơng có khả năng giả
lập nhiều người dùng ảo cùng một lúc. Cơng việc của nó là chạy kiểm thử tự động
dựa trên một kịch bản đã được thiết kế từ trước. Qua đó chúng ta có thể chắc chắn
rằng đối tượng kiểm thử có hoạt động đúng như mong đợi hay không.
Các thành phần của selenium
Selenium là một bộ công cụ hỗ trợ kiểm thử tự động các tính năng của ứng
dụng trên nền Web, bao gồm 4 thành phần: Selenium IDE, Selenium Grid,
Selenium 1.0 ( hay Selenium Remote Control – Selenium RC) và Selenium 2.0
( hay Selenium WebDriver). Mỗi loại có một vai trị cụ thể trong việc hỗ trợ sự
phát triển của tự động hóa kiểm thử ứng dụng web.

Khoa
22 Khoa Học Máy Tính


Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

Hình 1-4 Các thành phần của Selenium

Selenium IDE (Intergrated Development Environment)
Selenium IDE là được phát triển dưới hình thức add-on của Firefox. Chúng
ta chỉ có thể Record trên trình duyệt FireFox, nhưng bù lại, chúng ta có thể
Playback trên các trình duyện khác như là IE, Chrome….
Selenium có thể sinh code tự động hoặc nạp các đoạn mã viết tay. Công cụ
này cung cấp chức năng “thu và chạy lại” – Record and Playback. 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ử. Selenium IDE còn cho phép lưu kịch bản đã thu dưới nhiều
loại ngơn ngữ lập trình khác nhau như Java, PHP, C#, Ruby….
Selenium Core: Đã được tích hợp trong Selenium IDE. Selenium Core là một
cơng cụ chạy các test script viết bằng Selenese. Thế mạnh của cơng cụ này là có
thể chạy test script trên gần như 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 Tester khơng
có quyền truy cập đến máy chủ đó.
Selenium RC (Remote Control)
Selenium Remote Control là một framework kiểm thử cho phép thực hiện
nhiều hơn và tuyến tính các hành động trên trình duyệt. Nó cho phép cho phép các
Khoa
23 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2



Ứng dụng
Selenium trong kiểm thử WebSite

nhà phát triển tự động hóa kiểm thử sử dụng một ngơn ngữ lập trình cho tính linh
hoạt tối đa và mở rộng trong việc phát triển logic thử nghiệm.
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ử;
cung cấp một API (Application Programming Interface) và thư viện cho mỗi ngôn
ngữ được hỗ trợ: HTML, Java, C#, Perl, PHP, Python và Ruby. Khả năng sử dụng
Selenium RC với một ngôn ngữ lập trình bậc cao để phát triển các trường hợp kiểm
thử cũng cho phép kiểm thử tự động được tích hợp với một dự án xây dựng môi
trường tự động.
Selenium WebDriver
Selenium WebDriver là sự kế thừa từ Selenium Remote Control, làm việc
trực tiếp với trình duyệt ở mức hệ điều hành, cho phép gửi lệnh trực tiếp đến trình
duyệt và xuất ra kết quả.
Selenium-Grid
Selenium – Grid Là một hệ thống hỗ trợ người dùng thực thi test script trên
nhiều trình duyệt một cách song song mà không cần phải chỉnh sửa test script.
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 Web khác nhau trong cùng một lúc nhằm giảm
thiểu thời gian thực hiện.
1.4.2 Selenium Webdriver
Là một phần của công cụ kiểm tra tự động bằng mã nguồn mở của Selenium,
Selenium Webdriver hay Webdriver mới được thành lập từ năm 2006 bởi Simon
Stewwart. Đây cũng là công cụ đầu tiên được đánh giá là sử dụng trên nhiều nền

tảng khác nhau, có khả năng điều khiển hành động của người viết trên trình duyệt
từ cấp độ hệ điều hành.
Khoa
24 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


Ứng dụng
Selenium trong kiểm thử WebSite

Công cụ nãy hỗ trợ nhiều ngôn ngữ khác nhau: Java, C#, PHP, Ruby,…. Về
mặt bản chất thì đây được coi như là một khối dữ liệu khổng lồ được chia làm
nhiều loại khác nhau và cung cấp các thư viện.
WebDriver là bản nâng cấp lên RC vì nó nhanh hơn nhiều. Nó nhanh hơn vì
nó thực hiện cuộc gọi trực tiếp đến trình duyệt. Mặt khác, RC cần một máy chủ RC
để tương tác với trình duyệt web. Mỗi trình duyệt có trình điều khiển riêng mà ứng
dụng chạy trên đó.
Các WebDrivers khác nhau là:
-

Firefox Driver (Gecko Driver)
Chrome Driver
Internet Explorer Driver
Opera Driver
Safari Driver and
HTM Unit Driver
Quy trình làm việc của selenium Webdriver
Quy trình làm việc của selenium Webdriver gồm 3 bước: Viết kịch bản hay còn gọi
là Script, kiểm tra script và chạy kịch bản

Viết script: Người viết sẽ tạo trươc các hành động và lưu trữ nó trong thư viện. Khi
làm việc với trình duyệt web, người viết sẽ xác ddingj một số yếu tố như đối tượng
và vị trí mà hành động đó cần thực hiện.
Sau khi xác định hết, người viết sẽ tạo ra một danh sách trình tự các hoạt động sẽ
thực hiện trên trình duyệt web đó với đối tượng và vị trí xác định
Với bước chạy thử người viết sẽ kiểm tra được đối tượng đó có hàng động theo
đúng kịch bản hay không và đưa ra các sự bổ xung và sửa đổi.
Ưu điểm của Selenium WebDriver

-

Hỗ trợ 7 ngơn ngữ lập trình: JAVA, C #, PHP, Ruby, Perl, Python và .Net.
Hỗ trợ thử nghiệm trên nhiều trình duyệt khác nhau như: Firefox, Chrome, IE,

Safari
- Các thử nghiệm có thể được thực hiện trên các hệ điều hành khác nhau như:
Windows, Mac, Linux, Android, iOS
- Khắc phục các hạn chế của Selenium v1 như tải lên tệp, tải xuống, cửa sổ bật lên và
hộp thoại
Khoa
25 Khoa Học Máy Tính

Trần Thị Mỹ Phượng – 18IT2


×