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

báo cáo kiểm thử phần mềm đề tài kiểm thử chức năng website với 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 (3.51 MB, 74 trang )

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

BÁO CÁO

Kiểm thử phần mềm
ĐỀ TÀI:
KIỂM THỬ CHỨC NĂNG WEBSITE VỚI SELENIUM
WEBDRIVER

Lớp: ĐH KTPM3-K9
Nhóm: 02
Giảng viên hướng dẫn:

Hà Nội, ngày…..tháng….năm 2016
1


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

BÁO CÁO
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
ĐỀ TÀI:
KIỂM THỬ CHỨC NĂNG WEBSITE VỚI SELENIUM
WEBDRIVER

Giảng viên hướng dẫn:
Sinh viên thực hiện: Hoàng Tấn Phát

Hà Nội, ngày…..tháng….năm 2016


2


Lời Nói Đầu
1. Tên đề tài
KIỂM THỬ CHỨC NĂNG WEBSITE VỚI SELENIUM WEBDRIVER

2. Lí do chọn đề tài
Trong những năm gần đây, công nghệ thông tin đã phát triển nhanh chóng,
mạnh mẽ và được ứng dụng ở hầu hết các mặt của đời sống, kinh tế, văn
hóa, xã hội. Cơng nghệ thơng tin phát triển cũng đồng nghĩa với nó là ngành
công nghệ phần mềm cũng phát triển. Việc xây dựng các ứng dụng web
ngày càng phổ biến và nó ngày càng trở nên thân thiết với con người qua
các hoạt động giới thiệu, quảng cáo, mua bán, quản lý... trên mạng. Cuộc
sống càng lên cao nhu cầu về chất lượng của một sản phẩm cũng tăng lên.
Một sản phẩm không chỉ dừng lại ở việc thân thiện dễ sử dụng mà nó cịn
phải ln chính xác, kịp thời và đảm bảo tính bảo mật tốt. Lỗi của một
phần mềm nói chung hay một ứng dụng web nói riêng có thể gây ra những
hậu quả nghiêm trọng. Do đó, hoạt động đảm bảo chất lượng phần mềm là
rất quan trọng. Trong khi đó hoạt động này lại tiêu tốn và chiếm tỉ trọng khá
lớn công sức và thời gian trong một dự án. Chính vì lí do đó, việc đưa vào
quy trình kiểm thử là vơ cùng cần thiết.
Vì những vấn đề cấp thiết đó , nhóm em đã quyết định chọn đề tài trên để
nâng cao kĩ năng “ kiểm thử phần mềm ” để hướng đến những sản phẩm
tốt nhất cho những người sử dụng.
Em xin chân thành cảm ơn !

3



Mục Lục
Phần 1 : PHẦN MỞ ĐẦU...........................................................................................6
I.Tổng quan về kiểm thử phần mềm........................................................................6
1.Khái niệm kiểm thử phần mềm.........................................................................6
2.Các cấp độ kiểm thử phần mềm........................................................................6
3.Các kỹ thuật kiểm thử.......................................................................................8
Phần 2 : Nội dung......................................................................................................12
Chương I. Tổng quan về Selenium........................................................................12
1. Giới thiệu chung về Selenium........................................................................12
2. Các thành phần của Selenium........................................................................13
3. Cài đặt Selenium Webdriver.............................................................................16
CHƯƠNG 2:.............................................................................................................. 18
I. TÀI LIỆU KHẢO SÁT, XÁC ĐỊNH YÊU CẦU CỦA HỆ THỐNG..............18
1. Khảo sát hiện trạng........................................................................................18
2. Giới thiệu website:.........................................................................................19
3. Đối tượng sử dụng và chức năng của website................................................21
4. Thiết kế hệ thống:..........................................................................................22
CHƯƠNG 3: KIỂM THỬ TỰ ĐỘNG WEBSITE....................................................27
I. Kế hoạch kiểm thử.............................................................................................27
II. Chiến lược kiểm thử.........................................................................................27
1. Các loại hình kiểm thử...................................................................................27
2. Phương pháp kiểm thử..................................................................................28
III. Cụ thể............................................................................................................... 30
1. chức năng đăng nhập.....................................................................................30
2. Chức năng đăng ký........................................................................................33
3. Ứng dụng web................................................................................................37
4. Xây dựng test case đăng nhập.......................................................................38
5. Xây dựng test case đăng ký...........................................................................39
4



6. Thực hiện test bằng selenium webdriver........................................................46
7. Báo cáo kết quả..............................................................................................60
IV: Kiểm thử hiệu năng web bán sách...................................................................61
A. Tìm hiểu cộng cụ Jmeter...............................................................................61
B. Tiến hành kiểm thử hiệu năng cụ thể.............................................................63
KẾT LUẬN...............................................................................................................70
Tài liệu tham khảo:................................................................................................70

5


