Tải bản đầy đủ (.pdf) (67 trang)

Kiểm thử ứng dụng web với công cụ 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 (3.51 MB, 67 trang )

LỜI CẢM ƠN
Sau một thời gian tìm hiểu đề tài “Kiểm thử ứng dụng Web với công cụ
Selenium”, em đã hoàn thành tiến độ dự kiến. Để đạt được kết quả này, em đã nỗ
lực thực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm, ủng
hộ của các thầy cô bạn bè và gia đình.
Em xin chân thành cảm ơn giáo viên hướng dẫn: Th.S Nguyễn Thị Dung
– Bộ môn Công nghệ phần mềm – Trường Đại học Công nghệ thông tin và
truyền thông – Đại học Thái Nguyên đã tận tình hướng dẫn sát sao em trong quá
trình làm đồ án tốt nghiệp. Trong thời gian làm việc với cô, em không ngừng tiếp
thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ
nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho
em trong quá trình học tập và công việc sau này.
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học
Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình
giảng dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em
học tập tại trường.
Và cuối cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động
viên, đóng góp ý kiến và giúp đỡ trong quá trình học tâp, thời gian nghiên cứu và
hoàn thành đồ án tốt nghiệp.
Thái Nguyên, tháng 06 năm 2016
Sinh viên thực hiện

Hoàng Thị Hiền

1


LỜI CAM ĐOAN
Em xin cam đoan những kết quả trong đề tài “Kiểm thử ứng dụng Web
với công cụ Selenium” là sản phẩm nghiên cứu của riêng cá nhân em, không sao
chép lại của người khác. Trong toàn bộ nội dung đồ án những điều được trình


bày là của cá nhân em hoặc là được tổng hợp từ nhiều nguồn tham khảo mà em
đã chắt lọc được để lấy ra những thông tin cần thiết và bổ ích phục vụ cho đồ án.
Tất cả tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp. Mọi
sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn
toàn trách nhiệm.
Tác giả đề tài

Hoàng Thị Hiền

2


MỤC LỤC
LỜI CẢM ƠN .....................................................................................................1
LỜI CAM ĐOAN................................................................................................2
MỤC LỤC ..........................................................................................................3
DANH MỤC CÁC HÌNH VẼ .............................................................................5
LỜI MỞ ĐẦU .....................................................................................................7
CHƯƠNG 1. CƠ SỞ LÍ THUYẾT ......................................................................9
1.1 Kiểm thử phần mềm ...................................................................................9
1.1.1 Khái niệm.............................................................................................9
1.1.2 Các phương pháp kiểm thử (Testing Methods) ....................................9
1.1.3 Các mức độ kiểm thử (Testing level)..................................................10
1.2 Kiểm thử ứng dụng Web .........................................................................11
1.2.1 Khái quát............................................................................................11
1.2.2 Tại sao phải kiểm thử ứng dụng Web?................................................12
1.2.3 Đặc trưng khi kiểm thử ứng dụng Web..............................................13
1.2.4 Công việc khi kiểm thử Theme WordPress............................................13
1.3 Giới thiệu về Selenium .............................................................................19
1.3.1 Tổng quan ..........................................................................................19

1.3.2 Lịch sử phát triển................................................................................20
1.3.3 Selenium IDE ....................................................................................22
1.3.4 Selenium RC/ Web driver...................................................................30
1.3.5 Cài đặt Selenium Remote Control.......................................................31
1.3.6 Báo cáo kết quả kiểm thử....................................................................32
CHƯƠNG 2. PHÂN TÍCH, THIẾT KẾ BÀI TOÁN .........................................35
2.1 Bài toán thử nghiệm .................................................................................35
2.1.1 Giới thiệu bài toán..............................................................................35
2.1.2 Lựa chọn công cụ ...............................................................................35
2.1.3 Phương pháp test ................................................................................39
2.1.4 Sự khác nhau giữa kịch bản kiểm thử tự động và kịch bản kiểm thử
thủ công ...........................................................................................39

3


2.2 Xây dựng các TestCase ............................................................................40
2.2.1 Kịch bản kiểm thử thủ công...................................................................40
2.2.2 Kịch bản kiểm thử khi kiểm thử tự động...............................................48
CHƯƠNG 3. CÀI ĐẶT DEMO ........................................................................49
3.1 Thực thi các testcase với Selenium IDE....................................................49
3.1.1 Chức năng đăng nhập .........................................................................49
3.1.2 Chức năng Contact .............................................................................53
3.1.3 Chức năng Subcribe ..........................................................................59
3.1.4 Chức năng Comment.........................................................................59
3.2 Thực thi testcase với Selenium WebDiver ...............................................60
3.3 Công cụ quản lí bug và báo cáo kết quả kiểm thử ...................................61
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..........................................................64
TÀI LIỆU THAM KHẢO .................................................................................66
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN................................................67


4


