Nhưng cũng từ đó đã sảy ra nhiều vấn đề về lỗi hỏng hóc phần mềm không đáng có, gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế… Những lỗi này có thể là do tự bản thân phần mềm bị
Trang 1TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC THÀNH PHỒ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
□&□
MÔN HỌC : BẢO ĐẢM CHẤT LƯỢNG PHẦN MỀM
ĐỀ TÀI : Kiểm thử tự động Website Bitis Giáo Viên Hướng Dẫn : Th.S Tiếu Phùng Mai Sương Thành Viên :
Đinh Trần Đăng Huy 20DH111999
Tp Hồ chí minh, Ngày , tháng , năm
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
Giảng viên 01
Trang 3
NHẬN XÉT CỦA GIẢNG VIÊN
Giảng viên 02
Trang 4
MỤC LỤC
Trang 5Bảng phân công công việc
trưởng
Thực hiện kiểm thử trên tính năng tài khoản
X
Thực hiện kiểm thử trên tính năng mua hàng
Thực hiện kiểm thử trên tính năng mua hàng
Huy
Thực hiện kiểm thử trên tính năng tìm kiếm, lọc sản phẩm
Trang 6CHƯƠNG 1 Giới thiệu chung
1.1 Lý do chọn đề tài
Ngày nay công nghệ thông tin đang ngày càng phát triển nhanh chóng, kéo theo đó là hệ thống mạng và các phần mềm cũng gia tăng cả về số lượng theo quy mô rộng và cả về chất lượng phần mềm theo chiều sâu Nhưng cũng từ đó
đã sảy ra nhiều vấn đề về lỗi hỏng hóc phần mềm không đáng có, gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế… Những lỗi này có thể là do tự bản thân phần mềm bị hỏng lúc không được kiểm duyệt kĩ lưỡng trước khi đưa cho người dùng cuối hay cũng có thể do có người cố tình phá hoại nhằm đánh cắp thông tin cá nhân như mã số tài khoản, số điện thoại,…
Do đó yêu cầu đặt ra là cần có công tác kiểm thử phần mềm thật kĩ lưỡng nhằm ngăn chặn các lỗi hay hỏng hóc còn tiềm tàng bên trong phần mềm mà ta chưa kịp nhận ra Tuy nhiên vì phần mềm ngày càng lớn, càng nhiều module,
có thể do cả một công ty hàng nghìn người phát triển vì vậy để kiểm thử được một phần mềm lớn như vậy sẽ tốn nhiều công sức và thời gian thủ công, chưa
kể đến chất lượng kiểm thử sẽ không cao Công việc kiểm thử đóng vai trò hết sức quan trọng trong quy trình phát triển phần mềm Chính vì điều đó chúng
em chọn đề tài này để tìm hiểu về kiểm thử phần mềm
6 | P a g e
Trang 7CHƯƠNG 2 Lý thuyết
2.1 Kiểm thử phần mềm tự động
Automation testing (Kiểm thử tự động) là quá trình sử dụng các công cụ, script và phần mềm để thực hiện những trường hợp kiểm thử, bằng cách lặp lại những hành động được xác định trước Automation testing tập trung vào việc thay thế hoạt động thủ công của con người bằng các hệ thống hoặc thiết bị
2.2 Bug tracking
2.2.1 Giới thiệu sơ lược Bug tracking
Bug tracking là quá trình ghi nhật kí và theo dõi các lỗi hoặc lỗi trong quá trình kiểm thử phần mềm hay còn được gọi là theo dõi lỗi hoặc theo dõi vấn đề Các hệ thống lớn có thể có hàng trăm hoặc hàng nghìn lỗi, mỗi một lỗi cần được đánh giá, giám sát và ưu tiên gỡ lỗi Trong một số trường hợp, các lỗi có thể cần được theo dõi trong một khoảng thời gian dài
Thành phần chính của hệ thống theo dõi lỗi sai là cơ sở dữ liệu ghi lại sự thật về các lỗi đã biết Các dữ kiện có thể bao gồm thời gian một lỗi được báo cáo, mức độ nghiêm trọng của nó, hành vi sai sót của chương trình và chi tiết
về cách tái tạo lỗi đó, cũng như danh tính của người đã báo cáo và bất kì lập trình viên nào có thể đang sửa lỗi sai đó
Kiểm thử phần mềm là điều cần thiết để cô lập và giảm thiểu lỗi Một quy trình QA tốt có thể phát hiện ra hàng trăm hoặc thậm chí hàng nghìn lỗi và nhóm kiểm thử cần quản lý tất cả chúng Việc tích hợp theo dõi các lỗi sai vào quy trình thử nghiệm sẽ cải thiện hiệu quả bằng cách giúp người thử nghiệm sắp xếp thứ tự ưu tiên, theo dõi và báo cáo về trạng thái của từng lỗi
Theo dõi các lỗi sai giúp đảm bảo rằng các lỗi được tìm thấy trong hệ thống thực sự được sửa chữa Các công cụ theo dõi không chỉ cung cấp một
7 | P a g e
Trang 8cách để đảm bảo việc theo dõi mà còn cung cấp các số liệu có giá trị Tùy thuộc vào công cụ đang được sử dụng, nhóm có thể liên kết các lỗi với mã đã thay đổi, các bài kiểm tra hoặc dữ liệu khác sẽ cho phép truy xuất nguồn gốc hoặc phân tích các xu hướng lỗi
2.2.2 Tool Puppeteer
2.2.2.1 Khái niệm về Puppeteer
Puppeteer là một thư viện của Node.js được phát triển bởi nhóm Chrome của Google,cung cấp API cấp cao để kiểm soát Chrome hoặc Chromium sử dụng giao thức DevTools Puppeter mặc định chạy headless, nhưng có thể được cấu hình để chạy non-headless
2.2.2.2 Điểm mạnh của Puppeteer
Một điểm mạnh của Puppeteer là khả năng điều khiển trình duyệt một cách trực tiếp và linh hoạt Bạn có thể kiểm soát các thuộc tính trình duyệt như kích thước cửa sổ, vị trí, độ phân giải, nhóm người dùng, tài khoản đăng nhập và nhiều hơn nữa Điều này cho phép bạn thực hiện các kiểm tra đa dạng và phức tạp trên trình duyệt một cách linh hoạt Một số việc ta có thể làm với Puppeter như:
× Chụp ảnh màn hình hoặc xuất file pdf của các trang
× Crawl một SPA (Single-Page Application) và xuất ra nội dung pre-rendered (ví dụ như "SSR" (Server-Side Rendering))
× Tự động gửi form, test giao diện và nhập dữ liệu từ bàn phím,
× Tạo môi trường testing tự động cập nhật Chạy bản thử nghiệm trong Chorme với các tính năng mới nhất và phiên bản javascript mới nhất
× Ghi lại timeline trace cho website của bạn giúp phát hiện sớm các vấn đề về hiệu năng
8 | P a g e
Trang 9× Test Chorme Extensions.
2.2.2.3 Nhược điểm của Puppeteer
Puppeteer là một thư viện trình duyệt tự động hóa được phát triển bởi Google Chrome, nhưng nó cũng có một số nhược điểm cần được lưu ý:
- Khả năng tương thích: Puppeteer chỉ hỗ trợ trình duyệt Chrome và
Chromium-based, điều này có nghĩa là nó không thể làm việc với các trình duyệt khác như Firefox, Safari hoặc Internet Explorer Điều này có thể gây hạn chế đối với việc kiểm thử và tự động hóa trên các nền tảng và trình duyệt khác nhau
- Tốc độ thực thi: Puppeteer thường có thời gian khởi động ban đầu và tải trang khá lâu so với một số công cụ tự động hóa khác Việc khởi động một trình duyệt mới và tải các tài nguyên liên quan có thể mất thời gian, đặc biệt là trong các kịch bản kiểm thử phức tạp
- Sự phụ thuộc vào trình duyệt: Do Puppeteer là một công cụ tự động hóa dựa trên trình duyệt, nó phụ thuộc mạnh vào sự ổn định và thay đổi của trình duyệt Sự thay đổi cấu trúc HTML, CSS hoặc các thay đổi liên quan đến trình duyệt có thể làm cho các kịch bản Puppeteer không còn hoạt động đúng như mong đợi
- Khả năng bị phát hiện: Một số trang web có thể phát hiện và chặn các hoạt động tự động hóa như Puppeteer Chúng có thể sử dụng các biện pháp như kiểm tra bot, hạn chế truy cập hoặc xác thực CAPTCHA để ngăn chặn hoạt động tự động này
9 | P a g e
Trang 10CHƯƠNG 3 Kiểm thử hệ thống ABC
3.1 Đặc tả chức năng hệ thống (System funcitons) – Hệ thống bán giày của Bitis
- Chức năng đăng kí: Khi người dùng muốn đăng nhập vào website nhưng
chưa có tài khoản thì cần vào form đăng kí để đăng kí tài khoản
- Chức năng đăng nhập: Khi người dùng đã có tài khoản, nếu muốn mua
hàng thì phải đăng nhập tài khoản hiện có, nếu chưa có tài khoản thì qua form đăng kí để đăng kí tài khoản, ngoài ra nếu quên mật khẩu có thể ấn vào quên mật khẩu để lấy lại mật khẩu sau khi thực hiện xác thực
- Trang chủ: Chức các danh mục như danh mục sản phẩm, danh mục hàng
hóa, các blog mới nhất… Có thể xem chi tiết sản phẩm và thêm vào giỏ hàng
10 | P a g e
Trang 11- Trang tin tức: Chứa các tin tức, bài viết
- Trang sản phẩm: Chứa tất cả sản phẩm của website, người dùng có thể
thực hiện lọc sản phẩm theo giá, tên xem chi tiết sản phẩm và thêm vào giỏ hàng
- Trang chi tiết một sản phẩm: Chứa các thông tin của sản phẩm đó như giá,
mô tả, lượt đánh giá sao và người dùng có thể thực hiện thêm đánh giá sản phẩm cũng như có thể thêm vào giỏ hàng
- Trang giỏ hàng: Hiển thị danh sách sản phẩm mà khách hàng đã thêm vào
giỏ chứa các thông tin như: ảnh sản phẩm, tên sản phẩm, danh mục, giá,
số lượng, thành tiền Khách hàng có thể thực hiện cập nhật giỏ hàng, thêm
số lượng cũng, xóa sản phầm và tiến hành thanh toán
- Trang thanh toán: Thanh toán các sản phẩm trong giỏ hàng, khách hàng
cần điền các thông tin như: họ tên, số điện thoại, địa chỉ, email và chọn hình thức thanh toán( COD, chuyển khoản)
3.2 Xác định mục tiêu, các chuẩn chất lượng cần đạt của hệ thống
Xác định mục tiêu
Hoàn thiện ứng dụng phần mềm, đáp ứng các yêu cầu kinh doanh và người sử dụng
Tìm các bug phát sinh do dev tạo ra khi code
Tìm ra các lỗi trong việc thiết kế giao diện
Đảm bảo rằng kết quả đầu cuối cùng đáp ứng các yêu cầu kinh doanh
và người sử dụng
Kiểm tra xác nhận rằng hệ thống đáp ứng các yêu cầu khác nhau bao gồm: chức năng, hiệu suất, độ tin cậy, an toàn và khả năng sử dụng
11 | P a g e
Trang 12Chuẩn chất lượng cần đạt được: ISO 9126
Tính chức năng:
- Các chức năng phải phù hợp và tương tác tốt với người dùng
- Có khả năng tương tác tốt với các phần mềm bên ngoài hệ thống( thanh
toán online)
- Bảo mật thông tin người dùng( đăng kí, đăng nhập, thông tin hóa đơn
mua hàng)
Tính khả dụng:
- Giao diện đẹp mắt, phù hợp tiện dụng cho người dùng
- Dễ thao tác sử dụng
Tính hiệu quả:
- Phần mềm sử dụng một lượng tài nguyên ổn định( giảm rủi ro gây lãng
phí tài nguyên)
- Tốc độ xử lí nhanh chóng, lưu trữ dữ liệu hiệu quả tránh mất thông tin
người dùng
3.3 Phạm vi kiểm thử của hệ thống (Scope)
Phạm vi kiểm thử hệ thống bao gồm kiểm thử chức năng, tính năng của hệ thống:
- Các chức năng như đăng kí, đăng nhập, mua hàng, thanh toán,
- Kiểm tra giao diện hệ thống, khả năng tương thích trên nhiều thiết bị khác nhau
- Kiểm tra khả năng sử dụng và tiện dụng của giao diện người dùng
- Kiểm tra các chức năng có phần nhập liệu như: đăng nhập, đăng kí, điền form thanh toán
12 | P a g e
Trang 133.4 Thiết kế TestCase/ CheckList
3.4.1 Kiểm thử chức năng
3.4.1.1 Đăng nhập
Đăng nhập Nhập dữ liệu đầu vào
đúng Login thành công và di chuyển đến trang chủ Nhập dữ liệu sai
(Username or Password) Hiển thị thông báo lỗi, không login được Login với Account đã bị
xóa
Hiển thị thông báo lỗi, không login được Login với password cũ Hiển thị thông báo lỗi,
không login được
3.4.1.2 Đăng xuất
thống đang tương tác
3.4.1.3 Đăng ký
đăng ký, bao gồm username, password, email, họ tên,
Hiển thị thông báo đăng ký thành công và chuyển sang trang chủ Nhập thiếu thông tin,
nhập thông tin sai,
Đăng ký thất bại, hiển thị thông báo đăng ký thất bại và yêu cầu nhập lại thông tin Nhập email đã được
sử dụng để đăng ký tài khoản khác
Đăng ký thất bại, hiển thị thông báo email đã tồn tại
13 | P a g e
Trang 143.4.1.4 Quên mật khẩu
và xác nhận mật khẩu mới giống nhau
Mật khẩu được thay đổi trong hệ thống,
hiển thị thông báo
"Mật khẩu đã được thay đổi thành công" Nhập mật khẩu mới
và xác nhận mật khẩu mới không giống nhau
Thay đổi mật khẩu thất bại, hiển thị thông báo lỗi
Nhập mật khẩu mới không hợp lệ Thay đổi mật khẩu thất bại, hiển thị thông
báo lỗi
3.4.1.5 Tìm kiếm sản phẩm
Tìm kiếm sản phẩm Nhập từ khóa đúng
tìm kiếm và nhấn nút
"Tìm kiếm"
Hiển thị danh sách sản phẩm phù hợp với từ khóa tìm kiếm
Nhập từ khóa tìm kiếm không hợp lệ
Hiện thông báo không tìm thấy sản phẩm Nhập từ khóa viết hoa
tất cả các ký tự Hiển thị sản phẩm ứng với từ khóa tìm
kiếm mà không phân biệt ký tự hoa hay thường
3.4.1.6 Thêm sản phẩm vào giỏ hàng
Thêm sản phẩm vào giỏ
hàng
Chọn sản phẩm và nhấn nút "Thêm vào giỏ hàng" Số lượng sản phẩm trong giỏ hàng tăng lên theo số
lượng tương ứng Chọn sản phẩm đã hết
hàng Hiển thị thông báo sản phẩm đã hết hàng
14 | P a g e
Trang 153.4.1.7 Cập nhật số lượng sản phẩm trong giỏ hàng
Cập nhật số lượng sản
phẩm trong giỏ hàng
Nhập số lượng sản phẩm và nhấn nút
"Cập nhật"
Số lượng sản phẩm trong giỏ hàng thay đổi
Nhập số lượng sản phẩm không hợp lệ
Hiển thị thông báo số lượng sản phẩm không hợp lệ
3.4.1.8 Xóa sản phẩm khỏi giỏ hàng
Xóa sản phẩm khỏi
giỏ hàng Cnhấn nút "Xóa"họn sản phẩm và Số lượng sản phẩm trong giỏ hàng giảm
xuống số lượng tương ứng
Chọn sản phẩm không tồn tại
Hiển thị thông báo sản phẩm không tồn tại
15 | P a g e
Trang 163.4.1.9 Thanh toán đơn hàng
Thanh toán đơn hàng Nhập đầy đủ thông tin
thanh toán hợp lệ và nhấn nút "Thanh toán"
Hiển thị thông báo thanh toán thành công
Nhập thông tin thanh toán không hợp lệ
Hiển thị thông báo thanh toán thất bại
3.4.2 Kiểm thử phi chức năng
3.4.2.1 Thời gian load
Thời gian load Kiểm tra thời gian
phản hồi của một hàng động
Thời gian phản hồi của một hành động không quá nS Kiểm tra thời gian
hoàn thành load của một trang web
Thường không quá 8s (tiêu chuẩn của một trang web_
3.4.2.2 Test hiệu năng
Test hiệu năng Quá thời gian timeout Khi không sử dụng hệ
thống trong một thời gian,
hệ thống tự động logout
ra giao diện login
3.4.2.3 Thao tác với URL
Thao tác với URL Nhập trực tiếp URL trang
chủ không qua login Không điều hướng đến trang chủ mà điều hướng
đến trang login
16 | P a g e
Trang 173.4.2.4 Kiểm tra bảo mật
Kiểm tra bảo mật Login với nhập password
sai quá 3 lần
Khóa chức năng login trong một thời gian Nhập mật khẩu vào
textbox mật khẩu
Mật khẩu tự động mã hóa thành *******
Copy mật khẩu và paste sang một textbox khác không được mã hóa
Không cho phép copy mật khẩu đã được mã hóa
3.4.3 Kiểm thử các yếu tố khác
3.4.3.1 Check validate
Email Để trống trường Email Hiển thị thông báo
“Không được trống trường này”
Nhập Email sai định dạng Hiển thị thông báo lỗi Nhập Email với khoảng
trắng ở giữa
Hiển thị thông báo lỗi Nhập Email với khoảng
trắng đầu và cuối Hệ thống tự cắt khoảng trắng đầu và cuối, Email
được chấp nhận Nhập Email đúng Email được chấp nhận
Số điện thoại Để trống trường SDT Hiển thị thông báo
“Không được trống trường này”
Nhập SDT sai định dạng Hiển thị thông báo
“Không được trống trường này”
Nhập SDT với khoảng trắng ở giữa Hiển thị thông báo lỗi Nhập SDT với khoảng
trắng đầu và cuối Hiển thị thông báo lỗi Nhập SDT với mã vùng
+84 với số 0 đầu tiên
Hệ thống tự động cắt số
0, SDT được chấp nhận Nhập SDT đúng SDT được chấp nhận Tên Để trống trường Tên Hiển thị thông báo
“Không được trống trường này”
Nhập Tên với ký tự đặc biệt
Hiển thị thông báo lỗi Nhập Tên với khoảng Hiển thị thông báo lỗi
17 | P a g e
Trang 18trắng ở giữa Nhập Tên với khoảng trắng đầu và cuối
Hệ thống tự cắt khoảng trắng đầu và cuối, Tên được chấp nhận Nhập Tên đúng Tên được chấp nhận
3.5 Thực thi kiểm thử trên các releases và báo cáo buglist
CHƯƠNG 4 Kết luận
Tài liệu tham khảo
18 | P a g e