Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp với đề tài "Xây dựng và kiểm thử website bán hàng cho cửa hàng bán cây cảnh bằng ngôn ngữ PHP" được thực hiện bởi sinh viên Nguyễn Thị Vân Anh (mã sinh viên: 20K4080003, lớp K54 THKT), chuyên ngành Hệ thống Thông tin Quản lý, Khoa Hệ thống Thông tin Kinh tế, Trường Đại học Kinh tế – Đại học Huế, dưới sự hướng dẫn khoa học của TS. Lê Thị Quỳnh Liên vào năm 2024.

Lý do chọn đề tài xuất phát từ sự phát triển của công nghệ thông tin trong các hoạt động kinh tế và sự gia tăng của các website thương mại điện tử tại Việt Nam. Theo thống kê từ Hiệp hội Thương mại Điện tử Việt Nam (VECOM), dù kinh tế năm 2023 đối mặt với nhiều khó khăn, quy mô thương mại điện tử vẫn tăng trưởng trên 25% so với năm 2022, đạt mức 25 tỷ USD. Dự báo trong năm 2024, doanh thu và sản lượng bán hàng trực tuyến tiếp tục tăng 35%, vượt 310 nghìn tỷ đồng (tương đương 12,5 tỷ USD). Việc phát triển kênh bán hàng trực tuyến giúp các cơ sở kinh doanh tiết kiệm chi phí mặt bằng, vận hành và nhân sự, đồng thời mở rộng phạm vi tiếp cận người tiêu dùng. Trong lĩnh vực cây cảnh, xu hướng trang trí không gian xanh gia tăng thúc đẩy nhu cầu mua sắm từ xa; do đó, xây dựng một hệ thống website kết hợp quy trình kiểm thử hoàn chỉnh là giải pháp thiết thực cho hoạt động bán lẻ.

Mục tiêu nghiên cứu của đề tài được tác giả xác định cụ thể như sau:

  1. Mục tiêu chung: Xây dựng thành công website bán hàng cho cửa hàng bán cây cảnh bằng ngôn ngữ PHP.
  2. Mục tiêu cụ thể:
    • Nắm vững cách thức quản lý bán hàng trực tuyến;
    • Tìm hiểu các chức năng cần thiết trong một hệ thống website thương mại điện tử;
    • Nghiên cứu lý thuyết và nắm vững các quy trình xây dựng website bán hàng cùng các chức năng liên quan;
    • Thực hiện xây dựng website cho cửa hàng cây cảnh sử dụng ngôn ngữ PHP trên nền tảng CodeIgniter;
    • Xây dựng quy trình kiểm thử thủ công cho hệ thống website.

Đối tượng và phạm vi nghiên cứu bao gồm:

  • Đối tượng nghiên cứu: Hoạt động bán hàng trực tuyến; quy trình phân tích, thiết kế và xây dựng website bán hàng; các công cụ hỗ trợ phát triển web (ngôn ngữ PHP, nền tảng CodeIgniter); quy trình kiểm thử phần mềm thủ công.
  • Phạm vi không gian: Áp dụng tại cửa hàng bán cây cảnh có địa chỉ tại số 93 An Dương Vương, phường An Đông, thành phố Huế, tỉnh Thừa Thiên Huế.
  • Phạm vi thời gian: Đề tài được triển khai thực hiện từ ngày 25/12/2023 đến ngày 14/04/2024.

Cơ sở lý thuyết và phương pháp

Khóa luận thiết lập nền tảng lý thuyết thông qua hệ thống khái niệm về thương mại điện tử và kiểm thử phần mềm:

  • Khung lý thuyết thương mại điện tử: Hệ thống hóa 6 mô hình giao dịch trực tuyến phổ biến gồm B2B, B2C, B2G, G2B, C2C và C2B (dẫn dữ liệu dự báo từ Statista về doanh số thương mại điện tử B2B toàn cầu đạt 21,8 nghìn tỷ USD vào năm 2027); phân biệt hai loại website chính là website tĩnh (Static Website) và website động (Dynamic Website).
  • Nền tảng công nghệ: Ngôn ngữ lập trình máy chủ PHP hoạt động đa nền tảng; nền tảng ứng dụng web mã nguồn mở CodeIgniter thiết kế theo mô hình MVC (dung lượng bộ cài bản 3 chỉ 2MB, hỗ trợ SEO và bảo mật); hệ quản trị cơ sở dữ liệu quan hệ MySQL; bộ công cụ tạo máy chủ cục bộ XAMPP (tích hợp Apache, MariaDB, PHP, Perl).
  • Khung lý thuyết kiểm thử phần mềm: Hệ thống hóa 7 nguyên tắc kiểm thử cơ bản (kiểm thử chỉ ra sự hiện diện của lỗi, kiểm thử toàn bộ là không thể, kiểm thử càng sớm càng tốt, lỗi tập trung theo cụm theo nguyên lý Pareto 80/20, nghịch lý thuốc trừ sâu, kiểm thử phụ thuộc vào ngữ cảnh, quan niệm không có lỗi là sai lầm); vòng đời kiểm thử phần mềm (STLC) gồm 6 giai đoạn (phân tích yêu cầu, lập kế hoạch, thiết kế kịch bản, thiết lập môi trường, thực hiện kiểm thử, đóng quy trình); hai kỹ thuật kiểm thử chính gồm kiểm thử hộp đen (Black-Box Testing) và kiểm thử hộp trắng (White-Box Testing); cấu trúc chuẩn của một bản báo cáo lỗi (Bug Report).