DANH MỤC CÁC HÌNH VẼ
Hình 1.1Những kiểm thử cần có cho một ứng dụng web ...................................12
Hình 1.2 Test Plan của dự án .............................................................................14
Hình 1.3 Kiểm thử Front- End và Back-End......................................................15
Hình 1.4 Kiểm thử Front -End ...........................................................................15
Hình 1.5 Check speed........................................................................................16
Hình 1.6 Kiểm thử các tùy chọn trong Theme Option........................................18
Hình 1.7 Kiểm thử các tùy chọn trong Page Option ...........................................18
Hình 1.8 Cấu trúc của Selenium .......................................................................19
Hình 1.9 Kiến trúc của Selenium IDE................................................................22
Hình 1.10 Trang download tiện ích Selenium IDE.............................................23
Hình 1.11 Quá trình cài đặt Selenium IDE.........................................................23
Hình 1.12 Thao tác mở IDE trên menu Tool......................................................24
Hình 1.13 Giao diện của Selenium IDE .............................................................24
Hình 1.14 Các thành phần và kí hiệu của Selenium IDE....................................25
Hình 1.15 Lưu trữ các testcase dạng HTML của Selenium ................................26
Hình 1.16 Sơ đồ Selenium RC/ WebDriver ......................................................30
Hình 2.1 Form Sign Up của Theme Pizzeria......................................................40
Hình 2.2 Form Contact của Theme Pizzeria.......................................................42
Hình 2.3 Form Delivery của Theme Pizzeria .....................................................43
Hình 2.4 Form Comment của Theme Pizzeria ...................................................44
Hình 2.5 Form Review của Theme Pizzeria.......................................................46
Hình 2.6 Form Subcribe của Theme Pizzeria.....................................................47
Hình 3.1 Trường hợp Sign in với trường Username và password để trống .........49
Hình 3.2 Sign in với trường password để trống..................................................50
Hình 3.3 Sign in với trường Username để trống.................................................50

Hình 3.4 Sign in thành công ..............................................................................51
Hình 3.5 Sign in không thành công với username và password sai ....................51
Hình 3.6 Testsuite cho chức năng đăng nhập .....................................................52
Hình 3.7 Thao tác dịch Selenium IDE sang code Webdriver..............................52
5


Hình 3.8 Testcase Selenium WebDriver được dịch sang TestNG từ Selenium
WebDriver.........................................................................................................53
Hình 3.9 Contact với Subject and Message trống...............................................53
Hình 310 Contact không thành công với tất cả các trường để trống ...................54
Hình 3.11 Contact không thành công khi để trống Name ...................................54
Hình 3.112 Contact không thành công khi để trống Email .................................55
Hình 3.13 Contact thành công ...........................................................................55
Hình 3.14 Contact không thành công khi Email không hợp lệ ..........................56
Hình 3.15 Contact không thành công khi để trống Subject................................56
Hình 3.16 Contact không thành công khi để trống Message...............................57
Hình 3.17 Contact không thành công khi nhập Name và để trống các trường ....57
Hình 3.18 Thao tác dịch Selenium IDE sang code Webdriver............................58
Hình 3.19 Testcase Selenium WebDriver được dịch sang TestNG từ Selenium
WebDriver.........................................................................................................58
Hình 3. 20 Testsuite cho chức năng Subscribe...................................................59
Hình 3. 21 Testcase cho chức năng Comment....................................................59
Hình 3.22 Các lỗi của Theme Pizzeria ...............................................................61
Hình 3.23 Quá trình thực thi testcase .................................................................62
Hình 3.24 Báo cáo thực thi test cho chức năng Contact .....................................62

6



LỜI MỞ ĐẦU
Bạn dùng một đồ vật hay thiết bị nào đó, bạn có đảm bảo rằng nó đã đủ
chất lượng hay thực sự là một sản phẩm tốt hay chưa? Khi bạn đang xem xét
nâng cấp cho một phần mềm hay thiết bị nào đó, bạn có chắc chắn các nhà phát
triển đã kiểm tra lại các lỗi hay không hay bạn vẫn phải nghe ngóng những
người dùng trước sau khi nâng cấp có lỗi nào xảy ra không? Đó là một thực tế
chứng minh cho việc kiểm thử thực sự quan trọng trong cuộc sống hiện nay.
Với việc phát triển của máy tính và mạng Internet, việc phát triển các ứng
dụng trên mã nguồn mở rất được xem trọng trong lĩnh vực thương mại điện tử.
Là một mã nguồn mở nổi bật góp phần không nhỏ trong sự phát triển thương mại
điện tử cũng như mã nguồn mở được sử dụng rộng rãi hơn. Vậy việc kiểm thử
trên nền tảng WordPress sẽ được thực hiện ra sao, có sự khác biệt nào giữa kiểm
thử các sản phẩm trên nền tảng web và các sản phầm phần mềm trên các nền tảng
khác? 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ử thách trong đảm bảo chất lượng. Kiểm thử
các ứng dụng Web đã vượt qua giới hạn của việc kiểm thử những hệ thống phần
mềm truyền thống. Vì vậy một ứng dụng Web thường có rất nhiều có một cộng
đồng khách hàng sử dụng với các nền tảng khác nhau như hệ điều hành, trình
duyệt, các thiết bị… Từ đó việc kiểm thử một ứng dụng Web cũng cần có những
phương pháp đặc biệt khác với phần mềm truyền thống.
Ngày nay, tự động hóa đang được nghiên cứu và ứng dụng rộng rãi trên
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 phải là ngoại lệ. Cùng với việc kiểm thử thủ công thì việc
kết hợp với các công cụ kiểm thử tự động sẽ mang lại những hiệu quả đáng kinh
ngạc và hoàn hảo hơn. Sự ra đời của các công cụ kiểm thử tự động như Quick
Test Professinal. NUnit, JUnit, Load Runner(thường dùng trong kiểm thử hiệu
năng) là tất yếu. Selenium là một công cụ kiểm thử ứng dụng Web với khá nhiều
ưu điểm nổi bật. Đây là một công cụ mã nguồn mở, mạnh mẽ hỗ trợ trên nền tảng
Web, nhiều platform và các trình duyệt phổ biến. Công cụ này được phát triển