Phần 1 : PHẦN MỞ ĐẦU
I.Tổng quan về kiểm thử phần mềm
1.Khái niệm kiểm thử phần mềm
Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác
định xem phần mềm có đúng với đặc tả không và thực hiện trong môi
trường như mong đợi hay khơng.
Mục đích của kiểm thử phần mềm là để kiểm tra xem phần mềm có đáp
ứng với nhu cầu của khách hang và phù hợp với đặc tả yêu cầu, đảm bảo
chất lượng và tính chính xác của ứng dụng
2.Các cấp độ kiểm thử phần mềm
2.1 Kiểm thử đơn vị
Một đơn vị (Unit) là một thành phần phần mềm nhỏ nhất mà ta có thể
kiểm thử được, ví dụ: các hàm (Function), thủ tục (Procedure), lớp (Class),
hoặc các phương thức (Method).
Unit testing đề cập đến các kiểm thử để chứng thực (xác minh - verify)
chức năng của một phần riêng biệt của code, thường ở mức hàm (function
level). Trong một môi trường hướng đối tượng (object-oriented
environment), kiểm thử đơn vị thường được sử dụng ở mức lớp (class) và

kiểm thử các đơn vị nhỏ nhất bao gồm các hàm constructor và destructor.
Kiểm thử đơn vị thường do lập trình viên thực hiện. Công đoạn này
cần được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên
suốt chu kỳ phát triển phần mềm. Một hàm có thể có nhiều kiểm thử, để bắt
được các trường hợp hoặc các nhánh trong code.
Cũng như các mức kiểm thử khác, kiểm thử đơn vị cũng đòi hỏi phải
chuẩn bị trước các ca kiểm thử (hay trường hợp kiểm thử) (test case) hoặc
kịch bản (test script), trong đó chỉ định rõ dữ liệu vào, các bước thực hiện
và dữ liệu mong muốn sẽ xuất ra. Các test case và test script được giữ lại để
sử dụng sau này.
2.2 Kiểm thử tích hợp
Integration test kết hợp các thành phần của một ứng dụng và kiểm thử
như một ứng dụng đã hoàn thành. Trong khi Unit Test kiểm tra các thành
phần và Unit riêng lẻ thì Intgration Test kết hợp chúng lại với nhau và kiểm
tra sự giao tiếp giữa chúng.

6


 Integration Test có 2 mục tiêu chính:
• Phát hiện lỗi giao tiếp xảy ra giữa các Unit.
• Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ (subsystem) và cuối cùng
là nguyên hệ thống hoàn chỉnh (system) chuẩn bị cho kiểm thử ở mức hệ
thống (System Test).
 Có 4 loại kiểm thử trong Integration Test:
• Kiểm thử cấu trúc (Structure Test): Tương tự White Box Test (kiểm thử
nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng),
chú trọng đến hoạt động của các thành phần cấu trúc nội tại của chương
trình chẳng hạn các lệnh và nhánh bên trong.
• Kiểm thử chức năng (Functional Test): Tương tự Black Box Test (kiểm

thử chỉ chú trọng đến chức năng của chương trình, khơng quan tâm đến cấu
trúc bên trong), chỉ khảo sát chức năng của chương trình theo u cầu kỹ
thuật.
• Kiểm thử hiệu năng (Performance Test): kiểm thử việc vận hành của hệ
thống.
• Kiểm thử khả năng chịu tải (Stress Test): kiểm thử các giới hạn của hệ
thống.
2.3 Kiểm thử hệ thống
Kiểm thử hệ thống (ST) bao gồm một loạt những kiểm nghiệm
nhằm xác minh tồn bộ các thành phần của hệ thống được tích hợp một
cách đúng đắn. Mục đích của ST là đảm bảo toàn bộ hệ thống hoạt động
như khách hàng mong muốn.
System Test bắt đầu khi tất cả các bộ phận của PM đã được tích hợp
thành cơng. Thơng thường loại kiểm tra này tốn rất nhiều công sức và thời
gian. Trong nhiều trường hợp, việc kiểm tra đòi hỏi một số thiết bị phụ trợ,
phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực,
hệ thống phân bố, hoặc hệ thống nhúng. Ở mức độ hệ thống, người kiểm tra
cũng tìm kiếm các lỗi, nhưng trọng tâm là đánh giá về hoạt động, thao tác,
sự tin cậy và các yêu cầu khác liên quan đến chất lượng của toàn hệ thống.
Điểm khác nhau then chốt giữa Integration Test và System Test là
System Test chú trọng các hành vi và lỗi trên tồn hệ thống, cịn Integration
Test chú trọng sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm
việc cùng nhau. Thông thường ta phải thực hiện Unit Test và Integration
Test để bảo đảm mọi Unit và sự tương tác giữa chúng hoạt động chính xác
trước khi thực hiện System Test.
 Kiểm thử hệ thống thường có các loại kiểm thử sau:
 Kiểm tra chức năng (Functional Test): bảo đảm các hành vi của hệ thống
thỏa mãn đúng yêu cầu thiết kế.
7



 Kiểm tra khả năng vận hành (Performance Test): bảo đảm tối ưu việc phân
