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

TÌM HIỂU VỀ CÔNG CỤ KIỂM THỬ SELENIUM WEBDRIVER

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 (7.66 MB, 59 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------

BÁO CÁO BÀI TẬP LỚN MÔN KIỂM THỬ PHẨN MỀM
TÊN CHỦ ĐỀ NGHIÊN CỨU :
TÌM HIỂU VỀ CƠNG CỤ KIỂM THỬ SELENIUM WEBDRIVER

GVHD: Hà Mạnh Đào
Lớp : Kỹ thuật phần mềm
Khóa : 13
Nhóm : 2
Thành viên :

Hà nội, 2021


Mục lục
CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM....................................2
1.1

MỘT SỐ KHÁI NIỆM KIỂM THỬ PHẦN MỀM......................................2

1.2

QUI TRÌNH KIỂM THỬ..............................................................................6

1.2.1 Requirenment analysis - Phân tích yêu cầu................................................6
1.2.2 Test planning - Lập kế hoạch kiểm thử......................................................6
1.2.3 Test case development - Thiết kế kịch bản kiểm thử.................................7
1.2.4 Test environment set up - Thiết lập môi trường kiểm thử..........................8


1.2.5 Test execution - Thực hiện kiểm thử..........................................................8
1.2.6 Test cycle closure - Đóng chu trình kiểm thử............................................9
1.3

KỸ THUẬT KIỂM THỬ THỦ CÔNG VÀ TỰ ĐỘNG.............................11

1.3.1 Kiểm thử thủ cơng....................................................................................11
1.3.2 Kiểm thử tự động.....................................................................................12
1.4

MỘT SỐ CƠNG CỤ KIỂM THỬ TỰ ĐỘNG...........................................15

CHƯƠNG 2: CÔNG CỤ KIỂM THỬ SELENIUM WEBDRIVER......................20
2.1. Khái niệm....................................................................................................20
2.2. Lịch sử........................................................................................................20
2.3. Đặc điểm.....................................................................................................20
2.4. Ưu/nhược điểm...........................................................................................21
2.5. Các thành phần............................................................................................21
2.6. Quá trình cài đặt..........................................................................................22
CHƯƠNG 3 : MỘT SỐ KỊCH BẢN KIỂM THỬ VÀ ĐÁNH GIÁ.......................42
3.1. Kiểm thử ‘form đăng nhập’...........................................................................42
3.2. Kiểm thử ‘form tìm kiếm sản phẩm theo giá’...............................................45
3.3. Kiểm thử ‘form tìm kiếm sản phẩm theo keyword’......................................46
3.4. Kiểm thử ‘thêm sản phẩm vào giỏ hàng’......................................................48
3.5. Kết luận.........................................................................................................52
Tài liệu tham khảo :.................................................................................................53

1



CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
1.1 MỘT SỐ KHÁI NIỆM KIỂM THỬ PHẦN MỀM
+ Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần
dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một
khía cạnh nào đó của hệ thống hay thành phần đó.
+ 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 lỗi.
+ Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ
phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp
cho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay
dịch vụ phần mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay
khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm
trong nhiều ngành khác nhau.
 Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần mềm là một tiến
trình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy
tính thực hiện theo cái mà chúng đã đư ợc thiết kế để làm, và không thực
hiện bất cứ thứ gì khơng mong muốn. Đây là một pha quan trọng trong quá
trình phát triển hệ thống, giúp cho người xây dựng hệ thống và khách hàng
thấy được hệ thống mới đã đáp ứng yêu cầu đặt ra hay chưa.
+ Kiểm thử phần mềm là một phương pháp để kiểm tra xem sản phẩm phần
mềm thực tế có phù hợp với các yêu cầu mong đợi hay không và để đảm bảo rằng
sản phẩm phần mềm đó khơng có khiếm khuyết .
+ Kiểm thử phần mềm là một quá trình xác minh hệ thống / chương trình
máy tính để quyết định xem nó có đáp ứng các yêu cầu quy định và tạo ra kết quả
mong muốn hay không. Kết quả là bạn xác định được lỗi trong sản phẩm / dự án
phần mềm.
+ Kiểm thử phần mềm là không thể thiếu để cung cấp một sản phẩm chất
lượng mà không có bất kỳ lỗi hoặc vấn đề nào.
+ Theo ANSI / IEEE 1059, Kiểm thử trong Kỹ thuật Phần mềm là một quá trình
đánh giá một sản phẩm phần mềm để tìm xem liệu sản phẩm phần mềm hiện tại có

đáp ứng các điều kiện bắt buộc hay khơng. Q trình thử nghiệm bao gồm việc
đánh giá các tính năng của sản phẩm phần mềm đối với các yêu cầu về bất kỳ yêu
cầu nào còn thiếu, lỗi hoặc lỗi, bảo mật, độ tin cậy và hiệu suất.
2


+ Kiểm thử phần mềm rất quan trọng vì nếu có bất kỳ lỗi hoặc lỗi nào trong
phần mềm, nó có thể được xác định sớm và có thể được giải quyết trước khi giao
sản phẩm phần mềm. Sản phẩm phần mềm được kiểm tra thích hợp đảm bảo độ tin
cậy, bảo mật và hiệu suất cao, giúp tiết kiệm thời gian, hiệu quả chi phí và sự hài
lịng của khách hàng.
+ Theo GlenFord Myers : Kiểm thử là quá trình vận hành chương trình để
tìm ra lỗi
+ Theo IEEE: Kiểm thử là
 (1)Là quá trình vận hành hệ thống hoặc thành phần dưới những điều kiện
xác định, quan sát hoặc ghi nhận kết quả và đưa ra đánh giá về hệ thống
hoặc thành phần đó.
 (2) Là q trình phân tích phần mềm để tìm ra sự khác biệt giữa điều kiện
thực tế và điều kiện yêu cầu và dựa vào điểm khác biệt đó để đánh giá tính
năng phần mềm
- Nó liên quan đến việc thực thi các thành phần phần mềm / hệ thống bằng cách sử
dụng các công cụ thủ công hoặc tự động để đánh giá một hoặc nhiều thuộc tính
quan tâm.
- Mục đích : xác định các lỗi, khoảng trống hoặc các yêu cầu còn thiếu đối lập với
các yêu cầu thực tế .
Trong kỹ thuật kiểm thử không chỉ giới hạn ở việc thực hiện một chương trình
hoặc ứng dụng với mục đích đi tìm các lỗi phần mềm mà cịn là một quá trình phê
chuẩn và xác minh một chương trình máy tính / ứng dụng / sản phẩm nhằm:
+ Đáp ứng được mọi yêu cầu hướng dẫn khi thiết kế và phát triển phần mềm.
+ Thực hiện công việc đúng như kỳ vọng.

+ Có thể triển khai được với những đặc tính tương tự.
+ Đáp ứng được mọi nhu cầu của các bên liên quan.
- Dưới đây là những lợi ích của việc sử dụng kiểm thử phần mềm:
+ Hiệu quả về chi phí: Đây là một trong những lợi thế quan trọng của kiểm
thử phần mềm. Kiểm tra bất kỳ dự án CNTT nào đúng thời hạn sẽ giúp bạn tiết
kiệm tiền của mình trong dài hạn. Trong trường hợp nếu các lỗi được phát hiện
trong giai đoạn kiểm thử phần mềm trước đó, thì chi phí sửa chữa sẽ thấp hơn.
3


+ Bảo mật: Đây là lợi ích nhạy cảm và dễ bị tấn công nhất của kiểm thử
phần mềm. Mọi người đang tìm kiếm các sản phẩm đáng tin cậy. Nó giúp loại bỏ
các rủi ro và vấn đề sớm hơn.
+ Chất lượng sản phẩm: Đây là yêu cầu thiết yếu của bất kỳ sản phẩm
phần mềm nào. Kiểm tra đảm bảo một sản phẩm chất lượng được cung cấp cho
khách hàng.
+ Sự hài lịng của khách hàng: Mục đích chính của bất kỳ sản phẩm nào là
mang lại sự hài lòng cho khách hàng của họ. Kiểm tra UI / UX đảm bảo trải
nghiệm người dùng tốt nhất.
- Các loại kiểm thử phần mềm :
 Kiểm thử cài đặt
 Kiểm thử khả năng tương thích
 Smoke & Sanity Testing
 Kiểm thử hồi quy
 Kiểm thử mức chấp nhận
 Kiểm thử Alpha
 Kiểm thử Beta
 Kiểm thử chức năng và phi chức năng
 Kiểm thử sự phá hủy
 Kiểm thử hiệu suất phần mềm

 Kiểm thử tính khả dụng
 Kiểm thử khả năng tiếp cận
 Kiểm thử bảo mật
 Kiểm thử A/B
+ Bảo trì (Hồi quy và Bảo trì)
- Các mức kiểm thử :
+ Kiểm thử đơn vị
+ Kiểm thử tích hợp
+ Kiểm thử hệ thống
+ Kiểm thử mức chấp nhận

4


- Tóm tắt khái niệm cơ bản về kiểm thử phần mềm:
 Kiểm thử phần mềm được định nghĩa là một hoạt động để kiểm tra xem kết
quả thực tế có khớp với kết quả mong đợi hay khơng và để đảm bảo rằng hệ
thống phần mềm khơng có khiếm khuyết.
 Kiểm tra rất quan trọng vì lỗi phần mềm có thể tốn kém hoặc thậm chí nguy
hiểm.
 Các lý do quan trọng để sử dụng kiểm thử phần mềm là: hiệu quả về chi phí,
tính bảo mật, chất lượng sản phẩm và sự hài lịng của khách hàng.
 Thơng thường Thử nghiệm được phân loại thành ba loại thử nghiệm chức
năng, thử nghiệm phi chức năng hoặc thử nghiệm hiệu suất và bảo trì.
 Các chiến lược quan trọng trong kỹ thuật phần mềm là: kiểm thử đơn vị,
kiểm thử tích hợp, kiểm tra xác nhận và kiểm thử hệ thống.
- Lịch sử :
Sự tách biệt giữa việc gỡ lỗi (sửa lỗi, debugging) với kiểm thử (testing) lần đầu
tiên được Glenford J. Myers đưa ra vào năm 1979. Mặc dù sự quan tâm của ông là
kiểm thử sự gián đoạn ("một kiểm thử thành cơng là tìm ra được một lỗi") nó minh

họa mong muốn của cộng đồng cơng nghệ phần mềm để tách biệt các hoạt động
phát triển cơ bản, giống như việc tách phần gỡ lỗi ra riêng khỏi quá trình kiểm thử.
Vào năm 1988, Dave Gelperin và William C. Hetzel đã phân loại các giai đoạn và
mục tiêu trong kiểm thử phần mềm theo trình tự sau:
Trước 1956: Hướng về việc kiểm soát lỗi.
1957-1978: Hướng về chứng minh lỗi.
1979-1982: Hướng về tính phá hủy của lỗi.
1983–1987: Hướng về đánh giá lỗi.
1988–2000: Hướng về việc phòng ngừa lỗi.







- Phương pháp kiểm thử :







Kiểm thử tĩnh và động
Phương pháp thăm dò
Kiểm thử hộp trắng
Kiểm thử hộp đen
Kiểm thử dựa trên đặc điểm kỹ thuật
Kiểm thử trực quan


5


1.2 QUI TRÌNH KIỂM THỬ
-Gồm 6 giai đoạn

1.2.1 Requirenment analysis - Phân tích yêu cầu
- Đầu vào : các tài liệu như: tài liệu đặc tả yêu cầu, tài liệu thiết kế hệ thống, tài liệu
khách hàng yêu cầu về các tiêu chí chấp nhận của sản phẩm, bản prototype của
khách hàng yêu cầu(nếu có),...
- Hoạt động : là giai đoạn đầu tiên trong quy trình kiểm thử phần mềm
+ QA team thực hiện đọc hiểu, nghiên cứu và phân tích cụ thể các yêu cầu
trong tài liệu đặc tả của dự án hoặc tài liệu khách hàng nhằm nắm bắt được các yêu
cầu mà dự án đưa ra.
+ Ngoài ra, trong q trình phân tích nếu có câu hỏi phát sinh hay đề xuất
giải quyết, QA team sẽ đưa ra câu hỏi (dạng Yes/ No) với các bên liên quan .
- Đầu ra : tài liệu chứa các câu hỏi và câu trả lời liên quan đến nghiệp vụ của hệ
thống, tài liệu báo cáo tính khả thi, phân tích rủi ro của việc kiểm thử phần mềm.

1.2.2 Test planning - Lập kế hoạch kiểm thử
- Đầu vào : các tài liệu đặc tả đã được cập nhật thông qua các câu hỏi và trả lời
được đưa ra trong giai đoạn phân tích yêu cầu, tài liệu báo cáo tính khả thi, phân
tích rủi ro của việc kiểm thử phần mềm.
- Hoạt động : Dựa vào các tài liệu ,test manager hoặc test leader sẽ là người lập kế
hoạch kiểm thử cho cả QA team nhằm xác định một số yếu tố quan trọng sau:
+ Xác định phạm vi(Scope) dự án : đưa ra lịch trình thực hiện cho từng cơng
việc nhỏ sao cho phù hợp với tồn bộ đội dự án.

6



+ Xác định phương pháp tiếp cận : nhằm đưa ra những phương pháp và kế
hoạch phù hợp nhất cho cả quá trình thực hiện dự án sao cho đúng với các tiêu chí
chấp nhận của sản phẩm và kịp tiến độ với các mốc thời gian bàn giao, phát hành.
+ Xác định các nguồn lực :
 Con người: Bao nhiêu người tham gia dự án, ai sẽ test phần nào, bao
nhiêu tester tham gia?Tester và nhóm phát triển có kinh nghiệm về lĩnh
vực này không?
 Thiết bị: số lượng server, version, máy tính, mobile để thực hiện test là
bao nhiêu.
+ Lên kế hoạch thiết kế công việc test : gồm các nội dung:
 Liệt kê các chức năng cần kiểm thử.
 Để thực hiện test chức năng này thì cần làm những cơng việc gì, trong
thời gian bao lâu, cái nào thực hiện trước, cái nào thực hiện sau, ai là
người thực hiện.
 Xác định điều kiện bắt đầu: xác định những điều kiện tối thiểu để bắt đầu
hoạt động kiểm thử cho từng chức năng.
 Xác định điều kiện kết thúc : khi có những điều kiện nào thì sẽ kết thúc
việc kiểm thử.
- Đầu ra : các tài liệu như test plan, test estimation, test schedule.
1.2.3 Test case development - Thiết kế kịch bản kiểm thử
- Đầu vào : là test plan, test estimation, test schedule, các tài liệu đặc tả đã được cập
nhật.
- Hoạt động :
+ Review tài liệu : xác định công việc cần làm có khác gì so với dự án trước
khách hàng đưa cho, chức năng nào cần test và không cần test lại nữa nhằm tiết
kiệm thời gian mà vẫn đưa ra được kịch bản kiểm thử đầy đủ và hiệu quả.
+ Viết test case/ check list : Tester bắt tay vào việc viết test case dựa vào kế
hoạch đã đưa ra và vận dụng các kỹ thuật thiết kế kịch bản kiểm thử. Test case cần

bao phủ được tất cả các trường hợp kiểm thử. Đồng thời tester cũng cần đánh giá
mức độ ưu tiên cho từng test case.
+ Chuẩn bị dữ liệu kiểm thử: Đội kiểm thử cũng cần chuẩn bị trước các dữ
liệu kiểm thử cho các trường hợp cần thiết như test data, test script.
7


+ Review test case/ check list: Sau khi hoàn thành, các thành viên trong đội
kiểm thử hoặc test leader cũng cần review lại test case đã tạo để có thể bổ sung, hỗ
trợ lẫn nhau nhằm tránh những sai sót trong thiết kế test case và rủi ro về sau.
- Đầu ra : các tài liệu bao gồm: test design, test case, check list, test data, test
automation script.
1.2.4 Test environment set up - Thiết lập môi trường kiểm thử
- Đầu vào : test plan, smoke test case, test data.
- Hoạt động :
+ Việc cài đặt môi trường kiểm thử là giai đoạn cũng rất quan trọng trong
vòng đời phát triển phần mềm. Môi trường kiểm thử sẽ được quyết định dựa trên
những yêu cầu của khách hàng, hay đặc thù của sản phẩm
+ Tester cần chuẩn bị một vài test case để kiểm tra xem môi trường cài đặt
đã sẵn sàng cho việc kiểm thử hay chưa. Đây chính là việc thực thi các smoke test
case.
- Đầu ra : môi trường đã được cài đặt đúng theo yêu cầu, sẵn sàng cho việc kiểm
thử và kết quả của smoke test case.
1.2.5 Test execution - Thực hiện kiểm thử
- Đầu vào : test plan, test design, test case, check list, test data, test automation
script.
- Hoạt động :
+ Thực hiện các test case như thiết kế và mức độ ưu tiên đã đưa ra trên môi
trường đã được cài đặt.
+ So sánh với kết quả mong đợi sau báo cáo các bug xảy ra lên tool quản lý

lỗi và theo dõi trạng thái của lỗi đến khi được sửa thành công.
+ Thực hiện re-test để verify các bug đã được fix và regression test khi có sự
thay đổi liên quan.
+ Trong quá trình thực hiện kiểm thử, kiểm thử viên cũng có thể hỗ trợ, đề
xuất cho cả đội dự án để có giải pháp hợp lý và kết hợp cơng việc hiệu quả.
+ Đo và phân tích tiến độ: so sánh tiến độ thực tế với kế hoạch.Từ đó có thể
sửa chữa test plan cần điều chỉnh để phù hợp với tiến độ dự án đưa ra.
8


+ Report thường xuyên cho PM và khách hàng về tình hình thực hiện dự án:
Cung cấp thơng tin trong quá trình kiểm thử đã làm được những chức năng nào,
cịn chức năng nào, hồn thành được bao nhiều phần trăm công việc, báo cáo các
trường hợp phát sinh sớm, tránh ảnh hưởng tiến độ công việc của cả ngày.
- Đầu ra : test results( kết quả kiểm thử), defect reports( danh sách các lỗi).
1.2.6 Test cycle closure - Đóng chu trình kiểm thử
- Đầu vào : tất cả những tài liệu liên quan đã được tổng hợp, ghi chép và hồn thiện
đầy đủ trong suốt quy trình kiểm thử của dự án.
- Hoạt động : là giai đoạn cuối cùng trong quy trình kiểm thử phần mềm.
+ QA team thực hiện tổng kết, báo cáo kết quả về việc thực thi test case.
Chức năng nào đã hoàn thành test/ chưa hoàn thành test/ trễ tiến độ bàn giao.
+ Đánh giá các tiêu chí hồn thành như phạm vi kiểm tra, chất lượng, chi
phí, thời gian, mục tiêu kinh doanh quan trọng.
+ Giai đoạn này cũng thảo luận tất cả những điểm tốt, điểm chưa tốt và rút ra
bài học kinh nghiệm cho những dự án sau, giúp cải thiện quy trình kiểm thử.
- Đầu ra : các tài liệu: Test report, Test results( final)
Ta có bảng tóm tắt ghi nhớ về 6 giai đoạn như sau :
Giai đoạn

Đầu vào


Hoạt động

Requirenmen
t analysis

*Tài liệu đặc
tả yêu cầu ,
*Tài liệu
khách hàng ,
*Tài liệu thiết
kế hệ thống

Nghiên cứu, phân tích
yêu cầu dự án

Test planning

* Tài liệu đặc
tả yêu cầu( đã
được cập nhật)
* Tài liệu báo
cáo tính khả
thi, phân tích

*Xác định phạm vi dự
án , phương pháp tiếp
cận , nguồn lực
* Lên kế hoạch thiết kế
cơng việc test


9

Đầu ra
* Q&A
document,
Tài liệu báo
cáo tính khả
thi, phân tích
rủi ro của
việc KTPM
* Test Plan
* Test
Estimation
* Test
Schedule

Người
thực
hiện
QA team

Test
manager
/ Test
leader


Test case
development


Test
environment
set up

rủi ro của việc
KTPM
* Tài liệu đặc
tả yêu cầu( đã
được cập nhật)
* Test plan
* Test
estimation
* Test
schedule
* Test plan
* Smoke test
case
* Test data

Test
execution

Test plan
* Test design,
test case,
check list
* Test data
* Test
automation

script

Test cycle
closure

* Tài liệu đặc
tả yêu cầu
* Test plan
* Test results
* Defect
reports
* Tài liệu
Q&A

* Review tài liệu
* Viết test case/ check
list
* Chuẩn bị dữ liệu kiểm
thử
* Review test case/
check list
* Thiết lập môi trường
kiểm thử ( server/
client/ network,...)
* Kiểm tra môi trường
kiểm thử bằng các
smoke test case
* Thực hiện KTPM, retest
* Đo và phân tích tiến
độ

* Điều chỉnh, sửa chữa
tài liệu tiến độ dự án
* Report thường xuyên
cho Project Manager và
khách hàng về tình hình
thực hiện dự án
*Báo cáo kết quả về
việc thực thi test case
* Đánh giá các tiêu chí
hồn thành
* Thảo luận và rút ra
bài học kinh nghiệm

10

* Test design Tester
* Test
case/check
list
* Test data
* Test
automation
script
* Môi trường Tester
kiểm thử
* Kết quả của
smoke test
case
* Test results
* Defect

reports

Tester

* Test report QA team
* Test results(
final)


1.3 KỸ THUẬT KIỂM THỬ THỦ CÔNG VÀ TỰ ĐỘNG
1.3.1 Kiểm thử thủ công
- Kiểm thử thủ công là kiểm thử một phần mềm một cách thủ công (không sử dụng
bất kỳ công cụ tự động hoặc bất kỳ đoạn mã nào). Với loại kiểm thử này, tester như
người sử dụng cuối sẽ kiểm tra phần mềm để xác định bất kỳ hành vi khơng mong
muốn hoặc lỗi. Có rất nhiều giai đoạn để kiểm thử bằng tay như Kiểm thử đơn vị
(Unit testing), Kiểm thử tích hợp (Integration testing), Kiểm thử hệ thống (System
testing) và Kiểm thử chấp nhận (User Acceptance testing).
- Thực hiện kiểm thử mọi thứ bằng tay, từ viết test case đến thực hiện test.
- Kiểm thử thủ cơng địi hỏi nhiều nỗ lực hơn nhưng lại rất cần thiết để kiểm tra
tính khả thi để thực hiện tự động hóa.
- Mục tiêu của kiểm thử thủ công
+ Khái niệm của kiểm thử thủ công là đảm bảo rằng ứng dụng hoạt động
phù hợp với các yêu cầu chức năng được chỉ định.
+Test Suites hoặc cases, được thiết kế trong giai đoạn kiểm thử, có phạm vi
kiểm thử 100%.
+ Kiểm thử thủ công cũng đảm bảo rằng các lỗi đã tìm thấy được sửa chữa
bởi các developer và được kiểm thử lại bởi những tester sau khi các lỗi
được khắc phục.
+ Về cơ bản, kiểm thử thủ công kiểm tra chất lượng của hệ thống và cung
cấp sản phẩm khơng có lỗi cho khách hàng.

- Các loại kiểm thử thủ công
+ Black Box Testing
+ White Box Testing
+ Unit Testing
+ System Testing
+ Integration Testing
+ Acceptance Testing
- Cách thực hiện Kiểm thử thủ công
11


+ Đọc và hiểu tài liệu của dự án phần mềm. Ngoài ra, nghiên cứu Ứng
dụng khi thực hiện kiểm thử (AUT) nếu có.
+ Dự thảo kiểm thử bao gồm tất cả các yêu cầu được đề cập trong tài liệu.
+ Xem xét và vạch ra các trường hợp thử nghiệm với Trưởng nhóm, Khách
hàng
+ Thực hiện các trường hợp kiểm thử trên AUT
+ Báo cáo lỗi.
+ Khi các lỗi đã được sửa sẽ được tester thực hiện một lần nữa các trường
hợp kiểm thử thất bại để xác minh rằng lỗi đã được khắc phục.

1.3.2 Kiểm thử tự động
- Kiểm thử tự động (Automation testing) là khi tester viết kịch bản và sử dụng
những công cụ hỗ trợ để kiểm thử phần mềm. Quá trình này là chuỗi tự động hóa
q trình kiểm thử thủ cơng. Kiểm thử tự động được sử dụng để chạy lại các kịch
bản kiểm thử đã được kiểm thử thủ cơng, nhanh chóng, lặp lại nhiều lần.
- Thực hiện một cách tự động các bước trong kịch bản kiểm thử bằng cách dùng
một công cụ trợ giúp
- Kiểm thử tự động nhằm tiết kiệm thời gian kiểm thử
- Ngoài kiểm thử hồi quy, kiểm thử tự động cũng được sử dụng để kiểm tra ứng

dụng từ load, performance, và stress. Nó tăng thêm độ bao phủ, cải thiện độ chính
xác ,tiết kiệm thời gian và tiền bạc so với kiểm thử thủ công
- Kiểm thử tự động rất quan trọng vì những lý do sau:
 Kiểm thử thủ công tất cả các kịch bản nhiều lần sẽ gây tốn thời gian và tiền
bạc
 Rất khó để kiểm thử thủ cơng các trang web hay phần mềm đa ngơn ngữ
 Kiểm thử tự động hóa khơng cần sự can thiệp của con người. Có thể chạy
kiểm thử tự động qua đêm mà không cần giám sát.
 Kiểm thử tự động hóa làm tăng tốc độ thực hiện kiểm thử
 Kiểm thử tự động hóa giúp tăng phạm vi kiểm thử
 Kiểm thử thủ cơng có thể trở nên nhàm chán, do đó dễ bỏ sót lỗi.

12


- Quy trình kiểm thử tự động hóa bao gồm các bước sau :
+ Lựa chọn công cụ kiểm thử : phụ thuộc vào công nghệ mà Ứng dụng Kiểm
thử được xây dựng.
+ Xác định phạm vi tự động : Các điểm sau giúp xác định phạm vi tự động:








Các tính năng quan trọng
Kịch bản có lượng dữ liệu lớn
Các chức năng chung trên ứng dụng

Tính khả thi về mặt kỹ thuật
Mức độ các thành phần được sử dụng lại
Độ phức tạp của test cases
Khả năng sử dụng các test cases tương tự để kiểm thử trên nhiều trình duyệt

+ Lập kế hoạch, thiết kế và phát triển








Tester tạo một chiến lược & kế hoạch kiểm thử tự động, chi tiết như sau:
Công cụ kiểm thử tự động được chọn
Thiết kế Framework và các tính năng của Framework
Các mục trong phạm vi và ngồi phạm vi tự động hóa
Chuẩn bị kiểm thử tự động hóa
Lịch trình và mốc thời gian thực thi kịch bản kiểm thử
Bàn giao sản phẩm được kiểm thử tự động

+ Thực thi kiểm thử
 Kịch bản kiểm thử tự động hóa được thực thi trong giai đoạn này. Các
Scripts cần dữ liệu kiểm thử đầu vào trước khi được thiết lập để chạy. Sau
khi thực hiện sẽ trả về các báo cáo kiểm thử chi tiết.
 Việc thực thi có thể được thực hiện bằng cách sử dụng công cụ tự động trực
tiếp hoặc thông qua công cụ Quản lý kiểm thử sẽ gọi công cụ tự động hóa.
+ Bảo trì : khi các chức năng mới được thêm vào hệ thống được kiểm thử với
các chu kỳ liên tiếp, Scripts tự động hóa cũng cần được thêm, xem xét và bảo trì

cho mỗi chu kỳ phát hành. Bảo trì trở nên cần thiết để cải thiện hiệu quả của
Scripts trong kiểm thử tự động hóa.
- Lợi ích của kiểm thử tự động:
+ Nhanh hơn 70% so với kiểm thử thủ công
13


+ Phạm vi kiểm thử rộng hơn
+ Kết quả đáng tin cậy
+ Đảm bảo tính nhất quán
+ Tiết kiệm thời gian và chi phí
+ Cải thiện độ chính xác
+ Khơng cần sự can thiệp của con người trong khi thực hiện
+ Tăng hiệu quả
+ Tốc độ tốt hơn trong việc thực hiện kiểm thử thủ công
+ Kịch bản kiểm thử có thể sử dụng lại
+ Có thể Kiểm thử thường xuyên và kỹ lưỡng
+ Nhiều chu kỳ thực hiện có thể đạt được thơng qua tự động hóa
+ Sớm được bàn giao sản phẩm

Ta có bảng so sánh kiểm thử thủ công và kiểm thử tự động
Kiểm thử thủ công
Thực hiện các trường hợp kiểm thử
theo cách thủ công mà không cần bất
kỳ hỗ trợ công cụ nào được gọi là kiểm
thử thủ công.
Tốn nhiều thời gian và tẻ nhạt - vì các
trường hợp kiểm thử được thực hiện
bởi nguồn nhân lực, nó rất chậm và tẻ
nhạt.

Đầu tư lớn vào nguồn nhân lực - Do
các trường hợp kiểm thử cần phải được
thực hiện thủ cơng, cần phải có thêm
nhiều người để thực hiện kiểm thử thủ
cơng.
Ít đáng tin cậy - Kiểm thử thủ cơng ít
đáng tin cậy, vì nó phải tính đến các lỗi
của con người.

Kiểm thử tự động
Thực hiện các trường hợp kiểm thử
bằng cách sử dụng một công cụ tự
động được gọi là kiểm thử tự động.
Kiểm thử tự động nhanh hơn đáng kể
so với nguồn nhân lực.
Ít đầu tư vào nguồn nhân lực - Các
trường hợp kiểm thử được thực hiện
bằng các cơng cụ tự động hóa, do đó
việc kiểm thử tự động u cầu ít nguồn
nhân lực hơn.
Đáng tin cậy hơn - Kiểm thử tự động
chính xác và đáng tin cậy hơn.

14


Khơng lập trình được - Khơng có
Lập trình - Người kiểm tra có thể lập
chương trình nào có thể được thực hiện trình các bài kiểm tra phức tạp để đưa
để viết các bài kiểm tra tinh vi để lấy

ra thơng tin ẩn.
thơng tin ẩn.
1.4MỘT SỐ CƠNG CỤ KIỂM THỬ TỰ ĐỘNG
STT Tên công cụ
1
PhpUnit

2

Selenium
Webdriver

3

NUnit

4

Appium

5

Visual Studio

Giới thiệu
Là một khung công tác kiểm thử đơn
vị cho ngơn ngữ lập trình PHP và được
tạo ra bởi Sebastian Bergmann và sự
phát triển của nó được lưu trữ trên
Github .

là một automation framework dành cho
web, với WebDriver bạn có thể thực
hiện các phiên kiểm thử của mình trên
các trình duyệt khác nhau mà khơng
cần chỉ giới hạn trên Firefox hay
Chrome

là một khung kiểm tra đơn vị mã
nguồn
mở cho .NETFramework và Mono . N
ó phục vụ mục đích giống
như JUnit làm trong thế giới Java và là
một trong nhiều chương trình thuộc
họ xUnit
là một cơng cụ tự động hóa mã nguồn
mở để chạy tập lệnh và thử nghiệm các
ứng dụng gốc, ứng dụng web di động
và ứng dụng kết hợp
trên Android hoặc iOS bằng cách sử
dụng trình duyệt web.

bộ cơng cụ kiểm tra tích hợp dành cho
15

Tính năng
Xuất kết quả kiểm tra ở
một số định dạng khác
nhau, bao gồm
JUnit XML và TestDox
-Hỗ trợ tốt trong việc

coding để tạo test
scripts
-Sử dụng ngay các
phương thức điều kiện
-Hỗ trợ nhiều ngơn ngữ
lập trình khác nhau như
Java, .Net, PHP,
Python, Perl, Ruby
-Các bài kiểm tra có thể
được chạy song song
-Hỗ trợ mạnh mẽ cho
các bài kiểm tra theo
hướng dữ liệu.
-Hỗ trợ nhiều nền tảng
-hỗ trợ “đa nền tảng”
cho phép bạn sử dụng
API giống nhau để viết
test cho các nền tảng
khác nhau
-hỗ trợ kiểm thử tự
động phần mềm trên cả
emulator, simulator và
devices
- Tiến hành, ghi lại và


Test
Professional

các nhà phát triển và nhóm cá

nhân. Nó khơng có mơi trường phát
triển tích hợp để xây dựng các ứng
dụng.
là một giải pháp testing tự động hóa
miễn phí, được xây dựng dựa trên các
khung tự động hóa nguồn mở
Selenium, Appium với giao diện IDE
chuyên dụng để test API, web và di
động

lặp lại các bài kiểm tra
thủ công
- Sử dụng quản lý
trường hợp thử nghiệm
-Kho lưu trữ đối tượng
tích hợp, XPath, nhận
dạng lại đối tượng
-Hỗ trợ các ngôn ngữ
scripting Java / Groovy
-Hỗ trợ tích hợp để test
dựa trên hình ảnh
-Hỗ trợ các cơng cụ tích
hợp liên tục như
Jenkins & TeamCity
-Hỗ trợ Giao diện trình
chỉnh sửa Duel
-Kiểm tra các ứng dụng
Web cùng với Android
và iOS một cách dễ
dàng

- cung cấp các tính
năng quen thuộc với
khả năng nhập các bài
kiểm tra hiện có
- Có thể tái sử dụng
có thể tổ chức các
trường hợp thử nghiệm
thành các dãy giống
như sửa chữa
-kiểm tra hiệu năng của
ứng dụng dựa trên
lượng user và traffic
-khả năng chịu tải rất tốt

6

Katalon
studio

7

Test project

Là một cơng cụ tự động hóa đầu cuối
cung cấp khả năng tự động
hóa các ứng dụng Web , API và Di
động

8


PyUnit

hỗ trợ sửa chữa, trường hợp thử
nghiệm, bộ thử nghiệm và trình chạy
thử nghiệm để kiểm tra tự động mã.

9

LoadStorm

10

Selenium
IDE

là một công cụ kiểm thử cho các ứng
dụng web và mobile. Nó có thể giả lập
hàng trăm nghìn đến hàng triệu user để
tìm kiếm các breaking point trong ứng
dụng
là một công cụ ghi / chạy mà một nhà
phát triển trường hợp thử nghiệm sử
dụng để phát triển các trường hợp thử
nghiệm Selenium
16

-Kiểm soát tốc độ
- Cho phép thực thi
toàn bộ thử nghiệm
- Chạy thử nghiệm

vùng được chọn


11

WinerRunner

12

Jmeter

13

Robotium

14

LoadRuner

15

QTP

- Cho phép tạm dừng và
tiếp tục một trường hợp
thử nghiệm cụ thể
- Giúp nhóm tất cả các
Lệnh Selenese lại với
nhau và thực thi như
một thao tác duy nhất

là công cụ kiểm tra phần mềm tự động -Thực hiện các kỹ thuật
hóa và hỗ trợ phần lớn các ngơn ngữ
kiểm tra khác nhau
lập trình và cơng nghệ phát triển web
- ghi lại chức năng tạo
các bước kiểm tra
Là một ứng dụng mã nguồn mở để
chạy kiểm thử hiệu suất, kiểm thử tải
và kiểm thử hiệu năng của ứng dụng
web

- Giao diện thân thiện
- Cài đặt dễ dàng
- Khả năng mở rộng
cao
- Hỗ trợ đa giao thức
- Ghi lại hoạt động và
mô phỏng trong một
ứng dụng web
là một khung kiểm thử tự động mã
-Kiểm thử tự động UI
nguồn mở, được sử dụng để kiểm thử
và kết nối ràng buộc các
hộp đen mạnh mẽ và đặc biệt là các
thao tác
ứng dụng Android và hỗ trợ đầy đủ cho - có thể làm việc mà
các trường hợp kiểm thử ứng dụng gốc không cần ứng dụng
và lai.
-Có thể được thực hiện
trên giả lập Android

là một công cụ kiểm tra các ứng dụng, -mô phỏng hoạt động
đo lường hành vi của hệ thống và hiệu của người
suất dưới tải.
-phân tích hiệu suất của
các thành phần chính
của ứng dụng
Là cơng cụ kiểm tra GUI tự động cho
-Cho phép người mới
phép tự động hóa hoạt động của người bắt đầu thử nghiệm
dùng trên ứng dụng máy tính dựa trên cơng cụ này trong vài
web hoặc máy khách , sử dụng cho
phút.
kiểm thử hồi quy. Nó sử dụng ngôn
-Công cụ này rất dễ
ngữ kịch bản để thao tác với các đối
hiểu.
tượng và điều khiển của ứng dụng
-Cho phép xác thực
đang được thử nghiệm.
hoàn toàn các ứng dụng
17


thơng việc qua bổ sung
đầy đủ các điểm kiểm
tra
hồn tồn kiểm tra chất lượng của sản -Dễ dàng sử dụng
phẩm thông qua các kết quả trả về mà REST client
không cần quan tâm tới giao diện của
-Giao diện đơn giản, dễ

sản phẩm và Postman đã đa dạng phiên hiểu
bản để phù hợp với hệ điều hành khác -Cho phép post dữ liệu
nhau
theo các định dạng:
text, json, key-value
-Kết quả nhận về theo
nhiều định dạng: text,
hình ảnh, xml, json

16

Postsman

17

TestComplete

là một nền tảng testing chức năng
cung cấp các giải pháp khác nhau để tự
động hóa testing cho máy tính để bàn,
web và ứng dụng di động của
SmartBear Software .

Test GUI ; Hỗ trợ ngôn
ngữ scripting ; Test trực
quan ; Scipted
testing ;Record test và
phát lại

18


Watir

là một công cụ test nguồn mở được
tạo thành từ các thư viện Ruby để tự
động hóa testing ứng dụng web.

19

Rational
funtional
tester

là một công cụ kiểm tra hồi quy và 
kiểm tra chức năng tự động để kiểm tra
chức năng, hồi quy, GUI và kiểm tra 
theo hướng dữ liệu


Test bất kỳ languagebased web application ;
Test trình duyệt chéo;
Tương thích với các
công cụ phát triển theo
định hướng kinh doanh
như RSpec, Cucumber
và Test / Unit ; Test các
nút, biểu mẫu, liên kết
và phản hồi của trang
web
-Tích hợp với

phần mềm khác
-Thử nghiệm gốc
trên thiết bị di động
-Hỗ trợ tất cả các
trình duyệt
- Phát hiện dữ
liệu sớm hơn



18


-Kiểm tra tập


lệnh
20

TestNG

Là một khung thử nghiệm lấy cảm
hứng từ JUnit và NUnit nhưng giới
thiệu một số chức năng mới giúp nó
mạnh mẽ hơn và dễ sử dụng hơn

21

JUnit 5


Là thế hệ tiếp theo của JUnit với mục
tiêu là tạo nền tảng cập nhật cho thử
nghiệm phía nhà phát triển trên JVM.

22

Testing
Anywhere

Là phần mềm cho phép kiểm tra các
ứng dụng, trang Web, đối tượng, điều
khiển và giao diện người dùng GUI

23

SilkTest

là một công cụ để kiểm tra chức năng
và hồi quy tự động của các ứng dụng
doanh nghiệp

24

CSUnit

là một công cụ kiểm tra đơn vị mã
nguồn mở và miễn phí cho .NET
Framework

19


- Chú thích.
- Kiểm tra xem mã có
an tồn đa luồng khơng.
- Cấu hình thử nghiệm
linh hoạt.
- Hỗ trợ kiểm tra theo
hướng dữ liệu - - Hỗ trợ
cho các thơng số.
- Mơ hình thực thi
mạnh mẽ
-Thực hiện test có điều
-Gọi lại vòng test
-Mức độ phân giải tham
số
-Xử lý ngoại lệ
Sử dụng để ghi lại, gỡ
lỗi, lên lịch và chạy các
trường hợp thử nghiệm
cho nhiều loại ứng dụng
khác nhau, chẳng hạn
như Java,
Silverlight, .Net, , C ++,
v.v.
-Cho phép kiểm tra tự
động hóa ở mức độ trực
quan
-Sử dụng ngơn ngữ
4Test dành riêng cho
miền để viết kịch bản tự

động hóa
-Giao diện người dùng
đồ họa dễ sử dụng
-Công thức để kết hợp
một số cụm thử nghiệm
thành một bộ thử
nghiệm


25

CppUnit

là một mô-đun khung cho phép kiểm
tra đơn vị các nguồn C cũng như C ++
với sửa đổi nguồn tối thiểu

-Hoạt động với bất kỳ
ngôn ngữ .NET nào
Khung chạy thử nghiệm
trong các dãy phòng
-Kết quả kiểm tra được
gửi đến một bộ lọc

CHƯƠNG 2: CÔNG CỤ KIỂM THỬ SELENIUM
WEBDRIVER
2.1. Khái niệm
Là khung thử nghiệm đa nền tảng đầu tiên có thể điều khiển trình duyệt từ
cấp độ HĐH và là bộ kiểm thử tự động miễn phí dành cho các ứng dụng web
trên các trình duyệt và nền tảng khác nhau


2.2. Lịch sử
 Được tạo ra bởi Simon Stewart vào năm 2006
 WebDriver là phiên bản mở rộng của Selenium RC với những ưu điểm
vượt trội và giải quyết được nhiều hạn chế của Selenium RC
 Khi các trình duyệt và các ứng dụng web đang trở nên mạnh hơn và hạn
chế hơn với các chương trình JavaScript như Selenium Core.
 Đây là khuôn khổ kiểm tra nền tảng đầu tiên có thể điều khiển trình
duyệt từ cấp hệ điều hành.

2.3. Đặc điểm
 Cho phép người dùng thực hiện kiểm thử tự động dựa trên web.
 Là một công cụ khác hồn tồn và có những ưu điểm vượt trội so với
Selenium RC.
 Hỗ trợ nhiều trình duyệt web, ngơn ngữ lập trình và mơi trường kiểm
thử.
 Giao tiếp trực tiếp với trình duyệt web và sử dụng khả năng tương thích
riêng của trình duyệt để kiểm thử tự động.
20


 Khả năng hỗ trợ của WebDriver không chỉ giới hạn trong các hoạt động
ngoại vi của người dùng truyền thống. Nó cịn hỗ trợ các cơ chế xử lý
hiệu quả cho các hành động phức tạp của người dùng như xử lý
dropdown, gọi Ajax, chuyển đổi giữa các cửa sổ, điều hướng, xử lý
cảnh báo, v.v.
 Cho phép người dùng thực hiện kiểm thử mobile dựa trên web.
 WebDriver nhanh hơn các cơng cụ khác của Selenium Suite vì nó thực
hiện cuộc gọi trực tiếp tới trình duyệt mà khơng cần bất kỳ sự can thiệp
nào từ bên ngồi.


2.4. Ưu/nhược điểm
Ưu điểm

Nhược điểm

Khơng u cầu có server selenium để chạy
kịch bản

API phức tạp.

Tương tác trực tiếp với trình duyệt

Người sử dụng cần có kiến thức về
lập trình

Giao diện hướng đối tượng

Khơng hỗ trợ test mobile

Hỗ trợ cơng cụ tìm kiếm động

Việc migrate từ selenium RC sang
WebDriver là một quá trình mệt mỏi

Cung cấp tiện ích và class hỗ trợ trong việc xử
lý cảnh báo, điều hướng, gọi Ajax và
dropdowns

Không thể test ứng dụng có sử dụng

đối tượng flash/flex

Hỗ trợ test các ứng dụng WAP (iphone/
android)
Hỗ trợ thực thi của người dùng
Nhanh hơn Selenium RC

2.5. Các thành phần
21


 Selenium không phải là 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 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:
o Selenium Integrated Development Environment (IDE).
o Selenium Remote Control (RC).
o Selenium WebDriver.
o Selenium Grid.
 Selenium RC và WebDriver, khi kết hợp với nhau được biết đến với tên
Selenium2. Selenium RC khi độc lập được gọi là Selenium 1.

2.6. Q trình cài đặt
a. Các cơng cụ cần có
 Selenium webdriver download trên Seleniumhq.org
 Drive browser của bên thứ 3, IDE lập trình java (Eclipse)
 Xampp để chạy trên máy chủ Window
b. Quy trình tải

22



 Step 1 : Tải môi trường Java
- Bạn truy cập
link />để download phiên bản phù hợp với cấu hình máy tính.

- Sau khi tải về bạn mở thư mục chứa file JDK sau đó click chuột phải chọn Run as
administrator.

23


 Step 2 : Install Eclipse IDE
- Bạn truy cập
link />để download phiên bản phù hợp với cấu hình máy tính.

24


×