7


chủ yếu trong Java Script và công nghệ trình duyệt như DHTML và các khung
hình với việc hỗ trọ các trình duyệt trên tất cả các nền tảng. Selenium đã trở
thành một trong những công cụ kiểm thử phần mềm tự động tốt nhất trên thị
trường cho các ứng dụng Web.
Với việc thực hiện đề tài:” Kiểm thử ứng dụng Web với Selenium” sẽ
giúp em làm sang tỏ những lý do đã được đưa ra đặc biệt việc kiểm thử được
thực hiện trong môi trường thực tế với các dự án thực tế trên thị trường, thấy
được rõ các vấn đề tồn tại giữa lí thuyết và thực tế quan sát.
Đồ án được tổ chức thành 3 chương với nội dung mỗi chương :
- Chương 1: Tìm hiểm chung về kiểm thử phần mềm, kiểm thử ứng dụng
web, quy trình kiểm thử phần mềm và các phương pháp để tiến hành kiểm thử.
- Chương 2: Đưa ra bài toán, phân tích, lựa chọn công cụ và phương
pháp thực hiện test
- Chương 3: Cài đặt demo chương trình và trình bày báo cáo lỗi

Thái Nguyên, tháng 6 năm 2016
Sinh viên

Hoàng Thị Hiền

8


CHƯƠNG 1. CƠ SỞ LÍ THUYẾT
1.1 Kiểm thử phần mềm
1.1.1 Khái niệm
Theo IEEE: Kiểm thử là tiến 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 đó.
Theo Myers (the art of software testing): Kiểm thử là tiến trình thực thi
chương trình với mục đích tìm thấy lỗi.
Mục tiêu của kiểm thử phần mềm
Mục tiêu trực tiếp:
- Phát hiện và xác định càng nhiều lỗi càng tốt ở các phần mềm được kiểm thử.
- Tiến hành sửa lỗi ở các phần mềm được kiểm thử và kiểm thử lại cho đến
khi đạt một mức độ chất lượng phần mềm chấp nhận được.
- Thực thi những trường hợp kiểm thử một cách hiệu quả trong một giới
hạn ngân sách và lịch trình cho phép.
Mục tiêu gián tiếp:
Để biên dịch một tài liệu về các lỗi phần mềm thường gặp nhằm mục đích
ngăn ngừa và sửa chữa lỗi.
Kiểm thử tự động: là quá trình kiểm tra hệ thống với dữ liệu đầu vào và
đầu ra đã xác định trước một các tự động
1.1.2 Các phương pháp kiểm thử (Testing Methods)
 Kĩ thuật kiểm thử hộp đen (Black Box)
Với kĩ thuật này giúp chúng ta hiểu rõ một chức năng cụ thể của một hàm
hay một module thông qua bản đặc tả mà không cần biết bên trong chương trình
được viết như thế nào. Kiểm thử này còn được gọi là kiểm thử ở mức giao
diện.Ta chỉ cần nhập dữ liệu vào và sẽ nhận được kết quả mong muốn chứ không
cần biết làm cách nào và tại sao nó lại làm được như vậy. Với kỹ thuật kiểm thử
này chúng ta chỉ phát hiện được các lỗi chức năng, sai sót về giao diện của
module, tính hiệu quả, phát hiện lỗi khởi tạo, lỗi kết thúc.
Đối với phương pháp kiểm thử hộp đen, để thiết kế các testcase dựa vào
phương pháp phân hoạch miền giá trị, phân tích giá trị biên, kiểm thử mọi

9



cặp, kiểm thử fuzz, kiểm thử dựa trên mô hình, ma trận dấu vết, kiểm thử
thăm dò, kiểm thử dựa trên đặc tả.
Kỹ thuật kiểm thử hộp đen chỉ dựa vào đặc tả chương trình, xây dựng
dữ liệu thử trước khi mã hóa/lập trình, thường phát hiện các lỗi đặc tả yêu
cầu, thiết kế; Dễ dàng thực hiện, chi phí thấp.
 Kiểm thử hộp trắng