bổ tài nguyên hệ thống (ví dụ bộ nhớ) nhằm đạt các chỉ tiêu như thời gian
xử lý hay đáp ứng câu truy vấn…
 Kiểm tra khả năng chịu tải (Stress Test hay Load Test): bảo đảm hệ thống
vận hành đúng dưới áp lực cao (ví dụ nhiều người truy xuất cùng lúc).
Stress Test tập trung vào các trạng thái tới hạn, các “điểm chết”, các tình
huống bất thường…
 Kiểm tra cấu hình (Configuration Test)
 Kiểm tra khả năng bảo mật (Security Test): bảo đảm tính toàn vẹn, bảo mật
của dữ liệu và của hệ thống.
 Kiểm tra khả năng phục hồi (Recovery Test): bảo đảm hệ thống có khả năng
khơi phục trạng thái ổn định trước đó trong tình huống mất tài ngun hoặc
dữ liệu; đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàng
trực tuyến
2.4 Kiểm thử chấp nhận
Sau giai đoạn ST là AT, đây là giai đoạn kiểm tra được khách hàng thực
hiện. Mục đích của AT là để chứng minh phần mềm thỏa mãn tất cả yêu cầu
của khách hàng và khách hàng chấp nhận sản phẩm và trả tiền thanh tốn
hợp đồng.
AT có ý nghĩa hết sức quan trọng, mặc dù trong hầu hết mọi trường
hợp, các phép kiểm tra của ST và AT gần như tương tự, nhưng bản chất và
cách thức thực hiện lại rất khác biệt.
Trên thực tế, nếu khách hàng không quan tâm và khơng tham gia vào
q trình phát triển phần mềm thì thường kết quả AT sẽ sai lệch rất lớn, mặc
dù PM đã trải qua tất cả các kiểm tra trước đó. Sự sai lệch này liên quan đến
việc hiểu sai yêu cầu cũng như sự mong chờ của khách hàng. Ví dụ đơi khi
một PM xuất sắc vượt qua các phép kiểm tra về chức năng thực hiện bởi
nhóm thực hiện dự án, nhưng khách hàng khi kiểm tra sau cùng vẫn thất
vọng vì bố cục màn hình nghèo nàn, thao tác không tự nhiên, không theo

tập quán sử dụng của khách hàng…

Có 2 phương pháp kiểm thử chấp nhận:
 Kiểm thử alpha: được thực hiện tại nơi tổ chức phát triển nhưng khơng phải
do nhóm phát triển test mà do khách hàng thực hiện test.
 Kiểm thử beta: được thực hiện bởi khách hàng hoặc các khách hàng tiềm
năng tại nơi của họ (khách hàng download bản beta và cài vào máy mình rồi
sử dụng).[5]
3.Các kỹ thuật kiểm thử
Một sản phẩm đều có thể được kiểm thử theo 2 cách:
8


• Hiểu rõ một chức năng cụ thể của một hàm hay một module. Các
trường hợp kiểm thử có thể xây dựng để kiểm thử tất cả các thao tác đó.
• Hiểu rõ cách hoạt động của một hàm/module hay sản phẩm. Các
trường hợp kiểm thử có thể được xây dựng để đảm bảo tất cả các thành
phần con khớp với nhau. Đó là tất cả các thao tác nội bộ của hàm dựa vào
các mô tả và tất cả các thành phần nội bộ đã được kiểm thủ một cách thoả
đáng.
Cách tiếp cận đầu tiên được gọi là kiểm thử hộp đen (Black-box testing)
và cách tiếp cận thứ hai là gọi là kiểm thử hộp trắng (White-box testing).
3.1 Kiểm thử hộp đen (Black Box Test)
Kiểm thử hộp đen hay còn gọi là kiểm tra chức năng và thử nghiệm
hành vi. Xem chương trình như là một “hộp đen”, hồn tồn khơng quan
tâm về cách cư xử và cấu trúc bên trong của chương trình. Thay vào đó, Tập
trung vào tìm các trường hợp mà chương trình khơng thực hiện theo các đặc
tả của nó. [2]












Phương pháp kiểm thử hộp đen bao gồm:
Phân vùng tương đương - Equivalence partitioning
Phân tích giá trị biên – Boundary value analysis
Kiểm thử mọi cặp – All-pairs testing.
Kiểm thử fuzz – Fuzz testing.
Kiểm thử dựa trên mơ hình – Model-based testing.
Ma trận dấu vết – Traceability matrix.
Kiểm thử thăm dò – Exploratory testing
Đồ thị nguyên nhân-kết quả - Cause Effect Graphing
Kiểm thử dựa trên đặc tả – Specification-base testing
3.1.1 Phân vùng tương đương - Equivalence partitioning
Phân vùng tương đương (Equivalence Class): là một kỹ thuật kiểm
thử phần mềm có liên quan đến phân chia các giá trị đầu vào thành các phân
vùng hợp lệ và không hợp lệ, sau đó chúng ta sẽ viết ra các kịch bản kiểm
thử cho từng phần, chọn giá trị đại diện từ mỗi phân vùng làm dữ liệu thử
nghiệm.[2]

 Phân vùng tương đương: là kỹ thuật thực hiện test theo từng class đồng giá
