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

TÌM HIỂU VỀ KIỂM THỬ TỰ ĐỘNG VÀ ỨNG DỤNG KIỂM THỬ WEBSITE SỬ DỤNG CÔNG CỤ KIỂM THỬ TỰ ĐỘNG SELENIUM

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 (2.25 MB, 82 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
PHẠM THỊ THU HƯỜNG
TÌM HIỂU VỀ KIỂM THỬ TỰ ĐỘNG VÀ ỨNG DỤNG
KIỂM THỬ WEBSITE SỬ DỤNG CÔNG CỤ KIỂM
THỬ TỰ ĐỘNG SELENIUM
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
HƯNG YÊN – 2014
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
PHẠM THỊ THU HƯỜNG
TÌM HIỂU VỀ KIỂM THỬ TỰ ĐỘNG VÀ ỨNG DỤNG
KIỂM THỬ WEBSITE SỬ DỤNG CÔNG CỤ
TỰ ĐỘNG SELENIUM
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN
ĐỖ THỊ THU TRANG
HƯNG YÊN - 2014
2
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
MỤC LỤC
3
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
DANH SÁCH HÌNH VẼ


Hình 3- 1: Cơ cấu làm việc của bộ ba Selenium IDE, Selenium RC và Selenium
Grid
Hình 3- 2: Trang chủ của selelium
Hình 3- 3: Pop up cài đặt Selenium
Hình 3- 4: Giao diện của selenium ide.
Hình 3- 5: Thực hiện thu các trường hợp kiểm thử
Hình 3- 6: Thực hiện thu các trường hợp kiểm thử_2
Hình 3- 7: Sơ đồ kiến trúc của Selenium RC
Hình 3- 8: Chạy lệnh Selenium Server.
Hình 3- 9: Chạy Selenium RC từ Command prompt
Hình 3- 10: Chạy kịch bản kiểm thử Selenium IDE trên Selenium RC
Hình 3- 11: Tạo project Java.
Hình 3- 12: Thêm các file. jar vào thư viện.
Hình 3- 13: Test case với ngôn ngữ Java trong selenium RC
Hình 3- 14: Export Test Case Selenium IDE sang Test Case Selenium RC
Hình 3- 15: Kết quả chạy test case trên Junit 4
Hình 3- 16: Mô hình công cụ Selenium Grid.
Hình 3- 17: Selenium server với vai trò là một hub.
Hình 3- 18: Phân phối thử nghiệm với selenim grid_1.
Hình 3- 19: Phân phối thử nghiệm với selenim grid_2.
Hình 3- 20: Bắt đầu với một nút
Hình 3- 21: TestScript chạy trên Selenium Grid.
Hình 3- 22: Kết quả chạy TestScript trên Selenium Grid
Hình 3- 23: TestScript_1 kiểm tra đăng nhập của khách hàng với Selenium IDE
Hình 3- 24: TestScript_2 kiểm tra đăng nhập của khách hàng với Selenium IDE
Hình 3- 25: TestScript_3 kiểm tra đăng nhập của khách hàng với Selenium IDE
Hình 3- 26: TestScript_4 kiểm tra đăng nhập của khách hàng với Selenium IDE
Hình 3- 27: Bộ dữ liệu kiểm tra với Selenium IDE
Hình 3- 28: Thêm bộ dữ liệu email_invaild.js vào Selenium IDE
Hình 3- 29: TestScript_5 kiểm tra đăng nhập của khách hàng với Selenium IDE sử dụng extention.js

Hình 3- 30: TestScript_6 kiểm tra đăng nhập của khách hàng với Selenium IDE
Hình 3- 31: Kết quả kiểm thử chức năng đăng nhập của khách với Selenium IDE
Hình 3- 32: Kết quả kiểm thử chức năng đăng nhập chạy trên công cụ TestNG
Hình 3- 33: Kết quả kiểm thử chức năng đăng ký dành cho khách hàng
Hình 3- 34: Kết quả kiểm thử chức năng đặt hàng
4
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
Hình 3- 35: Kết quả kiểm thử chức năng đăng nhập hệ thống
Hình 3- 36: Kết quả kiểm thử chức năng thêm sản phẩm
Hình 3- 37: Kết quả kiểm thử chạy trên Selenium Grid
Hình 3- 38: Kết quả báo cáo kiểm thử chạy trên Selenium Grid
5
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
DANH SÁCH BẢNG BIỂU

6
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt Từ đầy đủ Giải thích
IDE Integrated Development
Environment
Môi trường phát triển thích hợp.
Là công cụ phát triển các trường
hợp thử nghiệm Selenium
RC Remote Control Điều khiển từ xa
Selen Selenium Công cụ kiểm thử tự động
7

Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.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 ngày một chiếm vị trí 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 đất nước ta. Cùng với sự phát triển của công nghệ
phần mềm, lỗi phần mềm và chất lượng phần mềm luôn là thách thức lớn với bản
thân ngành phần mềm khi thực tế đã chứng minh, kiểm thử phần mềm là giai đoạn
chiếm đến hơn 40% thời gian, kinh phí và nguồn nhân lực phát triển dự án phần
mềm. Tuy nhiên ở Việt Nam hiện nay, việc kiểm thử phần mềm vẫn chưa thực sự
được nhìn nhận đúng với tầm quan trọng của nó. Điều này thể hiện ở tỷ lệ kỹ sư
kiểm thử phần mềm ở Việt Nam còn khá thấp, cứ 5 lập trình viên thì mới có 1 kỹ sư
kiểm thử (số liệu thống kê năm 2011 của công ty LogiGear), trong khi tỷ lệ này theo
chuẩn quốc tế là 3:1. Thêm vào đó, mức độ đáp ứng của kỹ sư kiểm thử phần mềm
ở Việt Nam chưa cao. Nguyên nhân của việc này đến từ sự thiếu hụt các đơn vị đào
tạo chuyên sâu về kiểm thử và nguyên nhân sâu xa vẫn là vấn đề kiểm thử phần
mềm ở Việt Nam vẫn chưa được chuyên nghiệp hóa và đầu tư đúng mức.
Ngày nay, tự động hóa đang được nghiên cứu và ứng dụng trong nhiều lĩnh
vực trong đó công nghệ phần mềm nói chung và kiểm thử phần mềm nói riêng cũng
không ngoại lệ. Khi mà kiểm thử phần mềm vẫn tiêu tốn một lượng lớn thời gian,
kinh phí và nhân lực trong một dự án phần mềm thì song song với kiểm thử truyền
thống thủ công, sự ra đời của các công cụ hỗ trợ kiểm thử tự động như Quick Test
Professional, Nunit, Junit, Load Runner là tất yếu. Selenium là một công cụ kiểm
thử các ứng dụng web có khá nhiều ưu điểm như có thể kiểm thử trên nhiều trình
duyệt, hỗ trợ nhiều ngôn ngữ lập trình, giao tiếp được với các công cụ kiểm thử
khác như Junit, TestNG (với Java) hay Nunit (với C#), và ưu điểm đặc biệt của công
cụ này là nó là một bộ mã nguồn mở, do đó các tổ chức sẽ không tốn kinh phí mua
bản quyền. Tuy chưa được ứng dụng nhiều trong các tổ chức ở Việt Nam, song với
8

Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
những ưu điểm trên, Selenium hứa hẹn sẽ ngày càng phát triển và trở lên thông
dụng hơn trong các tổ chức phát triển phần mềm ở nước ta.
Với mong muốn có cái nhìn xác thực, rõ ràng hơn về kiểm thử phần mềm và
tiếp cận được với công cụ kiểm thử tự động Selenium để làm tiền đề cho định
hướng tương lai khi tốt nghiệp đại học sẽ trở thành một kỹ sư kiểm thử phần mềm,
cá nhân em lựa chọn để tài “Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử
website sử dụng công cụ kiểm thử tự động Selenium” làm đề tài cho đồ án tốt
nghiệp đại học của mình. Trong khuôn khổ đồ án, do thời gian và kinh nghiệm thực
tế còn hạn chế nên có những phần thực hiện chưa được tốt, em rất mong nhận được
sự góp ý của thầy cô và các bạn.
1.2 Mục tiêu của đề tài
- Nắm được lý thuyết kiểm thử phần mềm, kiểm thử tự động phần mềm.
- Nắm được lý thuyết về công cụ kiểm thử tự động Selenium.
- Ứng dụng được công cụ Selenim IDE, selenium RC, selenium Core,
selenium Grid, Selenium Webdriver vào kiểm thử website.
1.3 Giới hạn và phạm vi của đề tài
- Tập trung vào lý thuyết kiểm thử, kiểm thử tự động, công cụ Selenium.
- Ứng dụng được công cụ Selenim IDE, selenium Core, Selenium Grid,
selenium Webdriver vào kiểm thử website.
1.4 Nội dung thực hiện
- Trình bày được lý thuyết kiểm thử tự động phần mềm, kiểm thử ứng dụng
website.
- Trình bày được lý thuyết về công cụ kiểm thử tự động Selenium.
- Ứng dụng được bộ công cụ kiểm thử tự động Selenium vào kiểm thử
website.
9
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.

1.5 Phương pháp tiếp cận
- Sử dụng các phương pháp nghiên cứu:
o Phương pháp đọc tài liệu.
o Phương pháp phân tích mẫu.
o Phương pháp thực nghiệm.
10
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Kiểm thử phần mềm
Kiểm thử phần mềm là khâu mấu chốt để đảm bảo chất lượng phần mềm, là
đánh giá cuối cùng về các đặc tả, thiết kế và mã hóa.
Kiểm thử phần mềm là quá trình chạy một ứng dụng để phát hiện lỗi và xem
nó có thỏa mãn các yêu cầu đặt ra không. Trong quá trình phát triển phần mềm,
những người phát triển phần mềm và các kỹ sư kiểm thử cùng làm việc để phát hiện
lỗi và đảm bảo chất lượng sản phẩm. Một sản phẩm phần mềm được phân phối phải
có đầy đủ các chức năng yêu cầu và tương thích với phần cứng của khách hàng.
Mục tiêu đầu tiên của kiểm thử là ngăn ngừa lỗi, ngăn ngừa lỗi còn tốt hơn là
sửa lỗi vì ngăn ngừa được lỗi thì sẽ là tốt hơn và không phải sửa mã, giải quyết
được vấn đề ngay từ đầu sẽ làm giảm bớt chi phí về thời gian và công sức sửa chữa
chương trình sau này.
2.2 Kiểm thử tự động
2.2.1 Khái niệm kiểm thử tự động
Kiểm thử tự động là quá trình thực hiện một cách tự động các bước trong một
test case. Nó sử dụng một công cụ kiểm thử tự động nào đó để rút ngắn thời gian
kiểm thử. Kiểm thử tự động hỗ trợ các kiểm thử viên rất nhiều tùy vào công cụ và
các nội dung kiểm thử có thể thực hiện bằng tay hay không. Đối với những nhiệm
vụ kiểm tra khó mà thực hiện bằng tay hoặc yêu cầu chi phí về nhân công là quá lớn
thì sử dụng công cụ hỗ trợ là điều hết sức cần thiết.
Ưu, nhược điểm của kiểm thử tự động:

- Các ưu điểm của kiểm thử tự động.
o Kiểm thử chính xác và có thể bao quát thông tin
o Theo dõi được chính xác kết quả từng giai đoạn và các báo cáo
tổng hợp
11
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
o Cần ít nhân lực trong quá trình kiểm thử
o Chu kỳ kiểm thử diễn ra trong thời gian ngắn
o Hiệu năng của kiểm thử các lớp vượt xa tầm với của kiểm thử
thủ công.
- Các nhược điểm của kiểm thử tự động.
o Chi phí cao cho việc chuyển giao công nghệ và đào tạo nhân
viên
o Tốn chi phí đầu tư lớn cho việc phát triển công cụ kiểm thử tự
động
o Tốn chi phí và thời gian cho việc tạo các kịch bản kiểm thử và
bảo trì các kịch bản kiểm thử
o Giai đoạn chuẩn bị kiểm thử yêu cầu nhiều nhân lực
o Khu vực kiểm thử tự động có thể không bao quát đầy đủ,
không áp dụng được trong việc tìm lỗi mới của phần mềm.
Các trường hợp không nên áp dụng kiểm thử tự động.
Không phải lúc nào cũng nên áp dụng kiểm thử tự động trong việc kiểm
thử phần mềm, vì nhiều khi chi phí và thời gian cho việc kiểm thử tự động còn
lớn hơn nhiều so với kiểm thử thủ công. Dưới đây là một số trường hợp nên áp
dụng phương pháp kiểm thử tự động để đạt được hiệu quả cao về thời gian, chi
phí cũng như chất lượng.
- Trường hợp không đủ tài nguyên: Là khi số lượng trường hợp kiểm thử lặp lại quá
nhiều trên nhiều môi trường kiểm thử khác nhau, không có đủ nguồn nhân lực để
kiểm thử thủ công trong một giới hạn thời gian nào đó.

- Trường hợp kiểm thử hồi qui: Trong quá trình phát triển phần mềm, nhóm lập trình
thường đưa ra nhiều phiên bản phần mềm liên tiếp để kiểm thử. Thực tế cho thấy
việc đưa ra các phiên bản phần mềm có thể là hàng ngày, mỗi phiên bản bao gồm
12
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
những tính năng mới, hoặc tính năng cũ được sửa lỗi hay nâng cấp. Việc bổ sung
hoặc sửa lỗi mã chương trình cho những tính năng ở phiên bản mới có thể làm cho
những tính năng khác đã kiểm tra tốt chạy sai mặc dù phần mã chương trình của nó
không hề chỉnh sửa. Để khắc phục điều này, đối với từng phiên bản, kiểm thử viên
không chỉ kiểm tra chức năng mới hoặc được sửa, mà phải kiểm tra lại tất cả những
tính năng đã kiểm tra tốt trước đó. Điều này khó khả thi về mặt thời gian nếu kiểm
thử thủ công.
- Trường hợp kiểm thử khả năng vận hành phần mềm trong môi trường đặc biệt: Đây
là kiểm thử nhằm đánh giá xem vận hành của phần mềm có thỏa mãn yêu cầu đặt ra
hay không. Thông qua đó kiểm thử viên có thể xác định được các yếu tố về phần
cứng, phần mềm ảnh hưởng đến khả năng vận hành của hệ thống. Có thể liệt kê một
số tình huống kiểm tra tiêu biểu thuộc loại này như sau:
o Đo tốc độ trung bình xử lý một yêu cầu của web server.
o Thiết lập 1000 yêu cầu, đồng thời gửi đến web server để kiểm
tra tình huống 1000 người dùng truy xuất web cùng lúc.
o Xác định số yêu cầu tối đa được xử lý bởi web server hoặc xác
định cấu hình máy thấp nhất mà tốc độ xử lý của phần mềm
vẫn có thể hoạt động ở mức cho phép.
2.2.2 Quy trình kiểm thử tự động
Một công cụ kiểm thử phần mềm tự động yêu cầu phải làm được những công
việc sau:
- Hiểu các mã assembly được kiểm tra một cách tự động.
- Tiến hành các nhiệm vụ đơn giản và lặp đi lặp lại một cách tự động.
- Tạo ra các kịch bản và chạy các kịch bản trong những lô lệnh theo một

lịch trình đã vạch ra.
- Kiểm tra giao diện của các đối tượng DOM và các thành phần phần
mềm khác với tập dữ liệu được thiết lập sẵn.
13
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
- Truy cập vào dữ liệu để xác minh lại các kết quả.
- Truy cập vào Regestry để xác minh lại các kết quả.
Quá trình thực hiện kiểm thử thông thường được thực hiện bằng tay:
Sau khi lập kế hoạch, kiểm thử viên thiết kế các test case gồm dữ liệu đầu vào,
dữ liệu đầu ra mong chờ và kết quả thực hiện (điền sau khi test). Tùy theo yêu cầu
và phương pháp được chọn kiểm thử viên thực thi test bằng tay và ghi lại kết quả
trên giấy cuối cùng đánh giá kết quả đó với kết quả mong chờ đã chuẩn bị trước đó.
Với phương pháp kiểm thử bằng tay này chỉ sử dụng cho một số nội dung kiểm thử
như kiểm thử giao diện, tài liệu hoặc test các class, phương thức đơn giản… còn với
test về hiệu năng, khả năng chịu tải (stress/volume test), kiểm thử cấu hình… thì
phương pháp này khó mà thực hiện được. Do vậy cần có công cụ kiểm thử tự động
hỗ trợ thực hiện.
Quy trình của kiểm thử tự động:
Quy trình kiểm thử tự động phần mềm cũng giống như quy trình thực hiện
bằng tay chỉ khác ở chỗ kiểm thử tự động có hỗ trợ của công cụ ít hoặc nhiều như
tạo script (có thể bằng tay hoặc công cụ), công cụ hỗ trợ về ghi lại kết quả và lưu
trữ kết quả trong máy tính. Quy trình này cũng gần tương tự với quy trình phát triển
phần mềm, được thực hiện qua nhiều bước, được tiến hành rất sớm trong quy trình
phát triển phần mềm và đội kiểm thử tiến hành gần như song song cùng đội phát
triển phần mềm.
Hình 2- : Quy trình của kiểm thử tự động
14
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.

Lập kế hoạch kiểm tra:
Mục đích: Nhằm chỉ định và mô tả các loại kiểm tra 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 KTPM, bao gồm
nhiều chi tiết từ các loại kiểm tra, chiến lược kiểm tra, cho đến thời gian và phân
định lực lượng kiểm tra viên.
Bản kế hoạch kiểm tra đầu tiên được phát triển rất sớm trong chu trình phát
triển phần mềm (PTPM), ngay từ khi các yêu cầu đã tương đối đầy đủ, các chức
năng và luồng dữ liệu chính đã được mô tả. Bản kế hoạch này có thể được coi là
bản kế hoạch chính (master test plan), trong đó tất cả các kế hoạch chi tiết cho các
mức kiểm tra và loại kiểm tra khác nhau đều được đề cập.
Sau khi bản kế hoạch chính được phát triển, các bản kế hoạch chi tiết lần lượt
được thiết kế theo trình tự thời gian phát triển của dự án. (Hình 1.1 minh hoạ thời
điểm phù hợp để thiết lập các kế hoạch kiểm tra, gắn liền với quá trình phát triển
của dự án. Quá trình phát triển các kế hoạch kiểm tra không dừng lại tại một thời
điểm, mà liên tục được cập nhật chỉnh sửa cho phù hợp đến tận cuối dự án.).

Hình 2- : Bản kế hoạch chính và các bản kế hoạch chi tiết.
Các bước lập kế hoạch:
15
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
Xác định yêu cầu kiểm tra: chỉ định bộ phận, thành phần của phần mềm sẽ
được kiểm tra, phạm vi hoặc giới hạn của việc kiểm tra. Yêu cầu kiểm tra cũng
được dùng để xác định nhu cầu nhân lực.
Khảo sát rủi ro: Các rủi ro có khả năng xảy ra làm chậm hoặc cản trở quá
trình cũng như chất lượng kiểm tra. Ví dụ: kỹ năng và kinh nghiệm của kiểm tra
viên quá yếu, không hiểu rõ yêu cầu.
Xác định chiến lược kiểm tra: chỉ định phương pháp tiếp cận để thực hiện
việc kiểm tra trên phần mềm, chỉ định các kỹ thuật và công cụ hỗ trợ kiểm tra, chỉ
định các phương pháp dùng để đánh giá chất lượng kiểm tra cũng như điều kiện để

xác định thời gian kiểm tra.
Xác định nhân lực,vật lực: kỹ năng, kinh nghiệm của kiểm tra viên; phần
cứng, phần mềm, công cụ, thiết bị giả lập… cần thiết cho việc kiểm tra.
Lập kế hoạch chi tiết: ước lượng thời gian, khối lượng công việc, xác định
chi tiết các phần công việc, người thực hiện, thời gian tất cả các điểm mốc của quá
trình kiểm tra.
Tổng hợp và tạo các bản kế hoạch kiểm tra: kế hoạch chung và kế hoạch chi
tiết.
Xem xét các kế hoạch kiểm tra: phải có sự tham gia của tất cả những người
có liên quan, kể cả trưởng dự án và có thể cả khách hàng. Việc xem xét nhằm bảo
đảm các kế hoạch là khả thi, cũng như để phát hiện (và sữa chữa sau đó) các sai sót
trong các bản kế hoạch.
Thiết kế Test:
Mục đích: Nhằm chỉ đị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 là hết sức quan trọng, nó bảo đảm tất
cả các tình huống kiểm tra “quét” hết tất cả yêu cầu cần kiểm tra.
16
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
Hình dưới cho thấy việc thiết kế test không phải chỉ làm một lần, nó sẽ được
sửa chữa, cập nhật, thêm hoặc bớt xuyên suốt chu kỳ PTPM, vào bất cứ lúc nào có
sự thay đổi yêu cầu, hoặc sau khi phân tích thấy cần được sửa chữa hoặc bổ sung.

Hình 2- : Thời điểm phù hợp để thiết lập các kế hoạch kiểm tra.
Các bước thiết kế test bao gồm:
Xác định và mô tả Test case: xác định các điều kiện cần thiết lập trước và
trong lúc kiểm tra. Mô tả đối tượng hoặc dữ liệu đầu vào, mô tả các kết quả mong
chờ sau khi kiểm tra.
Mô tả các bước chi tiết để kiểm tra: các bước này mô tả chi tiết để hoàn
thành một Test case khi thực hiện kiểm tra. Các Test case như đã nói ở trên thường

chỉ mô tả đầu vào, đầu ra, còn cách thức tiến hành như thế nào thì không được định
nghĩa. Thao tác này nhằm chi tiết hóa các bước của một Test case, cũng như chỉ
định các loại dữ liệu nào cần có để thực thi các Test case, chúng bao gồm các loại
dữ liệu trực tiếp, gián tiếp, trung gian, hệ thống…
Xem xét và khảo sát độ bao phủ của việc kiểm tra: mô tả các chỉ số và cách
thức xác định việc kiểm tra đã hoàn thành hay chưa? Bao nhiêu phần trăm phần
mềm đã được kiểm tra? Để xác định điều này có hai phương pháp: căn cứ trên yêu
cầu của phần mềm hoặc căn cứ trên số lượng code đã viết.
17
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
Xem xét Test case và các bước kiểm tra: Việc xem xét cần có sự tham gia của
tất cả những người có liên quan, kể cả trưởng dự án nhằm bảo đảm các Test case và
dữ liệu yêu cầu là đủ và phản ánh đúng các yêu cầu cần kiểm tra, độ bao phủ đạt
yêu cầu, cũng như để phát hiện (và sữa chữa) các sai sót.
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 tra,
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.
Các bước phát triển Test script bao gồm:
Tạo Test script: thủ công hoặc dùng công cụ hỗ trợ để phát sinh script một
cách tự động (tuy nhiên trong hầu hết mọi trường hợp, ta vẫn phải chỉnh sửa ít hoặc
nhiều trên các script được sinh tự động). Thông thường, mỗi bước kiểm tra được
thiết kế trong phần thiết kế test, đòi hỏi ít nhất một Test Script. Các Test Script có
khả năng tái sử dụng càng nhiều càng tốt để tối ưu hóa công việc.
Kiểm tra Test script: xem có “chạy” tốt không nhằm bảo đảm các Test script
hoạt động đúng yêu cầu, thể hiện đúng ý đồ của các bước kiểm tra.
Thành lập các bộ dữ liệu ngoài dành cho các Test script: bộ dữ liệu này sẽ
được các Test script sử dụng khi thực hiện kiểm tra tự động. Gọi là “ngoài” vì

chúng được lưu độc lập với các Test script, tránh trường hợp vì dễ dãi, một số kiểm
tra viên “tích hợp” luôn phần dữ liệu vào bên trong code của các script (thuật ngữ
chuyên môn gọi là “hard-code”). Việc tách riêng dữ liệu cho phép dễ dàng thay đổi
dữ liệu khi kiểm tra, cũng như giúp việc chỉnh sửa hoặc tái sử dụng các script sau
này.
Xem xét và khảo sát độ bao phủ của việc kiểm tra: bảo đảm các Test Script
được tạo ra bao phủ toàn bộ các bước kiểm tra theo yêu cầu.
Thực hiện kiểm tra:
18
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
Mục đích: Thực hiện các bước kiểm tra đã thiết kế (hoặc thi hành các Test
script nếu tiến hành kiểm tra tự động) và ghi nhận kết quả.
Việc thực hiện kiểm tra cũng được làm rất nhiều lần trong suốt chu trình
kiểm tra, cho đến khi kết quả kiểm tra cho thấy đủ điều kiện để dừng hoặc tạm dừng
việc thực hiện.
Quá trình thực hiện kiểm tra thường thông qua các bước sau:
Thực hiện các bước kiểm tra: thủ công hoặc thi hành các Test script nếu là
quy trình kiểm tra tự động. Để thực hiện kiểm tra, thao tác đầu tiên cần làm là xác
lập và khởi động môi trường và điều kiện kiểm tra. Việc này nhằm bảo đảm tất cả
các bộ phận liên quan (như phần cứng, phần mềm, máy chủ, mạng, dữ liệu…) đã
được cài đặt và sẵn sàng, trước khi chính thức bắt đầu thực hiện kiểm tra.
Đánh giá quá trình kiểm tra: giám sát quá trình kiểm tra suôn sẻ đến khi hoàn
thành hay bị treo và dừng giữa chừng, có cần bổ sung hay sữa chữa gì không để quá
trình kiểm tra được tốt hơn:
Nếu quá trình diễn ra trơn tru, kiểm tra viên hoàn thành chu kỳ kiểm tra và
chuyển qua bước “Thẩm định kết quả kiểm tra”
Nếu quá trình bị treo hoặc dừng giữa chừng, kiểm tra viên cần phân tích để
xác định nguyên nhân lỗi, khắc phục lỗi và lập lại quá trình kiểm tra.
Thẩm định kết quả kiểm tra: sau khi kết thúc, kết quả kiểm tra cần được xem

xét để bảo đảm kết quả nhận được là đáng tin cậy, cũng như nhận biết được những
lỗi xảy ra không phải do phần mềm mà do dữ liệu dùng để kiểm tra, môi trường
kiểm tra hoặc các bước kiểm tra (hoặc Test script) gây ra. Nếu thực sự lỗi xảy ra do
quá trình kiểm tra, cần phải sửa chữa và kiểm tra lại từ đầu.
Đánh giá quá trình kiểm tra:
Mục đích: Đánh giá toàn bộ quá trình kiểm tra, bao gồm xem xét và đánh giá
kết quả kiểm tra, liệt kê lỗi, chỉ định các yêu cầu thay đổi, và tính toán các số liệu
19
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
liên quan đến quá trình kiểm tra (chẳng hạn số giờ, thời gian kiểm tra, số lượng lỗi,
phân loại lỗi…).
Mục đích của việc đánh giá kết quả kiểm tra ở bước này hoàn toàn khác với
bước thẩm định kết quả kiểm tra sau khi hoàn tất một vòng kiểm tra. Đánh giá kết
quả kiểm tra ở giai đoạn này mang tính toàn cục và nhằm vào bản thân giá trị của
các kết quả kiểm tra.
Việc đánh giá quá trình và kết quả kiểm tra được thực hiện song song với bất
kỳ lần kiểm tra nào và chỉ chấm dứt khi quá trình kiểm tra đã hoàn tất.
Đánh giá quá trình kiểm tra thường thông qua các bước sau:
o Phân tích kết quả kiểm tra và đề xuất yêu cầu sửa chữa: Chỉ định và
đánh giá sự khác biệt giữa kết quả mong chờ và kết quả kiểm tra thực
tế, tổng hợp và gửi thông tin yêu cầu sửa chữa đến những người có
trách nhiệm trong dự án, lưu trữ để kiểm tra sau đó.
o Đánh giá độ bao phủ: Xác định quá trình kiểm tra có đạt được độ bao
phủ yêu cầu hay không, tỷ lệ yêu cầu đã được kiểm tra (tính trên các
yêu cầu của PM và số lượng code đã viết).
o Phân tích lỗi: Đưa ra số liệu phục vụ cho việc cải tiến các qui trình phát
triển, giảm sai sót cho các chu kỳ phát triển và kiểm tra sau đó. Ví dụ,
tính toán tỷ lệ phát sinh lỗi, xu hướng gây ra lỗi, những lỗi “ngoan cố”
hoặc thường xuyên tái xuất hiện.

o Xác định quá trình kiểm tra có đạt yêu cầu hay không: Phân tích đánh
giá để xem các Test case và chiến lược kiểm tra đã thiết kế có bao phủ
hết những điểm cần kiểm tra hay không? Kiểm tra có đạt yêu cầu dự án
không? Từ những kết quả này, kiểm tra viên có thể sẽ phải thay đổi
chiến lược hoặc cách thức kiểm tra.
o Báo cáo tổng hợp: Tổng hợp kết quả các bước ở trên và phải được gửi
cho tất cả những người có liên quan.
20
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
2.3 Kiểm thử ứng dụng website
2.3.1 Khái quát kiểm thử ứng dụng website
Các ứng dụng Web đã được phát triển và trở thành một nền tảng kết nối thông
tin thiết yếu trong nhiều doanh nghiệp. Các ứng dụng Web đóng vai trò quyết định
của thương mại điện tử, trao đổi thông tin.
Để có thể đạt được điều này, các ứng dụng Web cần phải có hiệu năng cao,
đáng tin cậy…Việc đưa ra một ứng dụng Web hoàn hảo cho những người đang và
sẽ sử dụng ứng dụng đã trở thành một thách thức chính trong đảm bảo chất lượng.
Kiểm thử là một trong những công việc quan trọng để có thể đánh giá chất lượng
của một sản phẩm và đương nhiên là các ứng dụng Web cũng sẽ không phải là
ngoại lệ. Các phương pháp kiểm thử thông thường và các kỹ thuật sẽ tập trung vào
đánh giá các chức năng yêu cầu của ứng dụng. Tuy nhiên, không thể nào tập trung
được vào hết tất cả các chức năng yêu cầu. Bởi có rất nhiều chức năng quan trọng
cho người sử dụng ứng dụng như đó là: Tính hiệu năng, tính dễ sử dụng, độ tin cậy
và tính bảo mật cần phải được xem xét. Những yêu cầu và mong đợi của người sử
dụng, những vấn đề về nền tảng cấu hình, mô hình nghiệp vụ, sự phát triển và chi
phí cho việc kiểm thử là những vấn đề thường hay gặp phải và thay đổi liên tục đổi
xuyên suốt chu trình của một ứng dụng Web. Vì thế, cần thiết phải phát triển một
chiến lược hiệu quả cho việc kiểm thử mà có thể bao quát được giới hạn tổng thể
rộng lớn của những yêu cầu, chức năng cho một ứng dụng Web qua đó có thể giúp

cho việc cài đặt, hoàn thành ứng dụng cũng như tránh được các rủi ro có thể gặp.
2.3.2 Các đặc điểm về chất lượng của một ứng dụng web
Một người sử dụng không chỉ mong đợi chương trình của họ sẽ vận hành một
cách ổn định, đúng đắn mà họ còn yêu cầu một số chức năng nào đó phải luôn sẵn
sàng trên 24 giờ trong 1 ngày và 7 ngày trong một tuần. Hơn nữa, người sử dụng
còn mong đợi ở chương trình những ưu điểm sau: tính dễ sử dụng, độ tin cậy, tốc
độ, tương thích với các hệ thống khác nhau và tương thích với các phiên bản trong
tương lại. Còn với một ứng dụng Web, thì những yêu cầu về chất lượng bao gồm:
21
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
- Yêu cầu về chức năng: sự hiện diện của các chức năng đáp ứng yêu cầu
được xác định. Các yêu cầu cần có nữa là tính phù hợp, chính xác, khả
năng tương tác, tuân thủ và bảo mật.
- Yêu cầu về độ tin cậy: khả năng của một ứng dụng để duy trì sự hiệu
quả của nó trong một điều kiện cụ thể và trong một khoảng thời gian
xác định.
- Yêu cầu về khả năng sử dụng: tính dễ sử dụng và hiệu quả của một ứng
dụng. Vấn đề này có thể được thẩm định bởi một nhóm người dùng giả
định.
- Yêu cầu về hiệu quả: tỷ lệ giữa mức độ hiệu quả của một ứng dụng và
các tài nguyên mà nó sử dụng trong các điều kiện cụ thể.
Các yêu cầu về chất lượng đóng một vai trò thiết yếu khi thử nghiệm các ứng
dụng Web. Mặc dù nhìn chung thì chúng tương tự như những yêu vầu về chất lượng
cho các hệ thống phần mềm truyền thống, tuy nhiên chúng có thể có mức độ đòi hỏi
cao hơn về chiều sâu.
Do ý nghĩa quan trọng của các đặc điểm về chất lượng và sự khác biệt ở cách
mà chúng được kiểm thử, nhiều phương pháp để kiểm thử một ứng dụng Web tập
trung vào một vài các đặc điểm. Tuy nhiên tất cả các đặc điểm trên đều quan trọng
đối vứi một ứng dụng Web. Và công việc kiểm thử phải đảm bảo những yêu cầu này

được cài đặt thành công.
2.3.3 Các kỹ thuật kiểm thử ứng dụng website.
a) Kiểm thử chức năng
Kiểm thử chức năng là kiểm tra tất cả chức năng của ứng dụng web. Kiểm tra
tất cả các links trong trang web, kết nối cơ sở dữ liệu, định dạng được sử dụng trong
các trang web nhận những thông tin cần thiết từ người dùng, kiểm tra cookie.
Kiểm tra tất cả các liên kết (links)
- Kiểm tra các links liên kết ngoài trang.
22
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
- Kiểm tra tất cả các links nội bộ.
- Kiểm tra links tới các vị trí trong cùng trang.
- Kiểm tra các linsk sử dụng để gửi mail tới admin hoặc người dùng khác
từ trang web.
- Kiểm tra xem có trang trống nào không.
Kiểm tra form của tất cả các trang
Form là phần cơ bản của bất kì trang Web nào. Form dùng để nhận thông tin
từ người dùng và tương tác với admin. Những điều cần được kiểm tra trong form là:
- Kiểm tra tất cả các trường hợp bắt buộc.
- Kiểm tra các giá trị mặc định của các trường.
- Các đầu vào sai cho các trường.
- Kiểm tra các form bất kỳ: thêm, sửa, xóa
Kiểm thử cookie:
Cookie là các file nhỏ được lưu trong máy người dùng. Đây là cách cơ bản để
duy trì các phiên làm việc, đặc biệt là các phiên đăng nhập. Kiểm thử ứng dụng
bằng cách chọn “cho phép lưu” hoặc “không cho phép lưu” cookie từ trình duyệt
của bạn.
Kiểm tra các cookies có được mã hóa khi ghi vào máy người dùng. Nếu đang
kiểm thử cookie (ví dụ cookie hết hạn sau khi kết thúc phiên làm việc) thì hãy kiểm

tra các phiên đăng nhập và tạng thái của người dùng sau khi phiên làm việc kết
thúc. Kiểm tra bảo mật bằng cách xóa các cookies.
Xác minh HTML/CSS
Nếu ta đang tối ưu hóa các trang web cho các công cụ tìm kiếm (Search
engines) thì việc xác minh HTML/CSS là rất quan trọng. Việc xác minh chủ yếu là
các lỗi cú pháp HTML
Kiểm thử cơ sở dữ liệu
23
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
Sự nhất quán về dữ liệu rất quan trọng trong ứng dụng web. Kiểm tra tính toàn
vẹn của cơ sở dữ liệu và các lỗi khi ta thêm, sửa, xóa có forms hoặc thực hiện bất kì
chức năng nào có liên quan đến cơ sở dữ liệu. Kiểm tra các câu truy vấn cơ sở dữ
liệu có thực thi chính xác, dữ liệu lấy và cập nhật có chính xác không.
b) Load, Stress và kiểm thử tính liên tục
Kiểm thử khả năng chịu tải, áp lực và kiểm thử liên tục được dựa trên các thủ
tục tương tự. Một số yêu cầu được gửi đến các ứng dụng web nhỏ hơn đồng thời
kiểm tra bởi người dùng mô phỏng để đo lường phản ứng lần và thông qua. Các yêu
cầu sử dụng trong các thử nghiệm này được tạo ra bởi một hoặc một vài “máy tải”.
Một ứng dụng kiểm soát phân phối với các tập lệnh kiểm tra trên máy tải, nó cũng
đồng bộ hóa các hoạt động thử nghiệm và thu thập các kết quả thử nghiệm.
Tuy nhiên, kiểm thử khả năng chịu tải, áp lực và kiểm thử tính liên tục có các
mục tiêu kiểm thử khác nhau:
- Một kiểm thử khả năng chịu tải xác minh hay không hệ thống sẽ đáp
ứng đúng thời gian đáp ứng yêu cầu và các yêu cầu thông qua.
- Kiểm tra xác minh sự căng thẳng, áp lực hay không hệ thống phản ứng
một cách kiểm soát trong “những tình huống căng thẳng”. Tình huống
căng thẳng được mô phỏng bằng cách áp dụng điều kiện khắc nghiệt,
chẳng hạn như không thực tế quá tải, hoặc rất nhiều biến động nạp.
- Kiểm thử tính liên tục có nghĩa là hệ thống được thực hiện trong một