Tiêu chí Kiểm thử thủ công (Manual Testing) Kiểm thử tự động (Automation Testing)
Tác động thay đổi mã nguồn Thay đổi về code không ảnh hưởng đến kịch bản kiểm thử Dễ bị ảnh hưởng bởi mã nguồn của sản phẩm
Yêu cầu lập trình Không yêu cầu người thực hiện có kiến thức lập trình Đòi hỏi người kiểm thử phải có kiến thức lập trình
Đầu tư nguồn lực Đầu tư chủ yếu vào nhân lực Đầu tư vào các công cụ và phần mềm kiểm thử
Quy mô và tần suất dự án Phù hợp dự án nhỏ, thời gian ngắn, kịch bản chạy ít lần Phù hợp dự án lớn, kịch bản phải thực thi lặp lại nhiều lần
Ghi nhận kết quả Kết quả có thể ghi chép thủ công trên Excel hoặc Word Không đạt hiệu quả nếu áp dụng kiểm thử hồi quy quy mô nhỏ
Trải nghiệm người dùng Cho phép quan sát trực quan, thân thiện với người dùng Không gắn với nhận thức con người, khó đánh giá trải nghiệm

Phương pháp nghiên cứu thực tế được tác giả ứng dụng:

  • Phương pháp thu thập thông tin: Phương pháp nghiên cứu tài liệu qua sách và mạng Internet về các website tương tự; phương pháp quan sát trực tiếp quy trình kinh doanh tại các cửa hàng cây cảnh.
  • Phương pháp phân tích thiết kế hệ thống: Áp dụng phương pháp phân tích thiết kế hướng đối tượng (OOAD) để xây dựng các biểu đồ Use case, biểu đồ tuần tự (Sequence Diagram) và lược đồ dữ liệu quan hệ.
  • Phương pháp lập trình: Lập trình hướng đối tượng (OOP) trên nền tảng CodeIgniter.
  • Phương pháp kiểm thử: Kiểm thử thủ công sử dụng kỹ thuật hộp đen, thiết lập bộ kịch bản kiểm thử (Test cases) và báo cáo lỗi (Bug report).

Thiết kế và triển khai hệ thống

Hệ thống website được xây dựng theo kiến trúc Model-View-Controller (MVC) trên nền tảng CodeIgniter, ngôn ngữ PHP và cơ sở dữ liệu MySQL chạy trên môi trường máy chủ XAMPP.

Hệ thống phân định 3 tác nhân tương tác chính gồm: Người xem (khách vãng lai chưa đăng nhập, chỉ xem thông tin, tìm kiếm sản phẩm và đọc tin tức); Khách hàng (người dùng đã đăng ký tài khoản, có quyền mua hàng, quản lý đơn hàng, đổi mật khẩu và gửi phản hồi); Admin (người quản trị vận hành). Trong phân hệ quản trị, hệ thống phân chia rõ 2 cấp bậc tài khoản:

  • Tài khoản Người quản trị: Toàn quyền thêm, sửa, xóa vĩnh viễn dữ liệu, nhập hàng, quản lý nhân viên, cấu hình hệ thống và theo dõi báo cáo doanh thu.
  • Tài khoản Nhân viên: Quyền hạn giới hạn, được phép duyệt và hủy đơn hàng, kiểm kê hàng hóa, cập nhật trạng thái sản phẩm, quản lý tin tức và liên hệ; không được xóa vĩnh viễn dữ liệu hoặc can thiệp cấu hình cốt lõi.

Cơ sở dữ liệu của hệ thống gồm 15 bảng quan hệ được thiết kế để lưu trữ và xử lý các luồng nghiệp vụ:

Tên bảng Chức năng lưu trữ dữ liệu
Category Thông tin danh mục loại sản phẩm đa cấp
Product Thông tin chi tiết sản phẩm cây cảnh, giá bán, tồn kho
Order Thông tin đơn đặt hàng tổng quát và trạng thái xử lý
Orderdetail Chi tiết từng mặt hàng, số lượng và đơn giá trong đơn hàng
User Tài khoản quản trị viên và nhân viên hệ thống
Usergroup Nhóm quyền hạn của người dùng quản trị
Producer Thông tin về các nhà cung cấp cây cảnh
Province Danh mục tỉnh/thành phố phục vụ giao hàng
District Danh mục quận/huyện trực thuộc tỉnh/thành phố
Customer Thông tin tài khoản người mua hàng
Config Thiết lập cấu hình hệ thống và mức phí giao hàng mặc định
Content Bài viết tin tức và nội dung giới thiệu sản phẩm
Contact Ý kiến phản hồi, đóng góp từ phía khách hàng
Discount Mã giảm giá, hạn sử dụng, mức giảm và giới hạn lượt dùng
Slider Hình ảnh trình chiếu quảng bá trên giao diện trang chủ

Quy trình xử lý đơn hàng được lập trình tự động hóa liên kết với kho dữ liệu: khi khách hàng đặt hàng, đơn ở trạng thái "Đang chờ duyệt"; sau khi nhân viên xác nhận hợp lệ, đơn chuyển sang "Đang giao hàng"; khi khách nhận hàng và thanh toán thành công, đơn được duyệt trạng thái "Đã giao". Lúc này, số lượng sản phẩm tồn kho trong bảng Product sẽ tự động trừ đi tương ứng và doanh thu sẽ được cộng vào thống kê của tháng đó.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý luận

Chương này tập trung trình bày tổng quan về hoạt động thương mại điện tử, các mô hình kinh doanh trực tuyến tại Việt Nam và cơ chế hoạt động của website động. Tác giả giới thiệu chi tiết các công nghệ sử dụng trong đề tài gồm MySQL, phần mềm XAMPP, nền tảng CodeIgniter 3 và ngôn ngữ PHP. Phần tiếp theo của chương trình bày lý thuyết kiểm thử phần mềm, giải thích 7 nguyên tắc kiểm thử, mô tả 6 giai đoạn của vòng đời STLC, so sánh hai kỹ thuật kiểm thử hộp đen và hộp trắng, phân tích ưu nhược điểm của kiểm thử thủ công và lập bảng đối chiếu giữa kiểm thử thủ công với kiểm thử tự động, đồng thời nêu rõ 12 trường cấu trúc bắt buộc của một bản báo cáo lỗi.

Chương 2: Phân tích và thiết kế website bán hàng cho cửa hàng bán cây cảnh

Chương 2 bắt đầu bằng việc giới thiệu cửa hàng cây cảnh tại 93 An Dương Vương, thành phố Huế và mô tả bài toán thương mại hóa sản phẩm cây xanh. Tác giả phân tích chi tiết yêu cầu chức năng cho phía khách hàng (đăng ký tài khoản với mật khẩu trên 6 ký tự, đăng nhập, lấy lại mật khẩu qua email, tìm kiếm sản phẩm theo từ khóa, giỏ hàng, đặt hàng có hoặc không cần tài khoản, áp dụng mã giảm giá, theo dõi trạng thái đơn) và phía người quản trị (quản lý danh mục đa cấp, quản lý sản phẩm và thùng rác, nhập hàng, quản lý nhà cung cấp, bài viết, mã giảm giá, quản lý đơn hàng, phân quyền nhân viên và cấu hình phí giao hàng). Tác giả xây dựng các biểu đồ Use case tổng quát, Use case chi tiết của Admin, Khách hàng, Use case đặt hàng, đăng nhập và quản lý khách hàng; lập các biểu đồ tuần tự cho tác vụ quản lý giỏ hàng, thêm sản phẩm, tìm kiếm sản phẩm; thiết kế mô hình dữ liệu quan hệ gồm 15 bảng và minh họa các bản vẽ giao diện (GUI) từ trang chủ, giỏ hàng đến bảng điều khiển quản trị.

Chương 3: Triển khai kiểm thử website bán hàng của cửa hàng bán cây cảnh