trị (tập hợp điều kiện cùng một thao tác).
 Tập hợp giá trị input có cùng một kết quả xử lý, tập hợp thời gian có cùng
một kết quả xử lý, tập hợp kết quả export được xử lý cùng một giá trị nhập.

 Mục đích : Giảm đáng kể số lượng test case cần phải thiết kế vì với mỗi lớp
tương đương ta chỉ cần test trên các phần tử đại diện.
 Chọn tối thiểu một giá trị đại diện từ các class đồng giá trị để tiến hành test.
9


 Thiết kế ca kiểm thử cho phân vùng tương đương dựa trên sự đánh giá về
các vùng tương đương với một điều kiện vào. Vùng tương đương biểu thị
một tập cho các trạng thái hợp lệ hay không hợp lệ đối với điều kiện vào
 Thiết kế test case bằng phân vùng tương đương tiến hành theo hai bước:
- Xác định các lớp tương đương
- Xác định các ca kiểm thử
- -> Nếu có lỗi xảy ra thì các giá trị khác trong class đồng giá trị cũng sẽ có
lỗi giống nhau.
3.1.2 Phân tích giá trị biên – Boundary Value Analysis
Phân tích giá trị biên (Boundary Value Analysis): là một kỹ thuật kiểm
thử phần mềm có liên quan đến việc xác định biên (ranh giới) của điều kiện
mô tả cho các giá trị đầu vào và chọn giá trị ở biên và bên cạnh giá trị biên
làm dữ liệu kiểm thử. Phương pháp phân tích giá trị biên sẽ đưa ra các giá
trị đặc biệt, bao gồm loại dữ liệu, giá trị lỗi, bên trong, bên ngoài biên giá
trị, lớn nhất và nhỏ nhất.















Test giá trị biên được thực hiện theo trình tự dưới đây:
Tìm ra đường biên
Quyết định giá trị biên
Quyết định giá trị để test
Giá trị biên.
Dưới giá trị biên. (Nếu là class đồng giá trị)
Trên 1 giá trị biên. (Nếu là class đồng giá trị)
Boundary values:
Min – 1
Min
Max
Max + 1 [11]
3.1.2 Sử dụng bảng quyết định – Decision Table
Làm giảm số lượng tets casse không cần thiết so với 2 kỹ thuật trên vì nó
loại trừ các phép kết hợp không cần thiết giữa các giá trị biến đầu vào.
Liệt kê nguyên nhân (cause) – kết quả (result) trong một ma trận. Mỗi cột
ma trận đại diện cho 1 phép kết hợp giữa các cause trong trong việc tạo ra 1
result.
Các bước để tạo bảng quyết định
Liệt kê các nguyên nhân trong bảng quyết định
Tính tổng số lượng kết hợp giữa các cause
Điền vào các cột với tất cả các kết hợp có thể có
Rút bớt số lượng các phép kết hợp dư thừa
10



 Kiểm tra các phép kết hợp có bao phủ hết mọi trường hợp hay không
 Bổ sung kết quả vào bảng quyết định [11]
3.1.3 Đồ thị nguyên nhân - kết quả
Là một kỹ thuật thiết kế kiểm thử phần mềm liên quan đến việc xác định
các trường hợp (điều kiện đầu vào) và các hiệu ứng (điều kiện đầu ra). Vì
các hệ thống hiện nay đều được phát triển trên nền tảng OOP, do đó, chúng
ta có thể có được một đồ thị các đối tượng mà hệ thống định nghĩa và kết
nối. Từ đồ thị này, chúng ta dễ dàng biết các mối quan hệ của những đối
tượng mà hệ thống xử lý, từ đó sẽ cho chúng ta các kịch bản kiểm thử phù
hợp.

3.2. Kiểm thử hộp trắng
Kiểm thử hộp trắng (White box testing) là một kỹ thuật xác minh giúp các
kỹ sư phần mềm có thể sử dụng để kiểm tra mã code của họ hoạt động như
dự kiến.
Có các loại white box testing đang tồn tại như sau:
* API testing (application programming interface) – Kiểm thử ứng dụng
bằng cách sử dụng các hàm API public và private
* Code coverage – Là việc tạo các trường hợp test để thỏa mãn một số
điều kiện bao phủ code - code coverage (ví dụ như, người thiết kế test có
thể tạo ra các trường hợp test sao cho tất cả các câu lệnh của chương trình
đều được thực thi ít nhất 1 lần)
* Fault injection methods – cải tiến bao phủ một trường hợp bằng cách
đưa một số lỗi vào để test các đường dẫn code.
* Mutation testing methods
* Static testing - White box testing bao gồm tất cả các phương pháp
kiểm thử tĩnh (ví dụ review code).
Kiểm thử độ bao phủ
Phương pháp kiểm thử white box cũng có thể được sử dụng để ước

lượng tính trọn vẹn đầy đủ của các tập hợp kiểm thử (test suit) đã được tạo
ra bằng phương pháp kiểm thử black box. Điều này cho phép nhóm sản xuất
phần mềm xem xét lại các phần của hệ thống ít được test nhất và để chắc
chắn rằng các chức năng quan trọng nhất đã được tập trung test kỹ.