Ngược lại với kỹ thuật kiểm thử hộp đen là kỹ thuật kiểm thử hộp trắngWhite-Box (clear-box) thì kỹ sư kiểm thử phải kiểm tra mã nguồn của chương
trình để có thể kiểm thử hay tìm ra những đầu mối để giúp cho công việc kiểm
thử. Từ đó giúp chúng ta hiểu rõ cách hoạt động của một hàm/module hay sản
phẩm. Điều mà chúng ta cần làm là thiết kế tất cả các đường logic của chương
trình và sau đó là cài đặt tất cả các trường hợp kiểm định có được. Tuy nhiên,
trong kỹ thuật này có một số rủi ro nhất định bởi tester sẽ can thiệp sâu vào mã
nguồn nên thường đưa ra các ý kiến chủ quan đồng thời việc kiểm thử thấu đáo
tất cả các trường hợp là không thể và tốn rất nhiều chi phí.
Theo phương pháp này ta chia testcase dựa vào cấu trúc đơn vị cần kiểm
tra.
- Kiểm tra giao tiếp của đơn vị là để đảm bảo dòng thông tin vào ra của đơn
vị luôn đúng (đúng giá trị, khớp kiểm…).
- Kiểm tra dữ liệu cục bộ để đảm bảo dữ liệu được lưu trữ trong đơn vị toàn
vẹn trong suốt quá trình giải thuật được thực hiện.
- Kiểm tra các điều kiện biên của các câu lệnh if, vòng lặp để đảm bảo đơn
vị luôn chạy đúng tại các biên này.
- Kiểm tra để đảm bảo mọi con đường thực hiện phải đi qua ít nhất một lần.
Con đường thực hiện của một đơn vị chương trình là một dãy có thứ tự các câu
lệnh bên trong đơn vị đó sẽ được kích hoạt khi thực hiện
1.1.3 Các mức độ kiểm thử (Testing level)
 Kiểm thử đơn vị (Unit test):
- KN: Là test với đơn vị phần mềm nhỏ nhất như hàm, module còn được
gọi là component test, unit test. Developer thực hiện test code của chính mình

xem code có được thực hiện như bản thiết kế vật lý hay không?

10


- Mục đích: Phải phát hiện các vấn đề liên quan đến việc thực hiện, kiểm
tra xem các chức năng của phần mềm đã được phân chia để có thể test (module,
program, object, class…) có đúng hay không?
 Kiểm thử tích hợp (Combine test): Sau khi kết thúc unit test và chất
lượng ở mức độ đơn vị đã được đảm bảo, sẽ bắt đầu tích hợp các module đơn vị
để tiến hành test.
- Mục đích: Phát hiện các lỗi về mặt logic và xử lý của các khối, kiểm thử
việc truyền tin giữa chúng. Kiểm tra xem software sau khi tích hợp có thực hiện
đúng chức năng hay không?
 Kiểm thử hệ thống (System test): là kiểm thử hệ thống một cách toàn
diện để đánh giá các chức năng có được đáp ứng, các thao tác giao diện có giống
thiết kế hay không.
- Mục đích: Kiểm thử xem hoạt động của tổng thể hệ thống, phần mềm đã
được định nghĩa thành phạm vi của project phát triển có hoạt động đúng không.
 Kiểm thử chấp nhận (Aceptance test) là kiểm thử được tiến hành từ phía
khách hàng để tiến hành phê duyệt cuối cùng.
- Mục đích: xác nhận xem phần mềm còn có những sai sót, thiếu sót so với
yêu cầu của khách hàng hay không.
1.2 Kiểm thử ứng dụng Web
1.2.1 Khái quát
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ử và trao đổi thông tin.
Một ứng dụng Web hiệu quả cần đảm bảo chất lượng tốt và hiệu suất cao.
Việc chuyển giao các ứng dụng đến tay khách hàng đang và sẽ sử dụng nó một

sản phẩm chất lượng chính là thử thách đối với các nhà phát triển nhất là đội ngũ
đảm bảo chất lượng.
Thông thường khi kiểm thử các phương pháp đều tập trung vào đánh giá
các chức năng của ứng dụng. Tuy nhiên việc tập trung được tất cả các yêu cầu
của khách hàng trước khi phát triển là không thể bởi vì tùy theo từng sản phẩm
và đối tượng khách hàng mà yêu cầu được cung cấp đầy đủ hay thường xuyên
thay đổi đặc biệt với các ứng dụng Web điều này là không thể. Bởi vì khi kiểm
11


thử ứng dụng Web ngoài kiểm thử các chức năng chính của ứng dụng, ta còn cần
kiểm tra nhiều yêu cầu phi chức năng khác như: hiệu năng sử dụng, tính dễ sử
dụng, độ tin cậy, tính bảo mật của hệ thống…
1.2.2 Tại sao phải kiểm thử ứng dụng Web?
Các ứng dụng Web đưa ra những thách thức mới trong việc đánh giá và
kiểm tra. Các ứng dụng Web bao gồm nhiều thành phần khác nhau có thể được
cung cấp cho những nhà phát triển khác nhau. Chất lượng của một ứng dụng
Web cơ bản phụ thuộc vào các thành phần kể trên và khả năng tương tác giữa
chúng. Kiểm thử là một trong những công việc quan trọng nhất trong quá trình
phát triển 1 ứng dụng Web để tạo ra những sản phẩm với chất lượng cao đáp ứng
được mong đợi của người dùng. Việc kiểm thử một các có phương pháp và hệ
thống các ứng dụng Web là một điều quan trọng. Hiện nay có rất nhiều các
phương pháp và kĩ thuật tiên tiến hiệu quả để kiểm thử những hệ thông phần
mềm. Tuy nhiên chúng ta cần phải linh hoạt sử dụng chúng chứ không áp dụng
một các cứng nhắc những phương pháp và kĩ thuật cho phần mềm truyền thống
lên những ứng dụng Web.