khoảng thời gian dài để khám phá những lỗi tinh vi, khó phát hiện.
c) Kiểm thử tính khả dụng
Kiểm thử cho chuyển hướng
Đây là cách thức người dùng xem các trang webs, sử dụng các điều khiển khác
nhau như: các nút bấm, các hộp (textbox, listbox ) hay cách người dùng sử dụng
các đường links trong các trang để lướt web.
Kiểm thử tính khả dụng
24
Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thử website sử dụng công cụ kiểm
thử tự động Selenium.
Trang web phải dễ sử dụng. Cung cấp các đường dẫn rõ ràng rành mạch. Kiểm
thử xem các đường dẫn có đúng như những gì trang web đáp ứng không. Mỗi trang
đều cần có Menu chính và menu này phải nhất quán.
Kiểm thử nội dung
Nội dung trang web phải hợp lý và dễ hiểu. Kiểm tra lỗi chính tả, nội dung cần
phải đầy đủ và ý nghĩa. Tất cả đường links được liên kết cần được làm việc tốt, các
tranh ảnh phải được đặt đúng chỗ, đúng kích thước
d) Kiểm thử khả năng tương thích
Kiểm thử khả năng tương thích của trang web là một phần rất quan trọng.
Trong đó ta cần thực hiện các việc sau:
Kiểm thử sự tương thích với các trình duyệt: Hiện nay, có nhiều ứng dụng phụ
thuộc vào trình duyệt. Các trình duyệt khác nhau có các cấu hình khác nhau và các
trang web cần tương thích với nó. Trang web phải được lập trình đáp ứng tương
thích với các platform của trình duyệt. Nếu trang web có sử dụng Javascript, AJAX
để xây dựng các chức năng giao diện thì người dùng, kiểm thử bảo mật hay xác
minh, phải kiểm tra tải trên các trình duyệt cho ứng dụng của mình.
Kiểm thử ứng dụng web trên các trình duyệt khác nhau như: IE, Firefox,
chorme với các phiên bản khác nhau.
Kiểm thử sự tương thích với các hệ điều hành: Một vài chức năng trong ứng
web của bạn có thể không tương thích với tất cả các hệ điều hành. Tất cả các công

nghệ mới được sử dụng trong phát triển web như: thiết kế đồ họa, giao diện được
gọi như các API khác có thể không có sẵn trong mọi hệ điều hành.
Kiểm thử sự tương thích với các thiết bị di động: Hiện nay, các trình duyệt
trong di động đang phát triển rất mạnh mẽ. Việc kiểm thử trang web trêncác trình
duyệt di động là điều bắt buộc. Các vấn đề về tương thích có thể xất hiện trên các
thiết bị di động.
25

×