Nội dung chương 3 tập trung xây dựng và thực thi các bộ kịch bản kiểm thử (Test cases) trên giao diện website thực tế. Tác giả thiết kế 4 bảng kịch bản kiểm thử tương ứng với 4 chức năng: Bảng 3.1 cho chức năng Đăng nhập, Bảng 3.2 cho Quản lý sản phẩm, Bảng 3.3 cho Quản lý giỏ hàng, và Bảng 3.4 cho Quản lý tin tức. Chương này minh họa chi tiết quy trình thực thi một ca kiểm thử thành công qua luồng mua hàng và đặt hàng hoàn chỉnh (chọn sản phẩm, thêm vào giỏ, nhập mã giảm giá, hoàn tất đơn), đồng thời minh họa ca kiểm thử thất bại đối với các trường dữ liệu nhập sai định dạng hoặc bỏ trống. Cuối chương là biểu mẫu báo cáo kết quả kiểm thử và biên bản ghi nhận lỗi (Bug report) trong quá trình vận hành.

Kết quả và đóng góp

Khóa luận đạt được các kết quả cụ thể gắn với số liệu và cấu trúc thực tế của sản phẩm:

  • Xây dựng hoàn chỉnh hệ thống website thương mại điện tử cho cửa hàng cây cảnh với 15 bảng dữ liệu quan hệ, tích hợp đầy đủ phân hệ mua sắm cho khách hàng và phân hệ quản trị phân quyền cho 2 nhóm đối tượng (Admin toàn quyền và Nhân viên giới hạn quyền).
  • Tự động hóa các nghiệp vụ bán hàng: cập nhật tồn kho khi đơn hàng chuyển sang trạng thái "Đã giao", tự động trừ số lần sử dụng của mã giảm giá khi áp dụng thành công, tự động tổng hợp doanh thu theo tháng và năm.
  • Xây dựng thành công quy trình kiểm thử thủ công theo phương pháp hộp đen, hoàn thiện 4 bộ kịch bản kiểm thử chức năng (Đăng nhập, Quản lý sản phẩm, Giỏ hàng, Tin tức) và thiết lập mẫu báo cáo lỗi chi tiết hỗ trợ đội ngũ phát triển sửa lỗi.

So với các công trình nghiên cứu khóa luận được tác giả tổng quan:

  • Khắc phục hạn chế về giao diện đơn giản và chức năng tìm kiếm nghèo nàn trong đề tài quản lý vật liệu xây dựng bằng C# của Đoàn Đăng Khoa (2017);
  • Khắc phục tình trạng thiếu tính năng và tồn tại nhiều lỗi trong phần mềm quản lý quán cà phê bằng C# của Hồ Thanh Thảo Uyên (2017);
  • Hoàn thiện cấu trúc bảo mật và chức năng tốt hơn so với đề tài bán hàng ASP.NET MVC5 của Trần Lam Anh (2017) và đề tài website bán quần áo PHP của Nguyễn Hữu Hoàng (2012);
  • Bổ sung chức năng quản lý khuyến mãi, mã giảm giá và tính phí vận chuyển linh hoạt theo địa giới hành chính, tuy nhiên vẫn chưa khắc phục được hạn chế tích hợp thanh toán qua thẻ ngân hàng như đề tài website công ty Phương Thảo của Võ Minh Tuấn (2013).

Hạn chế và hướng nghiên cứu tiếp

Khóa luận tự chỉ ra một số hạn chế gắn liền với phạm vi triển khai:

  • Hệ thống chưa tích hợp cổng thanh toán trực tuyến (như thẻ ATM hay thẻ thanh toán quốc tế), quy trình thanh toán vẫn phụ thuộc vào phương thức truyền thống khi nhận hàng.
  • Ứng dụng mới được cài đặt, vận hành thử nghiệm trên môi trường máy chủ cục bộ (Localhost thông qua XAMPP), chưa được đưa lên hệ thống máy chủ mạng Internet thực tế với tên miền riêng.
  • Hoạt động kiểm thử mới dừng lại ở cấp độ kiểm thử thủ công và kiểm thử chức năng hộp đen, chưa áp dụng các công cụ kiểm thử tự động, chưa thực hiện kiểm thử hiệu năng hay kiểm thử an toàn thông tin dưới tải lượng người dùng lớn.