Hình 1.1Những kiểm thử cần có cho một ứng dụng web
Kiểm thử các ứng dụng Web đã vượt qua giới hạn của kiểm thử các hệ thống
phần mềm truyền thống bởi một ứng dụng Web không chỉ phát triển cho một

nguwoif sử dụng mà là nhiều nhóm người sử dụng với nhiều nền tảng khác nhau(
hệ điều hành, trình duyệt…). Vì vậy việc kiểm thử một ứng dụng Web cần phải
12


có những phương pháp đặc biệt khác với phần mềm truyền thống. Bởi vì thông
thường rất khó để đoán được số lượng người sẽ sử dụng ứng dụng Web là bao
nhiêu. Thời gian hồi đáp lại yêu cầu của người sử dụng là một yếu tố then chốt
trong số những yếu tố quyết định thành công của 1 ứng dụng Web trên Internet
và nó cần được quan tâm cũng như kiểm thử sớm.
1.2.3 Đặc trưng khi kiểm thử ứng dụng Web
Một ứng dụng được phát triển luôn hướng đến người sử dụng với mục tiêu
chương trình sữ được vận hành một cách ổn định, chính xác với hiệu năng sử
dụng trên 24 giờ trên 1 ngày và 7 ngày trong tuần. Đặc biệt là chương trình phải
tồn tại những ưu điểm như 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 lai.
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:
- Yêu cầu về chức năng: sự hiện diện của các chức năng đáp ứng những yêu
cầu được xác định. Các yêu cầu cần có 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à trrong 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 sẽ được thẩm định bằng một nhóm người bằ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ể.
Như vậy các yêu cầu về chất lượng đóng vai trò thiết yếu khi thử nghiệm
các ứng dụng Web. Mặc dù nhìn chung thì các yêu cầu về chất lượng của các ứng
dụng Web tương tự như trong các hệ thống phần mềm truyền thống nhưng nó lại
có những đòi hỏi đặc thù và chuyên sâu hơn.

1.2.4 Công việc khi kiểm thử Theme WordPress
1.2.4.1 Xây dựng Test Plan
Kế hoạch kiểm thử là một phần quan trọng và không thể thiếu với bất cứ một
sản phầm phần mềm hay chương trình nào. Kế hoạch kiểm thử được Test
Manger hoặc Test Leader xây dựng ngay trong giai đoạn đầu của dự án để định

13


nghĩa phạm vi kiểm thử, các chiến lược kiểm thử, nhận dạng các rủi ro và yếu tố
bất ngờ, nhận dạng các hoạt động kiểm thử nào là thủ công, kiểm thử nào là tự
động hay cả hai, ước lượng chi phí kiểm thử và xây dựng lịch kiểm thử, nhận
dạng môi trường kiểm thử…
Kế hoạch kiểm thử cần được xem lại bởi đội quản lý kiểm tra chất lượng
phần mềm, nhà phát triển phần mềm, nhà phân tích kinh doanh, kiểm thử viên
và khác hàng. Nếu đạt yêu cầu nó được quyết định bởi nhà quản lí dự án và chính
khách hàng. Trong suốt quá trình kiểm thử có thể hiệu chỉnh để phù hợp với yêu
cầu, chu kì kiểm thử nếu có những thay đổi cần thiết được đưa ra.

PROJECT TEST

Combine Test

Unit Test

Kế hoạch

Lập kế
hoạch
chi tiết


System Test

Thiết kế

Phân
tích
chi tiết

Khách
hàng,
người
dùng cuối
thiết kế

Thực thi

Chuẩn
bị thực
hiện

Thực
hiện

Kiểm
tra

Acceptance Test

Đánh

giá

Tester
Kế hoạch

Lập kế
hoạch
chi tiết

Thiết kế

Phân tích
chi tiết

Thực hiện

Kiểm tra
Chuẩn bị
thực hiện

Thiết kế

Thực thi

Thực thi

Kế hoạch
Lập kế
hoạch chi
tiết


Phân
tích
chi tiết

Test
Leader

Test
Design

Đánh giá

Hình 1.2 Test Plan của dự án
14

Tiêu
chuẩn
thực hiện

Thực hiện

Kiểm tra

Đánh
giá


Hình 1.3 Kiểm thử Front- End và Back-End
1.4.1.2 Kiểm thử Front-End

Test Front – end chủ yếu liên quan đến test giao diện và chức năng của trang
web dựa trên design có sẵn. Thường sử dụng các tool hỗ trợ đi kèm như:
Photoshop, Lightshot…

Hình 1.4 Kiểm thử Front -End
 Kiểm thử giao diện
Đối với một Theme WordPress thì giao diện là một phần quan trọng quyết
định thành công cho Theme đó.
Test giao diện người dùng (UI) kiểm tra các tương tác của người dùng
với phần mềm. Mục tiêu của test UI là để đảm bảo rằng giao diện người
dùng cung cấp cho người sử dụng cách truy cập và sử dụng thích hợp thông

15


qua các chức năng trong mục tiêu test. Ngoài ra, test UI còn để đảm bảo rằng
các đối tượng trong phạm vi chức năng UI giống như mong đợi và phù hợp
với tổ chức hoặc chuẩn ngành.
 Kiểm thử chức năng
