Với mong muốn có được cái nhìn xác thực, rõ ràng hơn về kiểm thử phần mềm và tiếp cận được với công cụ kiểm thử tự động Selenium để làm tiền đề cho định hướng tương lai cũng như hiểu rõ
Trang 1Ch ươ ng 1: Gi i thi u ớ ệ
- Cùng với sự tiên tiến của khoa học và nhu cầu mua sắm, ăn uống của khách hàng ngày nay Các ứng dụng web phải ngày càng mạnh mẽ đáp ứng tối đa nhu cầu của khách hàng, trở thành nền tảng kết nối thông tin, đóng vai trò quyết định của thương mại điện tử Để đạt được điều này, các ứng dụng Web cần phải có hiệu năng cao và đáng tin cậy, Vì vậy, việc đưa ra một ứng dụng Web hoàn hảo cho những người đang và sẽ sử dụng ứng dụng đã trở thành một thách thức chính trong đảm bảo chất lượng phần mềm Điều này dẫn tới việc kiểm thử ứng dụng Web trở nên thiết yếu đối với các dự án phần mềm và cần phải có những phương pháp đặc biệt khác với phần mềm truyền thống Nhóm chúng em đã chọn đề tài “ Kiểm thử phần mềm quản lý web bán thức ăn The pizza
Company” Với mong muốn có được cái nhìn xác thực, rõ ràng hơn về kiểm thử phần mềm và tiếp cận được với công cụ kiểm thử tự động Selenium để làm tiền
đề cho định hướng tương lai cũng như hiểu rõ hơn các chức năng của web bán thức ăn “The pizza Company”
1.1 M c tiêu đ án ụ ồ
- Trong đồ án kiểm thử phần mềm quản lý web bán thức ăn “The pizza
Company” Với mục tiêu là tìm hiểu những kiến thức tổng quan nhất về kiểm thử, đặc biệt là với các công cụ kiểm thử tự động Đồ án tập trung nghiên cứu vai trò, phương pháp cũng như ứng dụng của Selenium WebDriver trong việc kiểm thử ứng dụng web Từ đó phân tích và xây dựng các test case cho các chức năng của website Việc thực hiện kiểm thử đồ án này, giúp các bạn trong nhóm
có thể tìm hiểu sâu hơn về lĩnh vực kiểm thử, vận dụng được các kiến thức đã học để áp dụng vào những bài toán thực tế
1.2 Các ch c năng / module th c hi n ki m th ứ ự ệ ể ử
1.3 Môi tr ườ ng, công c và các gi đ nh ụ ả ị
*Kiểm thử tự động là gì? Quy trình kiểm thử tự động
- Kiểm thử tự động là quá trình xử lý một cách tự động các bước thực hiện các test case Kiểm thử tự động bằng một công cụ nhằm rút ngắn thời gian kiểm thử
- Quy trình kiểm thử tự động gồm 4 bước:
+ Bước 1: Viết kịch bản kiểm thử, dùng công cụ kiểm thử để ghi lại các thao tác lên phần mềm cần kiểm tra và tự động sinh ra test script
Trang 2+ Bước 2: Chỉnh sửa để kịch bản kiểm thử thực hiện kiểm tra theo đúng yêu cầu đặt ra, làm theo trường hợp kiểm thử cần thực hiện
+ Bước 3: Chạy kịch bản kiểm thử, giám sát hoạt động kiểm tra phần mềm của kịch bản kiểm thử
+ Bước 4: Kiểm tra kết quả thông bao sau khi thực hiện kiểm thử tự động Sau đó bổ sung, chỉnh sửa những sai sót
*Ưu điểm và nhược điểm của kiểm thử tự động
- Các ưu điểm có thể kể đến của kiểm thử tự động là:
+ Kiểm thử chính xác và có thể bao quát thông tin
+ Theo dõi được chính xác kết quả từng giai đoạn và các báo cáo tổng hợp
+ Cần ít nhân lực trong quá trình kiểm thử
+ Chu kỳ kiểm thử diễn ra trong thời gian ngắn
+ Hiệu năng của kiểm thử các lớp vượt xa tầm với của kiểm thử thủ công
- Tuy nhiên không thể không kể đến các nhược điểm sau của kiểm thử tự động:
+ Chi phí cao cho việc chuyển giao công nghệ và đào tạo nhân viên + Tốn chi phí đầu tư lớn cho việc phát triển công cụ kiểm thử tự động + Tốn chi phí và thời gian cho việc tạo các kịch bản kiểm thử và bảo trì các kịch bản kiểm thử
+ Giai đoạn chuẩn bị kiểm thử yêu cầu nhiều nhân lực
+ Khu vực kiểm thử tự động có thể không bao quát đầy đủ, không áp dụng được trong việc tìm lỗi mới của sản phẩm
*So sánh giữa kiểm thử tự động và kiểm thử thủ công
- Ưu điểm:
+ Độ tin cậy cao: Nhờ sự ổn định vượt trội của công cụ kiểm thử tự động so với con người, đặc biệt trong trường hợp có quá nhiều test case cần được thực thi, nên độ tin cậy của kiểm thử tự động thường cao hơn so với kiểm thử thủ công
+ Khả năng lặp: công cụ kiểm thử tự động ra đời là để giúp cho các tester không phải lặp đi lặp lại các thao tác như: nhập dữ liệu, click, check kết quả, một cách nhàm chán với độ tin cậy và ổn định cao + Khả năng tái sử dụng dụng: với một bộ kiểm thử tự động, người ta có thể sử dụng cho nhiều phiên bản ứng dụng khác nhau, đây được gọi lf tính tái sử dụng
+ Tốc độ cao: do thực thi bởi máy nên tốc độ của kiểm thử tự động nhanh hơn nhiều so với tốc độ con người Nếu cần 5 phút để thực thi một test case một cách thủ công thì có thể người ta chỉ cần khoảng 30 giây để thực thi một cách tự động
Trang 3+ Chi phí thấp: nếu áp dụng kiểm thử tự động đúng cách, người ta có thể tiết kiệm được nhiều chi phí, thời gian và nhân lực, do kiểm thử tự động nhanh hơn nhiều so với kiểm thử thủ công, đồng thời nhân lực cần để thực thi và bảo trì scripts không nhiều
- Nhược điểm:
+ Khó mở rộng, khó bảo trì: trong cùng một dự án, để mở rộng phạm vi cho kiểm thử tự động khó hơn nhiều so với kiểm thử thủ công Để cập nhật một test case thủ công, người ta chỉ cần mở ra và gõ, rất đơn giản Nhưng kiểm thử tự động lại không đơn giản như vậy, cập nhật hay chỉnh sửa yêu cầu rất nhiều công việc như debug, thay đổi dữ liệu đầu vào, và cập nhật code mới
+ Khả năng bao phủ thấp: do ứng dụng, khó mở rộng và đòi hỏi nhiều
kỹ năng lập trình nên độ bao phủ của kiểm thử tự động khá thấp + Vấn đề công cụ và nhân lực: hiện nay cũng có nhiều công cụ hỗ trợ kiểm thử tự động khá tốt nhưng chúng vẫn còn nhiều hạn chế Ngoài
ra nguồn nhân lực có thể sử dụng thành thạo các công cụ này cũng không nhiều
*Selenium là gì?
- Selenium (thường được viết tắt là SE) là một phần mềm mã nguồn mở, được phát triển bởi Jason Huggins, sau đó được tiếp tục phát triển bởi nhóm ThoughtWorks vào năm 2004
- Selenium là một bộ các công cụ hỗ trợ kiểm thử tự động các tính năng của ứng dụng web, bao gồm 4 phần: Selenium IDE, Selenium Remote Control (RC), Selenium Core và Selenium Grid
- Selenium hỗ trợ kiểm thử trên hầu các trình duyệt web phổ biến hiện nay như Firefox, Internet Explorer, Google Chrome và hỗ trợ trên rất nhiều ngôn ngữ lập trình phổ biến như C#, Java, Python, PHP Không những vậy, Selenium còn có thể kết hợp với một số công cụ kiểm thử khác như Junit, Bromine, Nunit
1.4 Nhân sự thực hiện
Trang 43 Giỏ hàng Selenium
4 Thay đổi thông tin khách hàng Selenium
ide
code
code
8 Lịch sử mua hàng, tra cứu đơn
code
code
1.5 K ho ch th c hi n ế ạ ự ệ
20/12/2021-27/12/2021 - Thảo luận chọn đề tài kiểm thử
- Xác định các chức năng kiểm thử 27/12/2021-02/01/2022 - Xác định công cụ, môi trường kiểm thử
- Lập các giả định 02/01/2022 - 05/01/2022 - Tiến hành kiểm thử
- Nghiệm thu kết quả 05/01/2022-10/01/2022 - Kiểm duyệt lại và hoàn thành báo cáo
Trang 512/01/2022 - Báo cáo đồ án
1.6 Thông tin nhóm
Ch ươ ng 2: Chi n l ế ượ c ki m th ể ử
Ch ươ ng 3: Th c hi n ki m th ự ệ ể ử
1 Selenium WebDriver:
*Tiền thân của Selenium WebDriver
Trước khi Selenium WebDriver ra đời và phát triển thì Selenium RC là công
cụ chính trong suốt một thời gian dài
Hiện nay, Selenium RC không được sử dụng nhiều như Selenium WebDriver nữa, tuy nhiên người dùng vẫn có thể tiếp tục phát triển các kịch bản kiểm thử với Selenium RC
Selenium RC là công cụ phục vụ cho các công việc kiểm thử đòi hỏi nhiều hơn việc thao tác với các website trên giao diện Nó cho phép viết các kịch bản kiểm thử tự động ứng dụng Web với sự hỗ trợ của các ngôn ngữ lập trình như Java, C#, Python, Pert, PHP để tạo ra các trường hợp 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, gửi mail kết quả kiểm thử
*Đặc trưng của Selenium WebDriver
Selenium WebDriver kế thừa và phát triển từ Selenium IDE, Selenium RC, Selenium Grid Selenium WebDriver tương tác trực tiếp với trình duyệt mà không cần thông qua bất kỳ trung gian, không giống như Selenium RC phụ thuộc vào máy chủ
Tính năng chính trong Selenium WebDriver là việc tchs hợp Webdriver API Ngoài việc giải quyết một số hạn chế trong Selenium RC API, Selenium
WebDriver còn được thiết kế để mang đến một giao diện lập trình đơn giản hơn
Nó cho phép sử dụng một trong số các ngôn ngữ lập trình như HTML, Java, Net,
… để tạo kịch bản kiểm thử kết hợp với sử dụng các điều kiện, vòng lặp… khiến cho test script trở nên chính xác hơn
Selenium WebDriver còn được phát triển tốt hơn để hỗ trợ cho các trang Web động do các phần tử trong một trang Web động có thể thay đổi bất cứ lúc nào, ngay cả khi trang đó không được tải lại vì vậy, Selenium WebDriver được phát triển để hỗ trợ quá trình kiểm thử mà không cần phải thực hiện lại có khi có thay
Trang 6đổi xảy ra.
*Ưu nhược điểm của Selenium WebDriver
- Ưu điểm:
+ Selenium WebDriver hỗ trợ rất đắc lực với các loại ngôn ngữ lập trình khác nhau
+ Selenium WebDriver hỗ trợ người dùng sử dụng một cách miễn phí + Selenium WebDriver rất dễ hiểu và rất dễ để sử dụng
+ Selenium WebDriver hỗ trợ nhiều trình duyệt khác nhau
- Nhược điểm
+ Nếu như Selenium WebDriver muốn chạy ổn định thì cần phải có các handie timeout (phụ thuộc vào tốc độ của mạng)
+ Nếu như người dùng không kiểm soát tốt đối với Selenium WebDriver thì sẽ gây ra tình trạng hết ram hoặc là chế đứng
STT Chức
năng
Mô tả sơ lược
Các giả định
Các dữ liệu kiểm
Các bước thực hiện Kết quả
Đề nghị
Pas
s Failed
1 Đăng nhập Chức năng cho
phép người dùng đăng nhập vào tài khoản
đã đăng ký trước đó trên website để lưu trữ các thông tin của mình.
- SĐT, mật khẩu.
- Bỏ trống thông tin bắt buộc nhập
-Sđt đăng nhập:
0866925043 -Mật khẩu:
thepizza -Sđt đăng nhập sai:
086692504 -Sđt đăng nhập sai:
abcd -Mật khẩu sai: pizza
-Viết test case.
-Sử dụng selenium webdriver
để kiểm tra.
- Nhập thông tin (hợp lệ và không hợp lệ).
- Ghi nhận kết quả
Trang 72 Đổi mật
khẩu
Nhằm trường hợp bị người khác nhìn thấy mật khẩu, để tránh làm phiền việc bị gọi hỏi đơn đặt hàng không cần thiết thì nên đổi mật khẩu mới.
- Mật khẩu
cũ, mật khẩu mới, xác nhận mật khẩu mới.
- Bỏ trống thông tin bắt buộc nhập
-Mật khẩu
cũ đúng:
thepizza -Mật khẩu mới đúng:
thepizzacom pany -Mật khẩu cập nhật đúng:
thepizzacom pany -Mật khẩu mới sai:
Thepizza
-Viết test case.
-Sử dụng selenium webdriver
để kiểm tra.
- Nhập thông tin (hợp lệ và không hợp lệ).
- Ghi nhận kết quả.
3 Tìm
kiếm
món ăn
Chức năng cho phép người dùng tìm kiếm món ăn có ở nhà hàng một cách dễ dàng hơn nhiều thông qua những từ khóa mà khách hàng
có nhu cầu hoặc là tên đầy đủ cho những chiếc bánh
- Gõ từ khóa có dấu và đầy đủ
ký tự -Gõ từ khóa không dấu
- Gõ từ khóa dưới 3
ký tự -Để trống vào
ô tìm kiếm
Từ khóa món ăn
-Viết test case
-Sử dụng selenium webdriver
để kiểm tra (Nhập tên món
ăn cần tìm bằng những từ khóa) -Ghi nhận các kết quả
-thực hiện đánh giá PASS or FAILED trong testcase
phải mở rộng
về từ khóa tìm kiếm hơn như là các từ khóa không
có dấu hoặc
ít ký tự
4 Lịch sử
mua hàng,
tra cứu đơn
hàng
Chức năng cho phép khách hàng có thể xem lại những
- Chọn lịch sử mua hàng
để xem
- Số điện thoại đăng ký:0937140 226
Viết test case.
-Sử dụng selenium
Trang 8hóa đơn mình
đã đặt và trạng
thái của những
đơn hàng Tra
cứu lại những
đơn hàng thông
qua mã đơn
hoặc số điện
thoại
danh sách
tất cả đơn
- Tra cứu
bằng mã
đơn hàng
- Tra cứu
bằng số
điện thoại
đăng ký
-Tra cứu
bằng số
điện thoại
không
đăng ký
- Nhập sai
mã đơn
hàng
-Số điện thoại không đăng ký:0937438 253
- Mã đơn hàng:
503576,50 3060,4961 15
- Mã đơn hàng sai:12345
webdriver
để kiểm tra.
- Nhập thông tin (hợp lệ và không hợp lệ).
- Ghi nhận kết quả.
Trang 95 Tin tức và
sự kiện
Chức năng này cho phép chúng
ta xem những
sự kiện mới nhất chẳng hạn (tích điểm, đổi quà, ) hay là những thông báo mới về thời gian hoạt động tại nhà hàng.
Chọn tin tức & sự kiện để xem
-Viết test case -Sử dụng Selenium webdriver
để kiểm tra.
-Ghi nhận kết quả
6 Liên hệ
với cửa
hàng
Chức năng này cho phép người dùng gửi các ý kiến của mình hoặc là các khiếu nại đến cửa hàng cũng như là phản hồi về món ăn
Nhập đủ thông tin
và nhập đúng Không nhập thông tin nào cả nhập phần họ tên là số
- còn lại nhập đủ
vả đúng nhập vào phần họ
Họ tên, số điện thoại, email, tiêu
đề, nội dung
-Viết test case
-Sử dụng selenium webdriver
để kiểm tra Nhập vào các thông tin theo nhiều trường hợp để kiểm thử
-Ghi nhận các kết quả
-thực hiện đánh giá PASS or
thêm tính năng phát hiện các thông tin không đúng định dạng hoặc không
có tính xác thực rõ ràng
Trang 10tên là ký
tự lạ -
còn lại
nhập đủ
vả đúng
không
nhập họ
và tên -
còn lại
nhập đủ
vả đúng
nhập
phần
thông tin
số điện
thoại
bằng chữ
cái
nhập
phần
thông tin
số điện
thoại
bằng ký
tự lạ -
còn lại
nhập đủ
vả đúng
không
nhập số
diện
thoại -
còn lại
nhập đủ
vả đúng
FAILED trong testcase
Trang 11nhập Email không đúng định dạng - còn lại nhập đủ
vả đúng không nhập Email - còn lại nhập đủ
vả đúng không nhập tiêu
đề - còn lại nhập
đủ vả đúng không nhập nội dung mô
tả - còn lại nhập
đủ vả đúng
2 Selenium ide:
stt chức
năng mô tả sơ lược các giả định Các dữ liệu các bước Kết quả Đề nghị
Trang 12kiểm thực
1 Giỏ
hàng Chức năng cho phép người dùng
có thể chọn,
thêm, sửa, xóa
món ăn tạo điều
kiện thuận lợi
cho việc mua
sản phẩm Tính
năng này cho
phép khách hàng
thanh toán trực
tuyến và cung
cấp thông tin
cho cửa hàng,
bộ xử lý thanh
toán.
- Đăng nhập tài khoản (SĐT là ký tự)
- Thêm món
- Xóa món
- Tăng số lượng món
- Giảm số lượng món ( Với điều kiện số lượng > 1)
- Giảm số lượng món ( Với điều kiện số lượng = 1)
- Tăng, giảm món (giá tiền được cập nhật lại theo số lượng món thay đổi)
-Viết test case -Sử dụng selenium IDE để kiểm tra
Nhập thông tin (bao gồm hợp lệ và không hợp lệ)
-Ghi nhận các kết quả.
tiền ngay sau có thay đổi trong giỏ hàng để tránh khách hàng nhầm lẫn giá khi mua hàng
2 Thay
đổi
thông
tin
Chức năng cho
phép người dùng
có thể thay đổi
tên hoặc địa chỉ
email cá nhân,
nhằm cập nhật
tài khoản chính
xác và bảo mật
tài khoản để đặt
hàng tại website
của cửa hàng.
- Thay đổi thông tin ( Tên bằng
ký tự số) - Thay đổi thông tin ( Email sai)
- Thay đổi thông tin
Thay đổi thông tin ( Email để trống) - Thay đổi thông tin ( Tên để trống)
Tên, số điện thoại, email.
-Viết test case -Sử dụng selenium IDE để kiểm tra
Nhập thông tin (bao gồm hợp lệ và không hợp lệ)
-Ghi nhận các kết quả.
thay đổi số điện thoại cá nhân, nhằm cập nhật số điện thoại chính xác và mới nhất từ khách hàng.
Trang 133 Hộp đen:
stt chức
năng
mô tả sơ
lược
các giả định các dữ liệu
kiểm
các bước thực hiện Kết quả
Đề nghị pass faile d
1 Thanh
toán
trực
tuyến
cho phép
khách
hàng
được
thanh
toán hóa
đơn mua
hàng
thông
qua ví
momo
hoặc
chuyển
khoản
qua
sacomba
nk
-Số điện thoại có đăng ký momo -Có tài khoản
- Số tiền trong tài khoản ít hơn tổng hóa đơn
-Số điện thoại không đăng ký momo
- Không có tài khoản ngân hàng
Số điện thoại,
số tài khoản ngân hàng
-chọn kỹ thuật kiểm thử hộp đen -Viết testcase
Ch ươ ng 4: K t qu đ t đ ế ả ạ ượ c
4.1 K t qu ki m th ế ả ể ử
Ngày Test