Professional Documents
Culture Documents
BÁO CÁO
Lớp: ĐH KTPM3-K9
Nhóm: 02
Giảng viên hướng dẫn:
BÁO CÁO
ĐỀ TÀI:
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 luôn 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.
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
6
Integration Test có 2 mục tiêu chính:
• 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 yê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 toà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 toà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 nguyên 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 toá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
quá 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).
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.
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ử.
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ế.
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
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 hoàn toàn có thể yê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 nguyên 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
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.
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 :
http://www.oracle.com/technetwork/java/javase/downloads/index.html
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: http://www.eclipse.org/downloads/, 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
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.
Menu ngang
19
Menu dọc
20
Giỏ hang và thanh toán
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.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
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_passwor Varchar(50) Mật khẩu
d
User_fullname Varchar(100) Họ tên người dùng
22
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
Bảng tbl_book
Tên trường 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ả
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ú
23
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
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á
Bảng tbl_product
Tên trường 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
Bảng tbl_news
Tên trường 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_help
Tên trường Kiểu dữ liệu Ghi chú
Help_id Int(11) Mã danh mục hỗ trợ
Help_name Varchar(500) Tên danh mục hỗ trợ
H1 Varchar(2000)
H2 Varchar(2000)
H3 Varchar(2000)
Bảng tbl_linkweb
Tên trường Kiểu dữ liệu Ghi chú
Web_id Int(11) Mã trang web liên kết
24
Web _name Varchar(500) Tên trang web liên kết
Web_link Varchar(1000) Địa chỉ web liên kết
25
26
CHƯƠNG 3: KIỂM THỬ TỰ ĐỘNG WEBSITE
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, qui
trình và báo cáo cũng như việc thực hiện đúng những qui tắc nghiệp vụ.
Mục đích test: Đảm bảo mục tiêu test đúng đắn
của chức năng, bao gồm định
hướng, dữ liệu đầu vào, xử lý
và dữ liệu nhận được
Cách thực hiện: Thực hiện mỗi đơn vị, chu trình
đơn vị hoặc chức năng, sử dụng
dữ liệu hợp lệ và không hợp lệ
để kiểm tra:
- Kết quả mong đợi với dữ
liệu hợp lệ.
27
- Lỗi thích hợp hoặc thông
báo hiển thị khi dữ liệu không
hợp lệ.
- Mỗi qui tắc nghiệp vụ đều
được áp dụng đúng
Điều kiện hoàn thành: - Toàn bộ kế hoạch test đã
được thực hiện.
- Toàn bộ các lỗi phát hiện ra
đã được ghi nhận.
Chú ý Xác định hoặc mô tả các vấn đề
(nội bộ hoặc bên ngoài) ảnh
hưởng đến việc test chức năng
2. Phương pháp kiểm thử
28
29
III. Ứng dụng kiểm thử trên Web
30
1.2 Đồ thị lưu trình
31
1.3 Đồ thị dòng
32
2. Chức năng đăng ký
33
2.2 Đồ thị lưu trình
34
Độ phức tạp của chu trình:C=19
1-2-3-32
1-2-3-4-5-12-32
1-2-3-4-5-6-12-32
1-2-3-4-5-6-7-12-32
1-2-3-4-5-6-7-8-12-32
1-2-3-4-5-6-7-8-9-12-32
1-2-3-4-5-6-7-8-9-10-12-32
1-2-3-4-5-6-7-8-9-10-11-12-32
1-2-3-4-5-6-7-8-9-10-11-13-14-32
1-2-3-4-5-6-7-8-9-10-11-13-15-16-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-19-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-19-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-20-22-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-20-21-22-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-20-21-23-24-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-20-21-23-25-26-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-20-21-23-25-27-28-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-20-21-23-25-27-29-30-32
1-2-3-4-5-6-7-8-9-10-11-13-15-17-18-20-21-23-25-27-29-31-32
35
2.3 Đồ thị dòng
36
3. Ứng dụng web
Mô tả :
37
Mô tả :
39
- Mật khẩu phải chứa [6,20] kí tự:thực hiện nhập vào 5,21 kí tự,rỗng
- Nhập lại mật khẩu phải giống mật khẩu
- Số điện thoại phải từ [10,12] ký tự số ,đúng định dạng 09,08,02,016[2-9] :
thực hiện nhập vào 9, 13 ký tự số,rỗng.
- Họ và tên không được rỗng
- Địa chỉ không được rỗng
- Ngày sinh không được bỏ trống và đúng
41
+ kí tự đặc biệt
+chữ
Họ và tên Không trống Bỏ trống
Địa chỉ Không trống Bỏ trống
Ngày sinh - Ngày [1-30] và - Ngày 31 và tháng :
tháng [4,6,9,11]
+4
-Ngày[1-28] và
+6
tháng 2 năm không
nhuận +9
-Ngày[1-29] và +11
tháng 2 năm nhuận - Ngày 29 tháng 2 năm
không nhuận
- Ngày >30 tháng 2 năm
nhuận
- Ngày sinh bỏ trống
Email Local-Part là chữ -bỏ trống email
hoặc số hoặc các kí
-Thiếu Local-Part
tự(+ - .) và kí tự nối
-Thiếu @
là @ và
-Thiếu server name
server name có dạng
-Local-Part chứa kí tự
xxx.xxx
không phải chữ hoặc số:
+ khoảng trắng
+kí tự đặc biệt
-Server name sai định dạng
xxx.xxx:
+ thiếu .
+ thiếu com
+ chứa khoảng trắng
+chứa kí tự đặc biệt
+ thiếu .com
+thiếu domain trong server
name
42
Các ca kiểm thử : Từ mô tả và bảng phân vùng tương đương ta có
Test case Đầu vào Đầu ra mong đợi
1 Bỏ trống tất cả các Hiển thị thông báo
trường nhập tất cả các
trường
2 Tất cả các trường Hiển thị thông báo
hợp lệ đăng ký thành công
3 Tài khoản nhỏ hơn 6 Thông báo độ dài tên
ký tự đăng nhập không
hợp lệ
4 Tài khoản lớn hơn Thông báo độ dài tên
20 ký tự đăng nhập không
hợp lệ
5 Tài khoản đã tồn tại Thông báo tên đăng
nhập đã tồn tại
6 Tài khoản có kí tự Thông báo tên đăng
đặc biệt nhập không hợp lệ
7 Tài khoản có khoảng Thông báo tên đăng
trắng nhập không hợp lệ
8 Tài khoản bỏ trống Thông báo vui lòng
nhập tất cả các
trường
9 Mật khẩu < 6 kí tự Thông báo độ dài
mật khẩu không hợp
lệ
10 Mật khẩu >20 kí tự Thông báo độ dài
mật khẩu không hợp
lệ
11 Bỏ trống mật khẩu Thông báo vui lòng
43
nhập tất cả các
trường
12 Bỏ trống họ và tên Thông báo vui lòng
nhập tất cả các
trường
13 Chọn ngày > 28 Thông báo ngày sinh
tháng 2 năm không không hợp lệ
nhuận
44
25 Nhập số điện thoại Thông báo số điện
sai đầu số thoại không hợp lệ
26 Bỏ trống số điện Thông báo số điện
thoại thoại không hợp lệ
27 Bỏ trống địa chỉ Thông báo vui lòng
nhập tất cả các
trường
28 Bỏ trống địa chỉ Thông báo vui lòng
email nhập tất cả các
trường
29 Email không đúng Thông báo địa chỉ
định dạng email không hợp lệ
xxx@xxx.xxx
30 Email không có kí tự Thông báo địa chỉ
nối @ email không hợp lệ
31 Email không có Thông báo địa chỉ
server name email không hợp lệ
32 Email không có Thông báo địa chỉ
domain email không hợp lệ
33 Email không có dấu Thông báo địa chỉ
. email không hợp lệ
34 Email không có Thông báo địa chỉ
com email không hợp lệ
35 Bỏ trống Local-Part Thông báo địa chỉ
email email không hợp lệ
36 Local-Part email có Thông báo địa chỉ
kí tự đặc biệt trừ các email không hợp lệ
kí tự +- .
37 Local-Part email có Thông báo địa chỉ
khoảng trắng email không hợp lệ
38 Domain name chứa Thông báo địa chỉ
kí tự đặc biệt email không hợp lệ
39 Email đã tồn tại Thông báo địa chỉ
45
email đã tồn tại
46
Kết quả trong cửa sổ Console
47
Kết quả trong cửa sổ TestNGResutls
6.2. Viết các kịch bản Đăng Ký hệ thống website :
48
Kết quả trong cửa sổ Console
49
6.3. Dữ liệu đầu vào
50
6.3.2. Đăng ký
51
6.4. Chi tiết kết quả
52
6.4.2. Test case Đăng kí
53
54
55
56
57
58
59
7. Báo cáo kết quả
STT Module code Pas Fail Number
s of test
cases
1 Module Đăng Nhập 7 0 7
2 Module Đăng kí 39 0 39
Tổng số 46 0 46
Đã test: 100%
60
IV: Kiểm thử hiệu năng web bán sách
- Jmeter là một mã nguồn mở được viết bằng java. Cha đẻ của JMeter là
Stefano Mazzocchi sau đó Apache đã thiết kế lại để cải tiến hơn giao diện
đồ họa cho người dùng và khả năng kiểm thử hướng chức năng.
Cách thức hoạt động: nó giả lập một nhóm người dùng gửi các yêu cầu tới
một máy chủ, nhận và xử lý các response từ máy chủ và trình diễn các kết
quả đó cho người dùng dưới dạng bảng biểu, đồ thị,cây…
1.1.Cài đặt
61
- Giải nén vào bin chạy file ApacheJMeter.
62
B. Tiến hành kiểm thử hiệu năng cụ thể
Chuột phải vào Test Plan –> Add –> Threads(users) –> Thread Group
63
Name : tên của thread group.
Ramp-Up Period: cho biết thời gian để JMeter tạo ra tất cả những thread cần
thiết.
Loop Count : số lần các thread được tạo thực hiện , nếu chọn forever sẽ
thực hiện mãi mãi cho tới khi người dùng dừng lại bằng tay.
Tạo request đến server : 1 thread(tương ứng 1 user) có thể tạo nhiều request
http gửi lên server.
Chuột phải vào Thread group –> add –> sample –> http request Default
64
Cửa sổ Http Request Default
Protocol: giao thức được sử dụng HTTP hoặc HTTPS(bỏ trống mặc định là
http)
Server Name or IP: điền vào domain hoặc IP của trang web cần kiểm tra
Port Number: chỉ ra port của web, để trống sẽ là port mặc định 80
Method: phương thức để gửi các HTTP request, các phương thức ở đây bao
gồm GET, POST, PUSH, HEAD,…
Parameters: biểu diễn danh sách các thông số gửi cùng request, ta có thể
thêm hoặc xóa các thông số này.
65
Truy cập vào trang chủ
66
2. Kết quả
Tiến hành chạy và thu được kết quả :
2.1 Xem kết quả tổng hợp của tất các thread (Chuột phải vào Thread Group
–> Add -> Listener –> Summary Report)
# Sample : số request
Std.Dev: độ lệch tiêu chuẩn mô tả mức độ phân tán của một tập dữ liệu đã
được lập thành bảng tần số
Error : phần trăm bị lỗi của các request(lỗi kết nối hoặc lỗi cho đầu ra
không mong muốn)
kb/s = (avg.bytes*thoughput)/1024
Kết quả tổng hợp của thread truy cập trang chủ
67
Kết quả tổng hợp của thread login
2.2 Xem kết quả của từng request trong kịch bản(Chuột phải Thread Group
–> Add –> Listener –> View Results Tree)
68
Kết quả trong thread login
69
Phần 3: KẾT LUẬN
Kiểm thử phần mềm là một hoạt động quan trọng trong đảm bảo chất lượng
phần mềm để đảm bảo độ tin cậy và chất lượng của phần mềm .Mục đích
chính của kiểm thử là phát hiện ra các lỗi phần mềm để từ đó khắc phục và
sửa chữa. Việc kiểm thử không thể khẳng định được rằng các chức năng của
sản phẩm đúng trong mọi điều kiện, mà chỉ có thể khẳng định rằng nó
không hoạt động đúng trong những điều kiện cụ thể.
Trong thời gian tìm hiểu về kiểm thử phần mềm nói chung và công cụ kiểm
thử Selenium , Jmeter nói riêng nhóm em đã hiểu được kiểm thử phần mềm
là giai đoạn rất quan trọng trong quy trình sản xuất phần mềm .Sự áp dụng
mới chỉ thực hiện trên một bài toán nhỏ. Nhóm e xin trân thành cảm ơn thầy
Nguyễn Đức Lưu đã giúp đỡ chúng em thực hiện tốt đề tài này.
70