11


Hai hình thức chung của kiểm thử độ bao phủ code:
* Bao phủ chức năng - Function coverage, dựa trên việc thực thi các chức
năng.
* Bao phủ câu lệnh - Statement coverage, dựa trên số lượng các dòng lệnh
đã được thực thi để hoàn thành kiểm thử.

Phần 2 : Nội dung
Chương I. Tổng quan về Selenium
1. Giới thiệu chung về Selenium
Trong lĩnh vực kiểm thử tự động hiện có khá nhiều test tool thương mại
nổi tiếng, phổ biến như Selenium, QuickTest Professional, WinRunner,
Rational Robot, SilkTest, JTest,... Trong số đó, Selenium bao gồm nhiều
chức năng điển hình của một cơng cụ kiểm thử tự động.
Selenium (thường được viết tắt là SE) là một trong những công cụ
kiểm thử phần mềm tự động mã nguồn mở (open source test automation
tool) mạnh mẽ nhất hiện nay cho việc kiểm thử ứng dụng Web.
Selenium là một công cụ kiểm thử phần mềm tự động, được phát triển
bởi ThoughtWorks từ năm 2004 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.
Selenium là một tập hợp mạnh mẽ của các công cụ hỗ trợ phát triển

nhanh chóng của các thử nghiệm tự động hóa cho các ứng dụng dựa trên
web.Selenium cung cấp một tập phong phú của các thử nghiệm chức năng
đặc biệt hướng đến các nhu cầu của các thử nghiệm của một ứng dụng web.
Các hoạt động này là rất linh hoạt, cho phép nhiều tùy chọn cho vị trí các
thành phần UI và so sánh kết quả thử nghiệm dự kiến sẽ chống lại hành vi
ứng dụng thực tế.
Lợi ích của Selenium :
 Hỗ trợ các trường hợp mà việc execute test lặp đi lặp lại
12








Hỗ trợ các trường hợp execute test một ma trận thử nghiệm lớn
Có thể thực hiện execute test song song
Có thể thực hiện execute test mà không cần người giám sát
Cải thiện độ chính xác, giảm tối đa các lỗi do con người tạo ra
Tiết kiệm thời gian và tiền bạc
Các đặc điểm của Selenium

 Mã nguồn mở. Phải nói điểm này là điểm mạnh nhất của Selenium khi so
sánh với các test tool khác. Vì là mã nguồn mở nên chúng ta có thể sử dụng
mà khơng phải lo lắng về phí bản quyền hay thời hạn sử dụng.
 Cộng đồng hỗ trợ. Vì là mã nguồn mở nên Selenium có một cộng đồng hỗ
trợ khá mạnh mẽ. Bên cạnh đó, Google là nơi phát triển Selenium nên
chúng ta hồn tồn có thể n tâm về sự hổ trợ miễn phí khi có vấn đề về

Selenium. Tuy nhiên, đây cũng là một điểm yếu của Selenium. Cơ bản vì là
hàng miễn phí, cộng đồng lại đơng nên một vấn đề có thể nhiều giải pháp,
và có thể một số giải pháp là khơng hữu ích. Mặc khác, chúng ta không thể
hối thúc hay ra deadline cho sự hỗ trợ.
 Selenium hỗ trợ nhiều ngơn ngữ lập trình C#, Java, Python, PHP và
Selenium cịn có thể kết hợp với một số công cụ kiểm thử khác như Junit,
Bromien, Nunit..
 Selenium hỗ trợ chạy trên nhiều OS khác nhau với mức độ chỉnh sửa script
hầu như là khơng có. Thực sự thì điều này phụ thuộc phần lớn vào khả năng
viết script của chúng ta.
 Chạy test case ở backround. Khi chúng ta thực thi một test scrpit, chúng ta
hoàn toàn có thể làm việc khác trên cùng một PC. Điều này hỗ trợ chúng ta
không cần tốn quá nhiều tài ngun máy móc khi chạy test script.
 Khơng hỗ trợ Win app. Selenium thực sự chỉ hỗ trợ chúng ta tương tác với
Browser mà không hỗ trợ chúng ta làm việc với các Win app, kể cả Win
dialog như Download/Upload – ngoại trừ Browser Alarm. Vậy nên, để xử lý
các trường hợp cần tương tác với hệ thống hay một app thứ ba, chúng ta cần
một hay nhiều thư viện khác như AutoIt hay Coded UI.
2. Các thành phần của Selenium
Selenium gồm 4 thành phần chính , mỗi thành phần đều đóng một vai
trị cụ thể trong việc hỗ trợ kiểm thử Web :

13


Hình 1.1.1 Các Thành phần của Selenium
2.1 Selenium IDE
Selen-IDE là mơi trường phát triển tích hợp cho việc xây dựng trường
hợp thử nghiệm Selenium. Nó hoạt động như một trình duyệt Firefox addon và cung cấp một giao diện dễ sử dụng để phát triển và chạy trường hợp
kiểm thử cá nhân, bộ kiểm tra tồn bộ. Selenium-IDE có một tính năng ghi