Mục đích của kiểm thử chức năng là tập trung vào các yêu cầu test có
thể được lưu vết trực tiếp trong các use case hoặc các chức năng và quy tắc
nghiệp vụ. Mục tiêu của kiểu test này là kiểm tra tính đúng đắn của các dữ
liệu quy trình và báo cáo cũng như việc thực hiện đúng những quy tắc
nghiệp vụ. Kiểu test này dựa vào kĩ thuật black box tức là kiểm tra ứng dụng
và các xử lí nội tại bằng cách tương tác với ứng dụng thông qua giao diện
người sử dụng và phân tích kết quả hoặc đầu ra.
 Check speed
Mục đích của check speed nhằm đánh giá tốc độ chạy và xử lý trang
web khi sử dụng trên các thiết bị như điện thoại và máy tính. Có rất nhiều
tool để thực hiện việc này, tuy nhiên chúng ta thường sử dụng một trang web

uy tín của Google develope để thực hiện. Link
check: />Chúng ta chỉ dùng check speed cho duy nhất page home. Cách thực hiện
như sau:
- Bước 1: Truy cập vào links:
/>- Bước 2: Paste link home vào địa chỉ URL bên dưới:

Hình 1.5 Check speed

16


- Bước 3: Click button “Phân tích” và chờ vài giây để lấy kết quả.
Nếu kết quả báo màu đỏ (site đáp ứng được dữ liệu test về speed dưới 70%)
thì ta log bug lên hệ thống Taiga. Đối với web wordpress của công ty yêu cầu
speed trên các thiết bị trên 80% và User Experience trên 90% là không lỗi (báo
màu xanh).
 Check responsive
Check responsive là việc thực hiện check trang web trên các màn hình nhỏ
và các thiết bị thật có kích thước màn hình nhỏ (như điện thoại hay Ipad …).
Việc này đòi hỏi check trên các kích thước màn hình sau: 320, 480, 768, 992,
1024, 1280, 1366 và 1920.
Để thực hiện việc đó, ta mở trang web trên trình duyệt Firefox và sử dụng tổ
hợp phím tắt Ctrl+Shirft+M để thu nhỏ màn hình và test trên máy tính trước.
Sau đó, ta cần check site trên các thiết bị thật có màn hình nhỏ như Iphone
hay Ipad. Một số lỗi thường xảy ra khi check responsive là các hình ảnh và chữ
hay bị mất, bị cắt hay chồng chéo lên nhau, khoảng cách bị sai lệch hay các phím
các chức năng không hoạt động nữa khi thu nhỏ màn hình
 Check integrate
Là giai đoạn kiểm tra trang web trên tất cả các trình duyệt và các hệ điều
hành như: Firefox, Chrome, Safary, IE9+, hệ điều hành Windown, IOS… để tìm

ra các lỗi không tương thích với môi trường.
 Check các chức năng và option trên trang web
Dựa vào test case hay kinh nghiệm test, ta check các chức năng hay option
có trên trang web như: khi click vào link có dẫn đến một trang khác không,
option contact có gửi được mail hay không, vv…
 Check validation HTML and javascript
Mở khung check code trên trình duyệt đang dùng và chọn cửa sổ Console.
Nếu trong khung bên dưới báo đỏ và có list danh sách lỗi thì chụp lại và đưa lên
Taiga cho coder check lại lỗi javascript

17


1.2.4.3 Kiểm thử Back- End
 Kiểm thử quá trình cài đặt và impost dữ liệu
Ở quy trình test Back– End ta cần hiểu sâu về wordpress, các chức năng,
cách cài đặt và sử dụng cũng như các chuẩn để test unit của wordpress. Các bước
cơ bản để test unit cho Wordpress được đưa ra như sau:
- Step1: Install necessary plugin: Theme Check, Theme Forest Check,
Theme Mentor, Monter Widget, Debug bar. Đây là các plugin đã có sẵn trên
trong http:// wordpress.org
 Step2: Install theme
 Kiểm thử chức năng
 Kiểm thử các tùy chọn trong Theme Option

Hình 1.6 Kiểm thử các tùy chọn trong Theme Option
 Kiểm thử các tùy chọn trong Page Option

Hình 1.7 Kiểm thử các tùy chọn trong Page Option
 Kiểm thử một vài shortcode tiêu biểu trong Visual Composer

Đây là bước kiểm thử khó nhất bởi vì khi ta check trong chế độ Back-end
của Visual Composer khi tùy chọn được thiết lập đúng nhưng ngoài site kết quả

18


vẫn không hiển thị như mong muốn thì ta cần chuyển sang chế độ Static Mode
của Visual Composer để check code html xây dựng nên page và tìm ra lỗi.
Bước kiểm thử này đồi hỏi tester cần có những kiến thức chuyên sâu về
WordPress, việc sử dụng html, CSS… Nếu tester không thể kiểm tra và check lỗi
gây ra ở đâu thì cần liên hệ với coder để phát hiện lỗi và tìm cách fix lỗi đó.
1.3 Giới thiệu về Selenium
1.3.1 Tổng quan
Selenium(SE) là một trong những công cụ kiểm thử phần mềm tự động
nguồn mở(Open source test automation tool) phát triển và được ưa chuộng nhất
hiện nay.SE là một công cụ kiểm tra tự động các ứng dụng Web. Nó có thể chạy
trên hầu hết các trình duyệt và hệ điều hành: Windows, Linux, Mac…và hỗ trợ
hầu hết các ngôn ngữ lập trình Web như C#, Java, Perl, PHP, Python, Ruby…
Về cấu trúc thì Selenium có 4 phần
Selenium IDE
Selenium RC (Selenium 1 – Selenium Remote Control)
Selenium Gird
Selenium WebDriver (Selenium 2)