Hướng phát triển tiếp theo được đề xuất:

  • Nghiên cứu tích hợp các giải pháp thanh toán điện tử trực tuyến thông qua cổng thanh toán ngân hàng hoặc ví điện tử.
  • Đưa mã nguồn và cơ sở dữ liệu lên môi trường máy chủ Web Hosting thực tế để phục vụ hoạt động bán hàng thật cho cửa hàng.
  • Áp dụng các framework kiểm thử tự động nhằm nâng cao độ tin cậy và tối ưu hóa thời gian kiểm thử hồi quy cho các phiên bản nâng cấp.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo thiết thực cho:

  • Sinh viên các ngành Hệ thống Thông tin Quản lý, Khoa học Máy tính, Công nghệ Thông tin và Thương mại Điện tử đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về ứng dụng web với ngôn ngữ PHP và nền tảng CodeIgniter.
  • Người nghiên cứu có thể tham khảo trực tiếp cấu trúc phân tích 15 bảng cơ sở dữ liệu quan hệ cho một website thương mại điện tử bán lẻ quy mô vừa và nhỏ.
  • Tài liệu cung cấp mẫu tham khảo rõ ràng về cách xây dựng các bộ kịch bản kiểm thử thủ công (Test cases) theo chuẩn, kỹ thuật ghi nhận lỗi (Bug report) và đối chiếu luồng nghiệp vụ giữa giao diện người dùng với bảng điều khiển quản trị.

Câu hỏi thường gặp

Website trong khóa luận được xây dựng dựa trên những công nghệ nào?
Website được phát triển bằng ngôn ngữ lập trình PHP theo kiến trúc MVC trên nền tảng CodeIgniter 3, sử dụng hệ quản trị cơ sở dữ liệu MySQL và được vận hành thử nghiệm trên môi trường máy chủ cục bộ XAMPP (bao gồm Apache, MariaDB, PHP).

Cơ sở dữ liệu của hệ thống bao gồm những bảng nào?
Cơ sở dữ liệu của hệ thống gồm 15 bảng: Category, Product, Order, Orderdetail, User, Usergroup, Producer, Province, District, Customer, Config, Content, Contact, Discount, Slider.

Hệ thống phân quyền cho các tài khoản quản trị như thế nào?
Trang quản trị phân chia 2 nhóm tài khoản: Tài khoản Người quản trị (Admin) có toàn quyền thao tác thêm, sửa, xóa vĩnh viễn dữ liệu, nhập hàng, quản lý nhân viên và xem báo cáo doanh thu; Tài khoản Nhân viên bị giới hạn quyền, chỉ được duyệt hoặc hủy đơn hàng, kiểm tra hàng tồn, quản lý bài viết tin tức, duyệt liên hệ và cập nhật trạng thái sản phẩm, không có quyền xóa vĩnh viễn hoặc tạo mới nhà cung cấp, mã giảm giá.

Khóa luận đã thực hiện kiểm thử cho các chức năng nào của website?
Tác giả đã xây dựng 4 bộ kịch bản kiểm thử thủ công (Test cases) tương ứng cho 4 chức năng cốt lõi: chức năng Đăng nhập (Bảng 3.1), chức năng Quản lý sản phẩm (Bảng 3.2), chức năng Quản lý giỏ hàng (Bảng 3.3) và chức năng Quản lý tin tức (Bảng 3.4), kèm theo các minh họa ca kiểm thử thành công và thất bại.

Hệ thống xử lý trạng thái đơn hàng và cập nhật doanh thu tự động ra sao?
Đơn hàng sau khi đặt sẽ mang trạng thái "Đang chờ duyệt", sau đó nhân viên kiểm tra và chuyển sang "Đang giao hàng". Khi khách hàng nhận hàng và thanh toán thành công, đơn hàng được cập nhật trạng thái "Đã giao"; tại thời điểm này, hệ thống sẽ tự động trừ số lượng sản phẩm tương ứng trong kho và tự động cộng dồn doanh số vào báo cáo doanh thu của tháng đó.

Kết luận

Khóa luận của sinh viên Nguyễn Thị Vân Anh đã giải quyết trọn vẹn bài toán xây dựng và kiểm thử website thương mại điện tử cho cửa hàng bán cây cảnh tại Huế bằng ngôn ngữ PHP trên nền tảng CodeIgniter. Tác giả đã hoàn thiện đầy đủ các khâu từ khảo sát thực tiễn, phân tích thiết kế hệ thống hướng đối tượng với 15 bảng cơ sở dữ liệu, lập trình chức năng phân quyền chi tiết đến việc thiết lập quy trình kiểm thử thủ công bài bản. Mặc dù còn hạn chế về việc chưa tích hợp cổng thanh toán trực tuyến và chưa triển khai thực tế trên Internet, đề tài vẫn là một tài liệu học thuật và kỹ thuật hoàn chỉnh, đáp ứng tốt yêu cầu tốt nghiệp đại học ngành Hệ thống Thông tin Quản lý.