lại, sẽ giữ tài khoản của người sử dụng khi chúng được thực hiện và lưu trữ
chúng như là một kịch bản tái sử dụng để phát sử dụng. Nó cũng có một
menu ngữ cảnh (nhấn chuột phải) tích hợp với trình duyệt Firefox, cho phép
người dùng chọn từ một danh sách xác nhận và xác minh cho các vị trí đã
chọn. Selenium-IDE cũng cung cấp chỉnh sửa đầy đủ các trường hợp thử
nghiệm cho chính xác hơn và kiểm soát.
Mặc dù Selen-IDE chỉ là một Firefox add-on, các kiểm thử tạo ra
trong nó cũng có thể được chạy cho các trình duyệt khác bằng cách sử dụng
Selenium-RC và chỉ định tên của bộ ứng dụng thử nghiệm trên dịng lệnh.
2.2 Selenium Webdriver
WebDriver là một cơng cụ để kiểm thử tự động các ứng dụng web.
Nó thường được gọi là Selenium 2.0. WebDriver sử dụng một framework
cơ bản khác biệt trong khi Selenium RC sử dụng Javacript Selenium-Core
nhúng vào trong trình duyệt. WebDriver tương tác trực tiếp với các trình
duyệt và khơng cần bất kỳ trung gian nào, không giống như Selenium RC
phụ thuộc vào một máy chủ. WebDriver được sử dụng trong ngữ cảnh sau:




Kiểm thử đa trình duyệt, bao gồm cải thiện chức năng cho trình duyệt mà
không được hỗ trợ tốt bởi Selenium RC (Selenium 1.0).
Điều khiển nhiều frame, nhiều cửa sổ trình duyệt, nhiều popup và alert.
Điều hướng trang phức hợp.
14






Điều hướng người dùng nâng cao như kéo-thả (drag-and-drop)
AJAX-based UI elements.
2.3 Selenium RC ( Remote Control )
Selenium RC là dự án Selenium chính trong một thời gian dài trước
khi Selenium WebDriver (Selenium 2.0) ra đời. Giờ đây Selenium RC hầu
như khơng được sử dụng vì WebDriver cung cấp nhiều tính tăng mạnh mẽ
hơn. Tuy nhiên bạn vẫn có thể tiếp tục phát triển các script sử dụng RC.
Selenium RC cho phép các nhà phát triển tự động hóa kiểm tra sử
dụng một ngơn ngữ lập trình cho tính linh hoạt tối đa và mở rộng trong việc
phát triển logic thử nghiệm. Ví dụ, nếu trình ứng dụng trả về một tập kết
quả của việc kiểm tra, và nếu chương trình thử nghiệm tự động cần chạy thử
nghiệm trên mỗi phần tử trong tập hợp kết quả, hỗ trợ lặp đi lặp lại các ngơn
ngữ lập trình có thể được sử dụng để chuyển đổi thông qua việc tập hợp kết
quả, kêu gọi Selenium lệnh chạy thử nghiệm trên mỗi mục.
Khả năng sử dụng Selen-RC với một ngơn ngữ lập trình bậc cao để phát
triển các trường hợp thử nghiệm cũng cho phép thử nghiệm tự động được
tích hợp với một dự án xây dựng môi trường tự động.
Selenium RC cho phép chúng ta viết các kiểm thử giao diện của ứng
dụng Web tự động với sự giúp đỡ của các ngơn ngữ lập trình như Java, C#,
Perl, Python, PHP để tạo ra các ca kiểm thử phức tạp hơn như đọc và viết
các tập tin, truy vấn cơ sở dữ liệu và gửi mail kết quả kiểm thử. Khả năng
sử dụng Selen-RC với một ngơn ngữ lập trình bậc cao để phát triển các
trường hợp thử nghiệm cũng cho phép thử nghiệm tự động được tích hợp
với một dự án xây dựng môi trường tự động.
2.4 Selenium Grid
Selenium Grid cho phép người dùng thực thi kiểm thử song song trên
nhiều máy tính khác nhau với nhiều trình duyệt khác nhau.
Selenium Grid cho phép thực thi kiểm thử với chế độ phân tán, sử
dụng chung một code base. Do đó, hard code khơng cần thiết phải có mặt
trên tất cả các máy được sử dụng để thực thi kiểm thử.

Selenium Grid bao gồm 2 thành phần chính là Hub và Nodes:





Hub: có thể hiểu là máy chủ server, chứa hard code và là nơi gửi lệnh điều
khiển các máy khác trong mơ hình thực thi kiểm thử. Hub chỉ có thể được
set up duy nhất trên một máy tính.
Nodes: là các Selenium instances được kết nối vào Hub để thực thi các kịch
bản kiểm thử. Có thể có nhiều Nodes trong một mơ hình Grid. Các Nodes
có thể được set up trên nhiều máy tính với nhiều trình duyệt khác nhau.
15


3. Cài đặt Selenium Webdriver
Bước 1. Download và cài đặt Java Development Kit (JDK)




