Tông quan về đề tài Khái niệm kiêm thử phan mem: Kiểm thử phần mềm software testing la hoat dong nham tim kiém va phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và đ
Trang 1TRƯỜNG ĐẠI HỌC ĐÀ LẠT KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP NHÓM HOC PHAN KIEM THU PHAN MEM
DE TAL WEBSITE BAN HANG
NHOM 13
Giáo viên hướng dẫn: Võ Phuong Binh Sinh viên thực hiện: 2111901 Trần Nhật Trung
2111893 Bùi Phúc Thịnh
2115197 Bùi Quốc Dũng
Trang 2NHÂN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Da Lat, ngay thang nam 2024
Giáo viên hướng dan
[Ký tên và phi rõ họ tên]
Trang 3Lời cảm ơn
Lời đầu tiên em xin trân trọng gửi lời cảm ơn sâu sắc đến thầy Võ Phương
Bình- người đã tận tỉnh hướng dẫn, giúp đỡ nhóm em hoàn thành bài báo cao nay
Thông qua bài tập lớn kết thúc học phần em đã có cơ hội hiểu sâu sắc hơn về môn học cũng như trang bị được những hành trang cần thiết cho con đường nghề nghiệp sau
này
Trong suốt quá trình hoản thiện bài báo cáo, em đã nhận được rất nhiều sự giúp
đỡ, hỗ trợ và động viên của thầy cô Thầy cô đã luôn dành thời gian quý báu để giảng giải, giải đáp thắc mắc của em một cách tận tình, chu đáo Nhờ sự hướng dẫn của thay
cô, em đã có cơ hội tiếp cận và học hỏi thêm nhiều kiến thức mới, hoàn thiện bài báo cáo một cách day du và chính xác.Chúng em xin gửi lời cảm ơn chân thành và sự trĩ
ân sâu sắc đối với các Thầy Cô đặc biệt là các Thây Cô Khoa Công Nghệ Thông Tin
của Trường đã tạo điều kiện tốt nhất cho em và các bạn trong suốt quá trình học tập va thực hiện báo cáo
Và trong quá trình thực hiện bài báo cáo, chúng em rất mong nhận được ý kiến, đóng góp của quý thầy cô để chúng em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt bài tiêu luận
Nhóm em xin chân thành cảm on a!
Trang 4Mục Lục
I Tổng quan về website
1 Mục tiêu
2 Tóm tắt tính năng hệ thông
II Sơ do Use Case
HH Danh sách các chức năng website
IV Nội dung kiểm thử
Mục tiêu kiểm thử
Phạm vi kiểm thử
Phương pháp kiểm thử
Môi trường kiểm thử
- Các bước thực hiện
V Triển khai kiểm thử
Trang 5L
1
Tông quan về đề tài
Khái niệm kiêm thử phan mem:
Kiểm thử phần mềm (software testing) la hoat dong nham tim kiém va phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và đầy đủ theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra Software testing cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm điều
nảy cho phép đánh giá và hiểu rõ các rủi ro khi thực thí phần mềm Có rất
nhiều cách kiểm thử:
Kiểm thử đơn vị (Unit Testing): Kiểm thử từng phần riêng lẻ của mã nguồn, thường là các hàm hoặc phương thức, để đảm bảo chúng hoạt động đúng và theo đúng mục đích
Kiểm thử hợp đồng (Contract Testing): Kiểm tra giao điện của các dịch
vụ để đảm bảo chúng tương tác đúng và nhất quán với nhau
Kiểm thử tích hợp (Integration Testing): Kiểm tra các module hoặc thành phần đã tích hợp với nhau có hoạt động đúng như kỳ vọng không
Kiểm thử hệ thống (System Testing): Kiểm tra toàn bộ hệ thống để đảm bảo rằng nó hoạt động đúng với các yêu cầu chức năng và phi chức năng đã
định sẵn
Kiểm thử chấp nhận người dùng (User Ácceptance Testing - UAT): Kiểm tra bởi các người dùng cuối để đảm bảo răng hệ thống đáp ứng được yêu cầu của họ và có thể được chấp nhận đề sử dụng
Kiểm thử phi chức năng (Non-functional Testing): Kiểm tra các yếu tô phi chức năng của hệ thống như hiệu suất, bảo mật, khả năng mở rộng, khả
năng phục hồi sau lỗi, v.v
Kiểm thử tự động (Automated Testing): Sử dụng các công cụ và kịch bản kiểm thử tự động để tăng tốc độ và đảm bảo tính nhất quán của kiểm thử Kiểm thử hồi quy (Regression Testing): Kiểm tra để đảm bảo rằng các thay đôi mới không ảnh hướng đến các tính năng đã tồn tại và hoạt động như kỳ vọng
Kiểm thử áp dụng (Smoke Testing): Kiểm tra nhanh các tính năng chính của hệ thống để đảm bảo rằng phiên bản mới có thê được kiểm thử chỉ tiết hơn
Kiểm thir dich vu web (Web Service Testing): Kiém tra dich vu web dé dam bao tinh dung đắn, hiệu suất và bảo mật của chúng
1.1 Kiểm thử được sử dụng trong bài:
Kiểm thử thủ công và tự động
Kiểm thử thủ công: là tester làm mọi công việc hoàn toàn bằng tay, từ viết test case đến thực hiện test, mọi thao tác như nhập điều kiện đầu vào, thực hiện một số sự kiện khác như click nút vả quan sát kết quả thực tế, sau đó
so sánh kết quả thực tế với kết quả mong muốn trong test case, điền kết quả
Trang 6test Hiện nay, phần lớn các tô chức, các công ty phan mém, hoặc các nhóm
làm phần mềm đều thực hiện kiểm thử thủ công là chủ yếu
Testing
`
Recommend Implement
- Kiém thir tự động: Kiểm thử phần mềm tự động là thực hiện kiểm thử
phần mềm băng một chương trình đặc biệt với rất ít hoặc không có sự tương tac của con người, giúp cho người thực hiện việc kiếm thử phần mềm (tester) không phải lặp đi lặp lại các bước nhàm chán Công cụ kiểm thử tự động có thể lấy dữ liệu từ file bên ngoài (excel, csv ) nhập vào ứng dụng,
so sánh kết quả mong đợi (từ file excel, csv ) với kết quả thực tế và xuất
ra báo cáo kết quả kiểm thử
Test Automation
2 Tóm tắt tính năng hệ thống:
- Xây dựng một website bán hàng Website gồm những chức năng để khách hang tiếp cận có thể chọn lựa, xem mặt hàng, mua mặt hàng phủ hợp theo nhu cầu mình mong muốn
Trang 7- _ Giúp khách hang có thể tiện lợi tìm được những mặt hàng mình mong muốn
FEA- | Đăng Ký
01
FEA- | Đăng Nhập
02
FEA- | Tìm sản phẩm quan tâm
03
FEA- Kiém tra gid hang
04
05 Thanh Toán
3 Công cụ sử dụng
- - Ưu điểm của C#:
Tính đễ đọc và dễ hiểu: C# có cú pháp gần gũi với ngôn ngữ tự nhiên, làm cho mã nguồn dễ đọc và dễ hiểu hơn, giúp các nha phát triển nắm bắt nhanh chóng
Quản lý bộ nhớ tự động: C# sử dụng parbape collector để quản lý bộ
nhớ, giúp giảm bớt gánh nặng cho lập trình viên trong việc quản lý bộ
nhớ thủ công
Hỗ trợ đa nén tang: C# co thé duoc su dung dé phat triển ứng dụng trên nhiều nền tảng khác nhau như Windows, Linux và macOS thông qua NET Core hoặc NET 5 và các phiên bản mới hơn
Cộng đồng lớn: Có một cộng đồng lớn và năng động của các nhà phát triển sử dung C#, diéu này có nghĩa là có rất nhiều tài liệu, ví dụ và hỗ
trợ trực tuyến có sẵn
Trang 8Hỗ trợ cho lập trình hướng đối tượng (OOP): C# hỗ trợ các tính năng của lập trình hướng đối tượng như kế thừa, đa hình, và đóng gói, giúp xây dựng mã linh hoạt và dễ bảo trì
- Nhược điểm của Cứ:
Phụ thuộc vào nên tảng: Mặc dù C# đã phát triển nhiều trên các nền tảng khác nhau, nhưng vẫn có một số hạn chế khi phát triển ứng dụng chạy trên các hệ thống không phải là Windows
Học cú pháp phức tạp: Mặc dù C# dễ đọc, nhưng cú pháp của nó có thé
phức tạp đối với người mới bắt đầu, đặc biệt là khí bạn muốn sử dụng các tinh nang nang cao nhu generics hoac LINQ
Hiệu suất không cao như các ngôn ngữ gần sát với phần cứng: Mặc dù hiệu suất của C# đã được cải thiện rất nhiều so với các phiên bản trước, nhưng vẫn có thể không cao bằng các ngôn ngữ như C++ hoặc Rust trong một số trường hợp cụ thê
Hạn chế trong việc phát triển ứng dụng di động: Mặc dù C# có thể sử dung dé phat triển ứng dụng di động thông qua Xamarin, nhưng việc phát triển ứng dụng di động vẫn chưa được tối ưu như việc sử dụng các ngôn netr nhu Swift hodc Kotlin
soi
- Uudiém:
Dé hoc và sử dụng: SQL có cú pháp đơn giản và rõ ràng, dễ hiểu và học
Khả năng tương thích cao: SQL là một chuẩn ngôn ngữ được hỗ trợ bởi hầu hết các hệ thống quản lý cơ sở dữ liệu phổ biến như MySQL, PostereSQL, SQL Server, Oracle, v.v., giúp đảm bảo khả năng tương thích cao khi chuyên đôi giữa các hệ thông
Hiệu suât cao: SQL cung cập các công cụ mạnh mẽ như các chỉ mục, cơ sở đữ
liệu phan cap va toi uu hoa truy vân đề tôi ưu hóa hiệu suất của cơ sở dữ liệu
Trang 9Bảo mật: SQL cung cấp các tính năng bảo mật như kiểm soát truy cập dữ liệu, mã hóa đữ liệu, và xác thực người dùng
Hỗ trợ giao dịch: SQL hỗ trợ các giao dich ACID (Atomicity, Consistency, Isolation, Durability), giúp đảm bảo tính nhất quán và độ tin cậy của dữ liệu
- Nhược điểm:
Khả năng mở rộng hạn chế: Một số hệ thống cơ sở đữ liệu có thể sặp vấn đề về hiệu suất khi cơ sở dữ liệu trở nên lớn và có nhiều người dùng truy cập cùng một lúc
Kho khan trong việc xử lý dữ liệu phức tạp: SQL không phải lúc nào cùng là lựa chọn tốt nhất cho các tác vụ xử lý dữ liệu phức tạp, như xử lý đữ liệu không cầu trúc hoặc dữ liệu lớn
Trang 10H Sơ đồ Use Case
POS SYSTEM
Customer
Admin
M s~-
<<indude>> †-
<<include»>
<< ndude>
<ndude>
HH Danh sách các chức năng website
«nde
— — = =
<<include>> <<ndwe> — ee sử “ / /
—-
Manager
1 Đăng nhập
Use case UC1: Dang nhap Đối tượng Nguoi dung, ø1áo viên, quản trị viên
Mục tiêu Truy cập vào hệ thống
Trang 11
Actor
Điều kiện tiên
quyết
Kết quả khi thành
công
Luéng sự kiện
chính
Mở rộng
2.Đăng ký
Đối tượng
Mục tiêu
Actor
Điều kiện tiên
quyết
Kết quả khi thành
công
Luéng sự kiện
chính
Mở rộng
Non-Memeber Tài khoản, mật khâu phải khớp với cơ sở đữ liệu Truy cập được hệ thống
Mở ứng dụng
Nhập tài khoản
Nhập mật khâu Bắm nút đăng nhập
THỊ Thông tin hợp lệ: Khi người dùng nhập đúng các thông tin được yêu câu
1 Chuyển hướng người dùng đến trang chủ
TH2 Thông tin không hợp lệ: Khi người dùng nhập sai
1 Hệ thống hiển thị thông báo không hợp lệ Use case UC2: Đăng ký tài khoản
Người dùng chưa có tài khoản
Truy cập vào hệ thống Non-Member Không
Đăng ký thành công
Mở ứng dụng Bam nut dang ky Nhập tài khoản Nhập mật khâu Bam nut dang ky
THỊ Thông tin hợp lệ: Khi người dùng nhập đúng các thông tin được yêu câu
1 Thông báo đã đăng ký thành công
TH2 Thong tin không hợp lệ: Khi người dùng nhập sai
1 Hệ thông hiến thị thông tin không hợp lệ
Trang 12IV Nội dung kiểm thử
1 Mục tiêu kiểm thử
- - Mục đích của việc kiểm thử website bán hàng:
@ Tìm hiệu thêm về công việc kiêm thử phân mềm
@ Kiểm tra xem phần mềm đã hoàn thiện hay chưa
2 Phạm vi kiểm thử
- _ Phạm vi kiểm thử chỉ bao gồm một số phân loại và một vài chức năng chính của website
3 Phương pháp kiểm thử
- _ Có 2 phương pháp kiểm thử phần mềm
@ Kiểm thử thủ công: Các test case được thực hiện thủ công
@ Kiểm thử tự động: Kiểm thử được thực hiện dựa trên các công cụ
tự động
4 Môi trường kiểm thử
- _ Hệ điều hành win 10 trở lên
- Su dung Visual Studio Code
Š Các bước thực hiện
Trang 136 Chương trình Demo
Kiểm thử chức năng đăng nhập và đăng ký thông tin
Trang 14Kiếm thử thông tin sản phẩm
Trang 15Kiểm thử chức năng thông tin giỏ hàng
Vv Trién khai kiém thir
1 Xây dựng các hàm kiểm thử với một vài chức năng chính
Chức năng đăng ký:
test(Đăng ký', async ({ page }) => {
await page.goto(‘https://localhost:44373/User/Dangky');
await page.locator('#layoutAuthentication content div’) filter({ hasText: 'Dang ky tai khoản Họ & tên S' }).nth(2).clickQ);
await page.locator('#HoTen’).click();
await page.locator('#Dienthoat').click();
await page.locator('#Diachi').click();
await page.locator('#Email').click();
await page.locator('#Matkhau').click();
await page.getByRole('button', { name: ‘Dang ky' }).click();
});
Chức năng đăng nhập
test(Đăng nhập', async ({ pape }) => {
await page.goto(‘https://localhost:44373/User/Dangnhap');
await page.locator('#layoutAuthentication content div’) filter({ has'Text: 'Dang nhập Email Mật khẩu Quên' }).nth(2).elick();
await page.locator('#userMail').click();
await page.locator('#password').click();
await page.getByRole('button', { name: ‘Dang nhap' }).click();
await page.getByRole(‘link', { name: 'Quén mat khau?' }).click();
await page.getByRole(‘link', { name: 'Chwa có tài khoản? Đăng ký!" }).click(); });
Chức năng xem các sản phâm
test(Sản Phẩm', async ({ page }) = {
await page.goto(‘https://localhost:44373/7');
await page.getByRole('button’, { name: 'San pham!' }).click();
await page.getByRole(‘link', { name: "Toàn bộ sản phẩm' }).click();
await page.locator('section’).click();
}):
Trang 163 Kết quả và tổng kết
Kết quả kiêm thử các chức năng của web
Tổng kết:
- Nhóm em đã xây dựng được Web bán hàng với nhiều tính năng cần thiệt cho người dùng, với giao diện đề tiệp cận dễ sử dụng