Hình 1.8 Cấu trúc của Selenium
Selenium IDE (Integrated Development Environment) là một công cụ cho
phép chúng ta Record/Playback một test script. Đây là một add-on hỗ trợ cho

19



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 Gird 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.
Selenium RC, Selenium WebDriver là một thư viện cho phép chúng ta lập
trình (scripting) test script trên các ngôn ngữ lập trình khác nhau như Python,
Java, C#, Ruby.
1.3.2

Lịch sử phát triển
Selenium được phát triển ban đầu bởi nhóm ThoughtWorks vào năm 2004 tại

Chicago với tên ban đầu là JavaScriptTestRunner. Đến năm 2007, tác giả Jason
Huggins rời ThoughtWorks và gia nhập Selenium Team, một phần của Google
và phát triển thành Selenium như hiện nay. Ông là một kĩ sư ở ThoughtWorks
được làm việc với các ứng dụng web cần được kiểm tra thường xuyên. Sau khi
nhận ra kiểm tra thủ công lặp đi lặp lại các ứng dụng ngày càng trở nên kém hiệu
quả, ông đã viết một chương trình JavaScript “JavaScriptTestRunner” tự động
kiểm soát các hoạt động của trình duyệt.Từ đó ông đã thực hiện viết ra một mã
nguồn mở JavaScriptRunner mà sau này nó được lấy tên là Selenium Core.
Với chính sách cùng gốc (Same Origin Policy) đã ngăn cản các đoạn mã
JavaScript truy cập các phần tử từ các tên miền là khác nhau tại địa chỉ mà nó
được chạy. Đó là lí do tại sao trước khi Selenium RC ra đời, tester cần cài đạt
bản copy cục bộ của cả Selenium Core và web server chứa ứng dụng web cần
test vì chúng không thuộc cùng một tên miền. Dựa trên hạn chế đó, kĩ sư Paul
Hammant quyết định tạo ra 1 server hoạt động như một proxy HTTP để “lừa”
trình duyệt tin rằng Selenium Core và ứng dụng web đang được kiểm thử đến từ
cùng một tên miền. Hệ thống này được gọi là điều khiển từ xa Selenium Remote
Control hay Selenium 1.

Selenium Grid được phát triển bởi Patrick Lightbody để giải quyết nhu cầu
giảm thiểu thời gian thực hiện kiểm thử càng nhiều càng tốt. Ban đầu ông đặt tên
hệ thống là “Hosted QA”. Nó có khả năng chụp ảnh màn hình trình duyệt trong
giai đoạn quan trọng và đồng thời gửi lệnh Selenium đến các máy khác nhau.

20


Shinya Kasatani, một kĩ sư đến từ Nhật Bản tạo ra Selenium IDE, một phần
mở rộng của Firefox có thể tự động thực hiện trên các trình duyệt thông qua một
chức năng ghi và chạy lại (record and playback). Ông đã đưa ra ý tưởng này để
tăng thêm tốc độ trong việc tạo ra các test case. Ông đã tặng Selenium IDE cho
dự án Selenium trong năm 2006.
Simon Stewart tạo WebDriver khoảng năm 2006 khi các trình duyệt và các
ứng dụng Web trở nên mạnh mẽ hơn và chặt chẽ hơn với các chương trình
JavaScript như Selenium Core. Đó cũng là nền tảng kiểm thử đa nền tảng mà có
thể điều khiển các trình duyệt từ cấp hệ điều hành.
Trong năm 2008 , toàn bộ nhóm Selenium quyết định hợp nhất WebDriver
và Selenium RC để tạo thành một công cụ mạnh hơn gọi là Selenium 2 , với
WebDriver là trọng tâm.
Tại sao lại có tên Selenium?
Phải chăng cái tên Selenium được bắt nguồn từ nguyên tố hóa học Selenium?
Được biết Selenium là một nguyên tố hóa học với số nguyên tử 34 và kí hiệu hóa
học Se, Nó là một phi kim, về mặt hóa học rất giống với lưu huỳnh (S). Từ
Selenium xuất phát từ tiếng Hy Lạp “Selene” có nghĩa là mặt trăng. Cách đặt tên
trên có liên quan đến sự phản quang của Selenium được nhân lên khoảng 1000
lần khi Selenium được đưa từ bóng tối ra ánh sang mặt trời…Đây là một phát
hiện quan trong của nhà phát minh người Anh W.Smith khi phát hiện ra tính
quang dẫn của Selenium vào năm 1873 .
Nhưng những người trong cuộc đã khẳng định đó không phải lí do để