Link download :
/>Cài đặt bình thường, click Next, Install cho đến khi hoàn tất.
Bước 2. Download và cài đặt Eclipse IDE
Link download:  tùy vào hệ thống của
bạn phiên bản 32/64bit để lựa chọn cho phù hợp. Ở đây mình tải
bản Eclipse IDE for Java Developer đã đáp ứng đủ nhu cầu công việc.
Bước 3. Download Selenium Java Client Driver

Link download:  /> Giải nén và đặt vào 1 thư mục cố định. Nên đặt khác vị trí ổ C để sau này

cài đặt lại hệ thống có thể tái sử dụng lại ngay hoặc đặt trực tiếp vào trong
Project (cài lại máy hoặc di chuyển qua hệ thống khác vẫn chạy Ok).
Bước 4. Tạo Project
 Chạy eclipse.exe từ bước 2 đã tải về
 Set workspace (nơi lưu trữ dự án của bạn) vào bất kì thư mục nào khác ổ C.
Mục đích để nếu cài đặt lại hệ thống eclipse sẽ tự động load lại các dự án
bạn đang làm việc từ workspace. Ví dụ: D:\Workspace 64BIT (Đổi lại
đường dẫn workspace trong eclipse: File -> Switch Workspace)
 Tạo mới Project: File -> New -> Java Project -> [Đặt tên Project] ->
Finish
 Tạo mới Package: Right click vào Project ->New -> Package -> [Đặt tên
Package] ->Finish
 Tạo mới Class: Right click vào Package -> New -> Class -> [Đặt tên
Class] -> Finish
Bước 5.Thêm Selenium Java Client Driver (.jar) vào trong Project
 Right click vào tên Project -> Properties -> Java Build Path -> Libraries
-> Add External JARs
 Chọn tất cả những file có định dạng là .jar trong thư mục [selenium-java2.47.1] -> OK
Bước 6. Thêm TestNG plugin vào Eclipse
 Chọn Help -> Install New Software
 Nhập TestNG vào textbox Name và  />textbox Location -> click OK
 Click vào TestNG và nhấn Next button
 Click “I accept the terms of the license agreement” và nhần Finish button
Nếu hiện ra 1 pop up thong báo về Security Warning , nhấn OK để tiếp tục. 
 Hoàn thành, click Yes để khởi động lại Eclipse
 Sau khi khởi động xong, cần kiểm tra TestNG đã được cài đặt thành
công: Window -> Preferences


16



 TestNG plugin đã được tích hợp thành cơng vào Eclipse

Tích hợp thành công testNG plugin vào Eclip

17


CHƯƠNG 2:
I.

TÀI LIỆU KHẢO SÁT, XÁC ĐỊNH YÊU CẦU CỦA HỆ THỐNG.
1. Khảo sát hiện trạng
Ngày nay thương mại điện tử vơ cùng phát triển .Nó là tất cả các phương
pháp tiến hành kinh doanh và các quy trình quản trị thơng qua các
kênh điện tử mà trong đó Internet hay ít nhất là các kỹ thuật và giao thức
được sử dụng trong Internet đóng một vai trị cơ bản và công nghệ thông
tin được coi là điều kiện tiên quyết.
Lợi ích lớn nhất mà Thương mại điện tử mang lại đó chính là tiết kiệm được
chi phí lớn tạo thuận lợi cho các bên giao dịch. Giao dịch bằng phương tiện
điện tử nhanh hơn là giao dịch bằng truyền thơng, ví dụ gửi fax hay thư điện
tử thì nội dung thông tin sẽ đến người nhận nhanh hơn là gửi thư. Các giao
dịch qua internet có chi phí rất rẻ, một doanh nghiệp có thể gửi thư tiếp thị,
chào hàng đến hàng loạt khách hàng chỉ với chi phí giống như gửi cho một
khách hàng. Với Thương mại điện tử, các bên có thể tiến hành giao dịch khi
ở cách xa nhau, giữa thành phố với nông thôn, từ nước này sang nước khác
hay nói cách khác là khơng bị giới hạn bởi không gian địa lý. Điều này cho
phép các doanh nghiệp tiết kiệm chi phí đi lại, thời gian gặp mặt trong khi
mua bán. Với người tiêu dùng họ có thể ngồi tại nhà để đặt hàng, mua sắm

nhiều loại hàng hóa dịch vụ thật nhanh chóng.
Với các website thương mại điện tử cụ thể là các website bán hàng thì :
Người chủ cửa hàng là người có chức quyền cao nhất: có thể xem thơng
tin về tình hình thu nhập cũng như mọi thay đổi trên website bán hang
Nếu chủ cửa hang cũng là người quản trị website thì mọi thơng tin trên
web là do chủ cửa hàng đưa lên, nếu thuê nhân viên quản trị thì chủ cửa
hàng cung cấp thơng tin hoặc cấp quyền hạn cho người quản trị.

18


