TRƯỜNG ĐẠI HỌC ĐIỆN LỰCKHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN CÔNG NGHỆ PHẦN MỀM Đề tài: TÌM HIỂU VỀ CÁC PHƯƠNG PHÁP KIỂM THỬ PHẦN MỀM VÀ PHÂN TÍCH THIẾT KẾ WEBSITE BÁN HÀN
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
CÔNG NGHỆ PHẦN MỀM
Đề tài:
TÌM HIỂU VỀ CÁC PHƯƠNG PHÁP KIỂM THỬ PHẦN MỀM
VÀ PHÂN TÍCH THIẾT KẾ WEBSITE BÁN HÀNG
VĂN PHÒNG PHẨM
Sinh viên thực hiện : DƯƠNG HOÀNG SƠN
TRỊNH THANH TÙNG HỎA TIẾN LONG Giảng viên hướng dẫn : PHẠM ĐỨC HỒNG
Chuyên ngành : CÔNG NGHỆ PHẦN MỀM
Hà Nội, 24 tháng 12 năm 2023
Trang 2PHIẾU CHẤM ĐIỂM
Sinh viên thực hiện:
Dương Hoàng Sơn
Trang 3Danh mục ảnh
Hình 1: Chọn các phần tử đại diện 9
Hình 2: Đoạn code giải phương trình bậc 2 12
Hình 3: Đoạn code giải phương trình bậc 2 13
Hình 4: Đoạn code giải phương trình bậc 2 14
Hình 5: Ví dụ cho trường hợp 1 14
Hình 6: Ví dụ cho trường hợp 1 15
Hình 7: Ví dụ cho trường hợp 1 15
Hình 8: Ví dụ cho trường hợp 1 15
Hình 9: Ví dụ cho trường hợp 2 15
Hình 10: Ví dụ cho trường hợp 3 16
Hình 11: Ví dụ cho trường hợp 4 16
Hình 12: Ví dụ cho trường hợp 5 16
Hình 13: Ví dụ cho trường hợp 6 17
Hình 14: Sơ đồ phân rã chức năng 17
Hình 15: Sơ đồ luồng dữ liệu mức khung cảnh (mức 0) 18
Hình 16: Sơ luồng dữ liệu mức đỉnh (mức 1): 18
Hình 17: Chức năng quản lý nhập hàng 19
Hình 18: Chức năng quản lý bán hàng 19
Hình 19: Chức năng báo cáo thống kê 20
Hình 20: Chức năng quản lý người dùng 20
Hình 21: Mô hình thực thể liên kêt 21
Hình 22: Mô hình liên kết dữ liệu 21
Hình 23: Bảng người dùng 22
Hình 24: Bảng sản phẩm 23
Hình 25: Bảng giỏ hàng 23
Hình 26: Bảng đơn hàng 24
Hình 27: Bảng chi tiết đơn hàng 25
Hình 28: Bảng danh mục sản phẩm 25
3
Trang 4Phụ lục
LỞI NÓI ĐẦU 6
Chương 1: Tìm hiểu về các phương pháp kiểm thử phần mềm 7
1 Định nghĩa 7
2 Tính chất của kiểm thử phần mềm 7
3 Các phương pháp kiểm thử phần mềm 7
3.1 Hộp đen - Kiểm thử chức năng 7
3.2 Hộp trắng - Kiểm thử cấu trúc 10
Chương 2: Phân tích và thiết kế website bán văn phòng phẩm 18
1 Mô hình phân rã chức năng của hệ thống: 18
2 Sơ đồ luồng dữ liệu mức khung cảnh (mức 0): 19
3 Sơ luồng dữ liệu mức đỉnh (mức 1): 19
4 Mô hình luồng dữ liệu mức dưới đỉnh (mức 2): 20
4.1 Chức năng quản lý nhập hàng: 20
4.2 Chức năng quản lý bán hàng: 20
4.3 Chức năng báo cáo thống kê: 21
4.4 Chức năng quản lý người dùng: 21
5 Mô hình thực thể liên kết: 22
6 Mô hình quan hệ dữ liệu: 22
7 Chi tiết các bảng dữ liệu của hệ thống: 23
KẾT LUẬN 26
TÀI LIỆU THAM KHẢO 27
4
Trang 5LỞI NÓI ĐẦU
Trong thời kỳ số hóa hiện nay, việc phát triển phần mềm và xây dựng các nền tảng trực tuyến không chỉ đòi hỏi kiến thức chuyên môn sâu rộng mà còn yêu cầu hiểu biết sâu rộng về các phương pháp kiểm thử phần mềm và việc thiết
kế website Đối với một cửa hàng, việc bán và giới thiệu cũng như quảng bá các sản phẩm của mình đến với khách hàng là vô cùng cần thiết nhằm nâng cao năng lực kinh doanh và mở rộng, phát triển quy mô toàn diện của mình Vì vậy, xây dựng một website cho cửa hàng là công cụ để có thể tiếp cận tìm hiểu đầy
đủ, chi tiết các sản phẩm mà mình có nhu cầu và thực hiện việc mua sản phẩm một cách nhanh chóng và thuận tiện
Báo cáo này được viết với mục tiêu là tìm hiểu về hai chủ đề quan trọng trong lĩnh vực công nghệ thông tin, đó là "Các Phương Pháp Kiểm Thử Phần Mềm" và "Phân Tích và Thiết Kế Website Bán Văn Phòng Phẩm" Chúng ta sẽ cùng nhau khám phá sâu hơn về các phương pháp kiểm thử phần mềm, cũng như hiểu rõ quá trình phân tích và thiết kế một trang web để bán các vật phẩm văn phòng
Trong báo cáo này, chúng ta sẽ tập trung vào khía cạnh học tập, cung cấp cái nhìn tổng quan và những kiến thức cơ bản về các phương pháp kiểm thử phần mềm, cũng như những nguyên lý cơ bản trong thiết kế trang web Báo cáo
sẽ không đi sâu vào chi tiết kỹ thuật mà thay vào đó, sẽ nhấn mạnh vào những khái niệm cơ bản và quan trọng để hỗ trợ việc học tập và hiểu biết sâu hơn tronglĩnh vực này
Chúng tôi mong rằng thông qua báo cáo này, người đọc sẽ có được cái nhìn tổng quan và cơ bản vững chắc để bắt đầu khám phá và tiếp cận đúng đắn
với các khái niệm trong hai lĩnh vực này
5
Trang 6Chương 1: Tìm hiểu về các phương pháp kiểm thử phần mềm
1 Định nghĩa
Kiểm thử phần mềm là quá trình đánh giá và kiểm tra phần mềm nhằm đảm bảo rằng nó hoạt động đúng đắn, đáng tin cậy, và đáp ứng các yêu cầu cụ thể Quá trình kiểm thử này được thực hiện để tìm ra lỗi, xác nhận tính đúng đắn của phần mềm, và cung cấp thông tin về chất lượng và khả năng hoạt động của sản phẩm phần mềm
- Được lập tài liệu: để kiểm soát xem cái nào đã được thực hiện, kết quả như thế nào
3.1.2 Cách thức hoạt động:
a Xác định yêu cầu chức năng: Người kiểm thử bắt đầu bằng việc xác định yêu cầu chức năng của hệ thống dựa trên tài liệu yêu cầu và mô tả chức năng Các kịch bản kiểm thử và dữ liệu thử nghiệm có thể được tạo dựa trên thông tin này
6
Trang 7b Tạo kịch bản kiểm thử: Người kiểm thử tạo các kịch bản kiểm thử dựa trên yêu cầu chức năng Mỗi kịch bản kiểm thử mô tả một tình huống cụ thể hoặc một chức năng mà hệ thống cần thực hiện.
c Xác định đầu vào: Đối với mỗi kịch bản kiểm thử, người kiểm thử xác định đầu vào cần thiết để kích thích chức năng hoặc tình huống được kiểm thử Đây
có thể là dữ liệu đầu vào, thông tin người dùng, hoặc bất kỳ yếu tố nào khác cóthể ảnh hưởng đến hành vi của hệ thống
d Thực hiện kiểm thử: Người kiểm thử thực hiện kịch bản kiểm thử bằng cách nhập đầu vào được xác định và theo dõi đầu ra kết quả từ hệ thống Họ không cần biết về cách hệ thống xử lý đầu vào hay cấu trúc nội bộ của mã nguồn
e So sánh đầu ra kỳ vọng: Kết quả đầu ra từ hệ thống được so sánh với kết quả
kỳ vọng từ yêu cầu chức năng Nếu có sự khác biệt, có thể xuất hiện lỗi và cầnđược ghi chú và báo cáo
f Lặp lại quá trình: Quá trình kiểm thử có thể được lặp lại nhiều lần với các kịchbản và dữ liệu thử nghiệm khác nhau để đảm bảo rằng tất cả các khía cạnh của
hệ thống đều được kiểm tra
g Tạo báo cáo kiểm thử: Sau khi hoàn thành các kịch bản kiểm thử, người kiểm thử tạo báo cáo kiểm thử mô tả kết quả của quá trình kiểm thử, bao gồm các lỗi phát hiện và các quan sát về hành vi của hệ thống
3.1.3 Các cách kiểm thử được sử dụng trong phương pháp hộp đen
3.1.3.1 Kiểm thử Đơn Vị (Unit Testing):
- Mô Tả: Kiểm thử từng phần nhỏ (đơn vị) của mã nguồn để đảm bảo chúng hoạt động đúng
- Ưu Điểm: Nhanh chóng, chú trọng vào từng đơn vị code
7
Trang 8- Hạn Chế: Chỉ kiểm tra tính đúng đắn ở mức đơn vị, không đảm bảo tính đồng
bộ khi kết hợp các đơn vị lại với nhau
3.1.3.2 Kiểm thử Hợp Nhất (Integration Testing):
- Mô Tả: Kiểm thử tích hợp các đơn vị đã kiểm thử ở mức đơn vị thành một hệthống lớn hơn
- Ưu Điểm: Phát hiện lỗi tương tác giữa các thành phần
- Hạn Chế: Phức tạp và tốn thời gian, khó định vị nguyên nhân của lỗi
3.1.3.3 Kiểm thử Hệ Thống (System Testing):
- Mô Tả: Kiểm thử toàn bộ hệ thống để đảm bảo nó hoạt động đúng theo yêu cầu
- Ưu Điểm: Đảm bảo tính đúng đắn và hiệu suất của toàn bộ hệ thống
- Hạn Chế: Không thể kiểm soát tất cả các trường hợp có thể xảy ra trong môi trường thực tế
3.1.3.4 Kiểm thử Hiệu Suất (Performance Testing):
- Mô Tả: Đánh giá khả năng xử lý, độ ổn định và thời gian phản hồi của hệ thống dưới áp lực tải cao
- Ưu Điểm: Xác định và giải quyết vấn đề hiệu suất trước khi triển khai
- Hạn Chế: Yêu cầu tài nguyên và thời gian lớn
3.1.3.5 Kiểm thử Bảo Mật (Security Testing):
- Mô Tả: Kiểm thử để đảm bảo hệ thống an toàn trước mọi loại tấn công và đảm bảo tuân thủ các quy tắc bảo mật
- Ưu Điểm: Bảo vệ hệ thống khỏi các mối đe dọa bảo mật
- Hạn Chế: Cần kiến thức chuyên sâu về bảo mật và có thể tốn kém
3.1.4 Ví dụ - Xét hàm tìm một phần tử trong mảng
Function Tim X ( X: integer; A: mang; l : integer): integer;
Đặc tả:
8
Trang 9 = 0 : nếu không tìm thấy
≠ 0 : nếu tìm thấy, giá trị kết quả chính là chỉ số của phần tử đầu tiên được tìm thấy
X xuất hiện nhiều lần ( ở đầu mảng, giữa mảng, cuối mảng)
Bước 2: Chọn các phần tử đại diện
Hình 1
9
Trang 103.2 Hộp trắng - Kiểm thử cấu trúc
3.2.1 Định nghĩa:
Khái niệm: White box testing (Kiểm thử hộp trắng ) Là sự thử nghiệm dựa trênphân tích chương trình, xác định đường đi (path) của chương trình (điều khiển) từ input đến output ( chú trọng vào phân tích các module và logic)
Mục đích của thử nghiệm cấu trúc là kiểm tra tất cả các đường đi có thể, đảm bảo mọi lệnh đều được thực hiện ít nhất một lần trong một ca thử nghiệm nào đó
c Xây dựng bộ kiểm thử: Người kiểm thử xây dựng bộ kiểm thử dựa trên mã nguồn đã được chọn Bộ kiểm thử này bao gồm các bài kiểm tra được thiết kế
để thử nghiệm các khía cạnh khác nhau của mã, bao gồm các đường đi, điều kiện, và nhánh của mã
d Chạy bộ kiểm thử: Bộ kiểm thử được chạy để thực hiện các bài kiểm tra trên
mã nguồn Các kết quả được thu thập và so sánh với kết quả mong đợi để kiểmtra tính đúng đắn của mã
e Kiểm thử đường đi (Path Testing): Kiểm thử hộp trắng thường bao gồm kiểm thử đường đi, nơi kiểm tra tất cả các đường đi có thể được thực hiện trong chương trình Mục tiêu là đảm bảo rằng mọi đường đi trong mã nguồn đều đã được kiểm tra
10
Trang 11f Kiểm thử điều kiện (Condition Testing): Các điều kiện logic trong mã nguồn được kiểm tra để đảm bảo rằng mọi điều kiện đều cho kết quả đúng và sai.
g Kiểm thử nhánh (Branch Testing): Các nhánh trong mã nguồn được kiểm tra
để đảm bảo rằng tất cả các nhánh có thể được thực hiện và tất cả các điều kiện phản hồi đều được kiểm tra
h Kiểm thử thực hiện điều kiện (Condition/Decision Testing): Kiểm thử hộp trắng thường kết hợp kiểm thử điều kiện và kiểm thử nhánh để đảm bảo rằng tất cả các điều kiện và quyết định trong mã đều được kiểm tra
i Kiểm thử dựa trên mô hình (Model-Based Testing): Một số phương pháp kiểmthử hộp trắng sử dụng mô hình dữ liệu và mô hình luồng điều khiển để tự độngtạo các bài kiểm tra và kiểm tra tính đúng đắn của mã
j Báo cáo kết quả: Sau khi hoàn thành các bài kiểm tra, người kiểm thử tạo báo cáo kết quả, bao gồm các lỗi phát hiện và các khía cạnh của mã đã được kiểm tra
3.2.3 Các phương pháp kiểm thử con trong phương pháp hộp trắng
3.2.3.1 Kiểm thử Dòng Mút (Statement Testing)
- Mô Tả: Đảm bảo mỗi dòng code đã được thực thi ít nhất một lần
- Ưu Điểm: Đơn giản và dễ triển khai
- Hạn Chế: Không đảm bảo tất cả các đường đi trong chương trình đã được thử
3.2.3.2 Kiểm thử Đường Đi (Branch Testing)
- Mô Tả: Đảm bảo rằng tất cả các nhánh trong mã nguồn đã được thực thi ít nhất một lần
- Ưu Điểm: Nâng cao độ phủ của kiểm thử so với kiểm thử dòng mút
- Hạn Chế: Cần phải tạo ra nhiều ca kiểm thử để bao phủ tất cả các nhánh
11
Trang 123.2.3.3 Kiểm thử Điều Kiện (Condition Testing)
- Mô Tả: Đảm bảo rằng tất cả các điều kiện trong câu lệnh điều kiện đã được kiểm tra cả đúng và sai
- Ưu Điểm: Phát hiện lỗi liên quan đến điều kiện
- Hạn Chế: Cần tạo ra nhiều ca kiểm thử để bao phủ tất cả các điều kiện
3.2.3.4 Kiểm thử Lớp Tương Đương (Equivalence Class Testing)
- Mô Tả: Chia dữ liệu đầu vào thành các lớp tương đương và kiểm thử ít nhấtmột thành phần từ mỗi lớp
- Ưu Điểm: Hiệu quả trong việc giảm số lượng ca kiểm thử cần thiết
- Hạn Chế: Yêu cầu hiểu biết về dữ liệu và các lớp tương đương
3.2.3.5 Kiểm thử Kiểu Dữ Liệu (Data Type Testing)
- Mô Tả: Kiểm thử với các giá trị biên và kiểu dữ liệu đầu vào khác nhau
- Ưu Điểm: Phát hiện lỗi liên quan đến kiểu dữ liệu và giá trị biên
- Hạn Chế: Cần xác định các giá trị biên và kiểu dữ liệu quan trọng
3.2.4 Ví dụ: Giải phương trình bậc 2:
Hình 2
12
Trang 1314
Trang 17Chương 2: Phân tích và thiết kế website bán văn phòng phẩm
1 Mô hình phân rã chức năng của hệ thống:
Hình 14
18
Trang 182 Sơ đồ luồng dữ liệu mức khung cảnh (mức 0):
Hình 15
3 Sơ luồng dữ liệu mức đỉnh (mức 1):
Hình 16
19
Trang 194 Mô hình luồng dữ liệu mức dưới đỉnh (mức 2): 4.1 Chức năng quản lý nhập hàng:
Hình 17
4.2 Chức năng quản lý bán hàng:
Hình 18
20
Trang 204.3 Chức năng báo cáo thống kê:
Hình 19
4.4 Chức năng quản lý người dùng:
Hình 20
21
Trang 227 Chi tiết các bảng dữ liệu của hệ thống:
- Bảng Người Dùng (Users):
o UserID (PK): ID duy nhất của người dùng
o Username: Tên đăng nhập
o Password: Mật khẩu đăng nhập
o Email: Địa chỉ email của người dùng
o FullName: Họ và tên của người dùng
o UserType: Loại người dùng (khách hàng, quản trị viên, v.v.)
Hình 23
- Bảng Sản Phẩm (Products):
o ProductID (PK): ID duy nhất của sản phẩm
o Name: Tên của sản phẩm
o Description: Mô tả về sản phẩm
o Price: Giá của sản phẩm
o CategoryID (FK): ID của danh mục sản phẩm
23
Trang 23- Bảng Giỏ Hàng (Shopping Cart):
o CartID (PK): ID duy nhất của giỏ hàng
o UserID (FK): ID của người dùng sở hữu giỏ hàng
Hình 25
24
Trang 24- Bảng Đơn Hàng (Orders):
o OrderID (PK): ID duy nhất của đơn hàng
o UserID (FK): ID của người dùng tạo đơn hàng
o OrderDate: Ngày tạo đơn hàng
o TotalAmount: Tổng số tiền của đơn hàng
Hình 26
- Bảng Chi Tiết Đơn Hàng (OrderDetails):
o OrderDetailID (PK): ID duy nhất của chi tiết đơn hàng
o OrderID (FK): ID của đơn hàng
o ProductID (FK): ID của sản phẩm trong đơn hàng
o Quantity: Số lượng sản phẩm trong đơn hàng
o Price: Giá của sản phẩm tại thời điểm mua
25
Trang 25- Bảng Danh Mục Sản Phẩm (Categories):
o CategoryID (PK): ID duy nhất của danh mục sản phẩm
o CategoryName: Tên danh mục sản phẩm
Hình 28
26
Trang 26KẾT LUẬN
Qua quá trình nghiên cứu và tìm hiểu về các phương pháp kiểm thử phần mềm
và phân tích thiết kế website bán hàng văn phòng phẩm, chúng tôi nhận thấy rằng đây
là hai lĩnh vực quan trọng và không thể thiếu trong quá trình phát triển phần mềm và xây dựng website
Các phương pháp kiểm thử phần mềm như kiểm thử hộp đen, kiểm thử hộp trắng, kiểm thử tích hợp, kiểm thử chấp nhận người dùng đã chứng minh vai trò quan trọng của chúng trong việc đảm bảo chất lượng sản phẩm phần mềm, từ đó giúp giảm thiểu rủi ro và lỗi phát sinh sau khi sản phẩm được triển khai
Trong khi đó, phân tích thiết kế website bán hàng văn phòng phẩm yêu cầu sự cân nhắc kỹ lưỡng về trải nghiệm người dùng, giao diện thân thiện và tính tương tác cao Việc sử dụng các nguyên tắc thiết kế responsive, tối ưu hóa trang web, tích hợp hệthống thanh toán an toàn và quản lý sản phẩm hiệu quả là rất quan trọng để thu hút và duy trì người dùng
Tuy nhiên, để áp dụng hiệu quả các phương pháp kiểm thử phần mềm và phân tích thiết kế website bán hàng văn phòng phẩm, việc hiểu rõ nhu cầu của khách hàng
và tiêu chuẩn chất lượng cũng như áp dụng công nghệ mới sẽ đóng vai trò quan trọng trong việc tạo ra sản phẩm hoàn thiện và cạnh tranh trên thị trường
Tóm lại, việc áp dụng các phương pháp kiểm thử phần mềm và phân tích thiết
kế website bán hàng văn phòng phẩm đều đóng góp quan trọng vào sự thành công của sản phẩm, từ đó tạo nên trải nghiệm tốt cho người dùng và mang lại lợi ích kinh doanhlâu dài cho doanh nghiệp
27
Trang 27TÀI LIỆU THAM KHẢO
1 “Foundations of Software Testing” by Dorothy Gratham, Erik Van Veenedaal, Isabel Evans, and Rex Black
2 “Effective Software Test Automation” by Kanglin Li
3 “The Art of Software Testing” by Glenford J Myers
4 “Responsive Web Degisn” by Ethan Marcotte
5 Giáo trình học phần công nghệ phần mềm trường Đại học Điện Lực 2023
28