Selenium trở thành tên của công cụ. Nó bắt nguồn từ một tên đùa mà Jason đưa
ra một lần cho cả đội của anh ấy. Một nền tảng kiểm thử tự động khá phổ biến
trong thời kì phát triển Selenium bởi các công ty gọi là Mercury Interactive
(công ty người ban đầu tạo ra công cụ QTP (Quick Test Pro) trước khi nó đã
được mua lại bởi HP). Selenium được biết đến là một thuốc giải độc nổi
tiếng cho ngộ độc thủy ngân, Jason đề nghị tên đó và được sự thống nhất của
cả đội nên cái tên Selenium được chọn để gọi cho framework này từ đó cho
đến ngày nay.

21


1.3.3

Selenium IDE

1.3.3.1 Giới thiệu Selenium IDE
Selenium IDE là 1 add – on của Mozilla Firefox phiên bản 2.0 trở lên,
ban đầu được phát triển bởi Shinya Kasatani theo hướng sử dụng Selenium
Core mà không cần cài đặt. Selenium vào máy chủ ứng dụng. Nó được xây
dựng sử dụng JavaScript do vậy mà nó có thể tương tác với DOM
(Document Object Model) sử dụng được những cách gọi JavaScript.
Selenium cho phép ghi lại những hành động trong luồng công việc cần
kiểm tra bằng các chức năng Record và PlayBack. Từ đó Tester có thể nhanh
chóng tạo ra một bộ kịch bản kiểm tra (TestScript) bằng cách “thu” các thao
tác của mình trên đối tượng cần kiểm tra thành một tập những “Selenese”(
ngôn ngữ kịch bản được phát triển cho Selenium IDE và Selenium Coredưới dạng bản HTML). Sau đó chạy lại các câu lệnh này để kiểm tra. Chức
năng này rất hữu dụng cho phép tiết kiệm thời gian viết kịch bản kiểm
tra.Selenium IDE cho phép lưu kịch bản đã thu dưới nhiều loại ngôn ngữ lập
trình. Selenium IDE có kiến trúc Browser và Web Server như hình:


Hình 1.9 Kiến trúc của Selenium IDE

Selenium IDE cũng chứa một menu ngữ cảnh cho phép lựa chọn yếu tố
người dùng từ các trình duyệt đang hiển thị trang và sau đó chọn từ một danh

22


sách các lệnh Selenium và các thông số được xác định theo ngữ cảnh của phần
giao diện người dùng lựa chọn.
1.3.3.2 Hướng dẫn cài đặt Selenium IDE
Bởi vì Selenium IDE là 1 add – on của Mozilla Firefox nên đầu tiên ta
cần kiểm tra xem nó được cài đặt trên trình duyệt Firefox hay chưa? Muốn
kiểm tra ta cần mở trình duyệt Firefox sau đó nhấp vào mục Tool trên Menu
Bar rồi quan sát trên đó menu đổ xuống có mục Selenium IDE hay không.
Nếu thấy không có thì ta cần thực hiện những bước sau đây để cài tiện ích
này trên Firefox
 Bước 1: Truy cập vào trang: tại thẻ
“Download” và lựa chọn “Selenium IDE” rồi download

Hình 1.10 Trang download tiện ích Selenium IDE
 Bước 2: Popup như hình hiện lên, click “Install” để cho phép cài đặt phần
mềm trên máy tính

Hình 1.11 Quá trình cài đặt Selenium IDE
 Bước 3: Bạn cần khởi động lại trình duyệt Firefox. Như vậy bạn đã cài
đặt thành công Selenium IDE. Bạn sẽ thấy tiện ích Selenium IDE bên phải màn
hình


23


 Bước 4: Bạn có thể khởi động Selenium để trải nghiệm những tính năng
của nó bằng cách: Click vào Tool trên Menu bar, di chuyển chuột và click lên
mục Selenium IDE hoặc nhấn tổ hợp phím Ctrl+Alt+S hoặc click vào biểu tượng
Selenium IDE ở góc phải màn hình

Hình 1.12 Thao tác mở IDE trên menu Tool
Một cửa sổ mới bật ra cho thấy giao diện của Selenium IDE

Hình 1.13 Giao diện của Selenium IDE

24


1.3.3.3 Các thành phần của Selenium IDE

Hình 1.14 Các thành phần và kí hiệu của Selenium IDE
 Giải thích về một số kí hiệu:
 Base URL: là nơi lưu trữ homepage của ứng dụng Web được kiểm thử
 Thanh trượt

: Điều chỉnh tốc độ nhanh chậm khi thực thi

testcase
 Nút

: Thực thi tất cả các testcase chúng ta đang mở


 Nút

: Thực thi testcase đang được mở

 Nút

: Cho phép dừng thử nghiệm tại bất kỳ một điểm nào bạn muốn

 Nút

: Sau khi click vào biểu tượng Pause, nó sẽ chuyển sang biểu

tượng Resume. Với nút này cho phép bạn có thể tiếp tục chạy thử nghiệm của
bạn tại đoạn đường bạn đã dừng.
 Nút

: Bỏ qua một testcase khi nó đã bị tạm dừng.

 Nút

: Được sử dụng để thu các testcase qua những thao tác bạn tác

động đến trang Web cần kiểm thử.
 Textbox Command: danh sách các action mà Selenium IDE đang hỗ trợ.
 Textbox Target: Kết quả mong đợi của dòng lệnh
 Textbox Value: Giá trị đầu vào của dòng lệnh.

25



×