Nhân viên chỉ là người giao dịch: tức là xem trong ngày, trong tuần có bao
nhiêu đơn đặt hàng và đã giải quyết được bao nhiêu, đểc ó thể báo cáo bất
cứl úc nào cho chủ cửa hàng.
Người chức cao nhất thì xem được tất cả các thơng tin, cịn nhân viên và
khách hàng chỉ được xem những thông tin mà người cấp trên cho phép.
2. Giới thiệu website:

. Giao diện website
Website bán sách online là website sử dụng công nghệ PHP-MySQL .
Cho phép khách hàng truy cập vào ứng dụng để xem, lựa chọn và mua hàng
trực tuyến. Web cho phép người dùng mua sách onile, xem tin tức ..vv

Menu ngang

19


Menu dọc


20


Giỏ hang và thanh toán

3. Đối tượng sử dụng và chức năng của website
 Đối tượng sử dụng:
 Khách hàng
 Admin
21


 Chức năng hệ thống:
 Khách hàng:
- Đăng kí thành viên
- Tìm kiếm sản phẩm
- Đặt mua sản phẩm
- Xem tin tức
- Liên hệ
 Admin: ngoài những chức năng như khách hàng còn thêm
-

Quản lý thành viên

-

Quản lý loại sản phẩm

-


Quản lý sản phẩm

-

Quản lý tin tức
4. Phân tích thiết kế hệ thống:
4.1 Cơ sở dữ liệu
Bảng tbl_customer
Tên trường

Kiểu dữ liệu

Ghi chú

Cus _id

Int(11)

Mã khách hàng

Cus_user

varchar(20)

Tên đăng nhập

Cus_password

Varchar(50)


Mật khẩu

Cus_fullname

Nvarchar(100
)

Họ tên khách hàng

Cus_date

Varchar(15)

Ngày sinh

Cus_phone

Int(15)

Số điện thoại

Cus_address

Varchar(200)

Địa chỉ

Cus_email

Varchar(100)


Địa chỉ email

22


Bảng tbl_user
Tên trường

Kiểu dữ liệu

Ghi chú

User_id

Int(11)

Mã người dùng

User_name

Varchar(20)

Tên đăng nhập

User_password

Varchar(50)

Mật khẩu


User_fullname

Varchar(100)

Họ tên người dùng

User_address

Varchar(200)

Địa chỉ

User_phone

Varchar(12)

Số điện thoại

User_email

Varchar(100)

Địa chỉ email người dùng

User_avatar

Varchar(1000)

Bảng tbl_listbook

Tên trường

Kiểu dữ liệu

Ghi chú

Listbook_id

Int(11)

Mã danh mục sách

Listbook_name

Nvarchar(200
)

Tên danh mục sách

Kiểu dữ liệu

Ghi chú

Book_id

Int(11)

Mã Sách

Listbook_id


Int(11)

Mã Danh Mục Sách

Book_name

Nvarchar(200)

Tên sách

Book_image

Varchar(1000)

Đường dẫn ảnh sách

Book_author

Nvarchar(200)

Tên tác giả

Bảng tbl_book
Tên trường

23


Book_price


Int(11)

Giá bán

Book_advertise

Varchar(500)

Quảng cáo

Book_introduct

Varchar(5000)

Giới thiệu

Bảng tbl_order
Tên trường

Kiểu dữ liệu

Ghi chú

Order_id

Int(11)

Mã hóa đơn


Cus_id

Int(11)

Mã khách hàng

Order_date

Nvarchar(15)

Ngày tháng

Order_name

Nvarchar(100)

Tên hóa đơn

Order_note

Nvarchar(1000
)

Ghi chú

Order_phone

Int(15)

Số điện thoại


Order_address

Varchar(500)

Địa chỉ

Order_email

varchar(1000)

Địa chỉ email

Bảng tbl_detail_order
Tên trường

Kiểu dữ liệu

Ghi chú

Detail_id

Int(11)

Mã chi tiết hóa đơn

Order_id

Int(11)


Mã hóa đơn

Book_id

Int(11)

Mã Sách

Detail_image

Varchar(500)

Đường dẫn ảnh

Detail_name

Varchar(100)

Tên hóa đơn
24


Detail_author

Varchar(100)

Tác giả

Detail_price


Int(200)

Giá bán

Detail_number

Int(10)

Số lượng

Detail_sumprice

Int(20)

Tổng giá

Kiểu dữ liệu

Ghi chú

Pro_id

Int(11)

Mã sản phẩm

Pro1

Nvarchar(2000
)


Sản phẩm 1

Pro2

Nvarchar(2000
)

Sản phẩm 2

Pro3

Nvarchar(2000
)

Sản phẩm 3

Kiểu dữ liệu

Ghi chú

News_id

Int(11)

Mã tin

News_image

Varchar(500)


Đường dẫn ảnh

News_name

Varchar(200)

Tên tin

News_date

Varchar(30)

Ngày tháng

News_author

Varchar(100)

Tác giả

News_advertise

Varchar(1000)

Quảng cáo

News_introduct

Varchar(5000)


Giới thiệu

Bảng tbl_product
Tên trường

Bảng tbl_news
Tên trường

25


×