KIỂM THỬ THỦ CÔNG
Mô tả bài toán
Bài toán tính số lượng hàng tồn kho của cửa hàng bán quần áo online Cửa hàng sử dụng hệ thống gồm các chức năng là tìm kiếm, nhập hàng, xuất hàng hóa, quản lý đơn hàng, thống kê và thoát Mỗi đầu tháng, nhân viên sẽ nhập thêm hàng hóa vào kho Sau đó, cửa hàng bán những hàng hóa được lấy từ trong kho và xuất hóa đơn với mỗi đơn hàng Hết tuần, nhân viên sẽ kiểm kê lại số lượng mỗi hàng hóa trong hóa đơn để thực hiện báo cáo thống kê số lượng hàng hóa hàng tháng Nhân viên có thể thực hiện tìm kiếm hóa đơn theo mã hóa đơn hoặc thông tin hàng hóa theo mã hàng hóa.
Chức năng sẽ hỗ trợ nhân viên tìm kiếm hóa đơn theo mã hóa đơn hoặc hàng hóa theo mã hàng hóa để kiểm tra thông tin chi tiết Chức năng tìm kiếm còn được sử dụng để kiểm tra sự tồn tại hàng hóa đấy trong hệ thống, tránh sự trùng lặp trong quá trình nhập hàng Ngoài ra, hệ thống sẽ tìm kiếm các đơn hàng và hàng hóa theo từng tháng để thực hiện thống kê.
Sau khi nhập hàng vào kho, nhân viên tiến hành cập nhật từng mặt hàng hóa đó vào hệ thống Nhân viên nhập mã hàng hóa và nhấn tìm kiếm để hệ thống sẽ duyệt trong kho dữ liệu Nếu hàng hóa đã tồn tại trong hệ thống thì hệ thống sẽ hiển thị thông tin hàng hóa và nhân viên sẽ nhập số lượng mới nhập thêm để hệ thống cập nhật thêm số lượng hàng hóa mới nhập vào số lượng đã có và hiển thị lưu thành công Còn nếu hàng hóa không tồn tại trong hệ thống thì nhân viên sẽ phải nhập đầy đủ các thông tin thêm về tên sản phẩm, số lượng, giá nhập và hệ thống sẽ ghi thời gian thực khi nhấn submit và lưu mới thông tin hàng hóa đó Nếu nhân viên nhập thông tin về hàng hóa không thỏa mãn hoặc thiếu thông tin bắt buộc thì hệ thống hiển thị thông tin không hợp lệ yêu cầu nhân viên nhập lại và hệ thống sẽ không ghi nhận thông tin vào cơ sở dữ liệu
• Số lượng hàng hóa mới nhập kho cần phải là số tự nhiên khác 0 Nếu không thỏa mãn thì hệ thống sẽ thống báo thông tin không hợp lệ.
• Các trường bắt buộc: Mã hàng hóa, tên hàng hóa, số lượng, đơn giá, ngày nhập hàng
Mỗi lần nhân viên thực hiện xuất hàng, nhân viên sẽ lựa chọn và nhập mã đơn hàng cần xử lý trong danh sách đơn hàng Hệ thống kiểm tra mã đơn hàng và hiển thị thông tin đơn hàng đó, nhân viên sẽ xác nhận xuất hàng Nếu số lượng hàng hóa trong kho thỏa mãn số lượng trong đơn hàng thì hệ thống sẽ thông báo xuất hàng thành công và xuất hóa đơn gồm các thông tin: Mã đơn hàng, mã hàng hóa, tên hàng hóa, số lượng bán, đơn giá xuất, thành tiền, ngày xuất được ghi theo thời gian thực và tổng tiền; đồng thời hệ thống tự động cập nhật lại số lượng hàng hóa trong kho.
• Nếu mã đơn hàng không tồn tại trong hệ thống thì thông báo mã đơn hàng không tồn tại và không thể xuất hàng.
• Mã đơn hàng là số tự nhiên khác không và không được phép trùng nhau.
• Số lượng hàng hóa trong kho không đủ với số liệu hàng hóa trong đơn hàng thì sẽ thông báo xuất hàng không thành công.
Chức năng tạo đơn hàng
Sau khi khách hàng thực hiện đặt hàng, hệ thống sẽ tự động tạo một mã đơn hàng và đưa thông tin đơn hàng bao gồm mã đơn hàng, mã hàng hóa, tên hàng hóa, số lượng mỗi hàng hóa, đơn giá và tổng tiền vào kho dữ liệu Thông tin này sẽ được đẩy vào danh sách quản lý đơn hàng, nhân viên sẽ lựa chọn đơn hàng để thực hiện xuất hàng bằng cách nhập mã đơn hàng.
Chức năng Thống Kê Định kỳ mỗi tuần, nhân viên sẽ thống kê số lượng từng loại mặt hàng còn lại trong kho để kiểm tra số lượng hàng tồn kho và những mặt hàng đã hết Bằng cách lấy số lượng hàng hóa đã cập nhật vào hệ thống trừ đi số lượng đã bán ra:
• Nếu số lượng hàng hóa trong kho nhỏ hơn 100 sản phẩm thì hệ thống sẽ thông báo hết hàng
• Nếu số lượng hàng hóa trong kho lớn hơn hoặc bằng 100 và nhỏ hơn hoặc bằng số lượng hiện còn trong kho (lớn hơn hoặc bằng 100) thì hàng hóa đó sẽ được thông báo là không cần nhập thêm.
Nhân viên thực hiện chức năng thoát, hệ thống sẽ thoát khỏi chương trình và phiên đăng nhập của nhân viên vừa sử dụng.
1.2 Đầu vào, đầu ra của bài toán
• Tìm kiếm hàng hóa: Input: Mã hàng hóa Output:
- Tìm kiếm thành công: Mã hàng hóa, tên hàng hóa, số lượng, đơn giá, ngày nhập hàng
- Tìm kiếm không thành công: “Hàng hóa không tồn tại trong kho”
• Tìm kiếm đơn hàng: Input: Mã đơn hàng Output:
- Tìm kiếm thành công: Mã sản phẩm, tên hàng hóa, số lượng bán, đơn giá xuất, thành tiền, ngày xuất, tổng tiền
- Tìm kiếm không thành công: “Đơn hàng không tồn tại”
Input: Mã hàng hóa, tên hàng hóa, số lượng, đơn giá
- Lưu thành công vào kho dữ liệu: “Lưu thông tin thành công”
- Lưu không thành công vào kho dữ liệu: “Lưu thông tin không thành công”
- Thiếu thông tin của các trường bắt buộc: “Vui lòng điền đầy đủ thông tin”
- Thông tin không thỏa mãn: “Thông tin không hợp lệ”
- Số lượng không thỏa mãn yêu cầu hoặc Mã hàng hóa không tồn tại: “Xuất hàng không thành công”
- Số lượng thỏa mãn yêu cầu: “Xuất hàng thành công” và hiển thị các thông tin (mã đơn hàng, mã hàng hóa, tên hàng hóa, số lượng bán, đơn giá xuất, thành tiền, ngày xuất và tổng tiền)
- Mã đơn hàng chứa kí tự đặc biệt: Lỗi
Input: Mã hàng hóa, mã hóa đơn, số lượng nhập, số lượng xuất
- [0;100]: “Sản phẩm sắp hết hàng”
- [100; “số lượng hiện còn trong kho”]: “Không cần nhập thêm hàng”
- Nhỏ hơn 0 hoặc lớn hơn số lượng hiện còn trong kho: “Thông tin không hợp lệ”.
Phân tích bài toán
Chức năng này cho phép nhân viên tìm kiếm hóa đơn theo mã hóa đơn hoặc hàng hóa theo mã hàng hóa Hiển thị thông tin chi tiết của hóa đơn hoặc hàng hóa khi được tìm thấy và kiểm tra sự tồn tại của hàng hóa trong hệ thống và báo lỗi nếu có trùng lặp Tìm kiếm các hóa đơn và hàng hóa theo từng tháng để thực hiện thống kê.
Chức năng này cho phép nhân viên cập nhật số lượng và thông tin, tìm kiếm hàng hóa theo mã hàng hóa và hiển thị thông tin hàng hóa nếu có trong hệ thống Cho phép nhân viên nhập số lượng mới nhập thêm cho hàng hóa Kiểm tra tính hợp lệ của các thông tin nhập vào và báo lỗi nếu có thông tin không thỏa mãn hoặc thiếu thông tin bắt buộc.
Chức năng tạo đơn hàng
Chức năng này cho phép khách hàng đặt hàng bằng cách chọn các mặt hàng hóa và số lượng mong muốn Và tự động tạo một mã đơn hàng cho mỗi đơn hàng và kiểm tra tính hợp lệ của mã đơn hàng là số tự nhiên khác không và không trùng nhau Lưu thông tin đơn hàng bao gồm mã đơn hàng, mã hàng hóa, tên hàng hóa, số lượng mỗi hàng hóa, đơn giá và tổng tiền vào kho dữ liệu Đẩy thông tin đơn hàng vào danh sách quản lý đơn hàng để nhân viên có thể lựa chọn đơn hàng để thực hiện xuất hàng.
Chức năng này cho phép nhân viên nhâp đơn hàng cần xử lý trong danh sách đơn hàng và xác nhận xuất hàng khi hệ thống hiển thị thông tin đơn hàng theo mã đơn hàng Kiểm tra số lượng hàng hóa trong kho và so sánh với số lượng trong đơn hàng.
Giúp cập nhật lại số lượng hàng hóa trong kho sau khi xuất hàng thành công.
Chức năng này cho phép nhân viên thống kê số lượng từng loại mặt hàng còn lại trong kho định kỳ mỗi tuần Giúp tính toán số lượng hàng hóa và thông báo khi hết hàng.
Chức năng này cho phép nhân viên thoát khỏi chương trình bằng cách nhấn vào nút “Thoát” hoặc đóng cửa sổ chương trình Kết thúc phiên đăng nhập của nhân viên vừa sử dụng và xóa các thông tin tạm thời liên quan đến phiên đăng nhập đó.
2.2 Yêu cầu phi chức năng
Yêu cầu về hoạt động:
• Hệ thống có thể hoạt động trên hệ điều hành Windows, MacOS, Linux
• Hệ thống phải tương thích với mọi trình duyệt web.
Yêu cầu về hiệu năng thực hiện:
• Tốc độ xử lý của hệ thống phải nhỏ hơn 3s
• Hệ thống quản lý kho hàng phải có thể xử lý được ít nhất 1000 phiếu xuất nhập kho mỗi ngày
• Số người có thể truy cập vào hệ thống tại cùng một thời điểm tối đa là 500 người
• Hệ thống hoạt động suốt được 24h/ngày và 365 ngày/năm
• Hệ thống quản lý kho hàng phải hoạt động ổn định và không bị lỗi hay sập nguồn.
Yêu cầu về tính bảo mật
• Chỉ có người quản trị hệ thống có quyền thiết lập hệ thống
• Chỉ có người quản lý được xem hồ sơ các nhân viên và hoạt động làm việc của nhân viên
• Tài khoản của nhân viên quản lý được cấp có tài khoản và mật khẩu đảm bảo bí mật, an toàn
• Hệ thống trang bị tường lửa, các biện pháp phòng chống nguy truy cập trái phép
• Hệ thống có khả năng tự phòng chống virus, worm, các loại mã độc khác tấn công
• Thông tin hàng hóa: ID hàng hóa, tên hàng hóa, số lượng, đơn giá, ngày nhập ID hàng hóa:
- Kiểu dữ liệu: int, lớn hơn bằng 0
- Không chứa dấu cách và các ký tự đặc biệt Tên hàng hóa:
- Kiểu dữ liệu: int, lớn hơn bằng 0
- Không chứa dấu cách và các ký tự đặc biệt Đơn giá:
- Kiểu dữ liệu: currency, lớn hơn bằng 0
- Không chứa dấu cách và các ký tự đặc biệt Ngày nhập:
ID hàng hóa tên hàng hóa số lượng Đơn giá Ngày nhập
• Thông tin đơn hàng: mã đơn hàng, mã hàng hóa, tên hàng hóa, số lượng mỗi hàng hóa, đơn giá và tổng tiền.
- Kiểu dữ liệu: int, lớn hơn bằng 0
- Không chứa dấu cách và các ký tự đặc biệt Số lượng hàng hóa:
- Kiểu dữ liệu: int, lớn hơn bằng 0
- Không chứa dấu cách và các ký tự đặc biệt Đơn giá:
- Kiểu dữ liệu: currency, lớn hơn bằng
- Kiểu dữ liệu: currency, lớn hơn bằng 0
ID đơn hàng Mã hàng hóa Tên hàng hóa Số lượng đơn giá tổng tiền
• Thông tin hóa đơn: Mã đơn hàng, mã hàng hóa, tên hàng hóa, số lượng bán, đơn giá xuất, thành tiền, ngày xuất
- Kiểu dữ liệu: int, lớn hơn bằng 0
- Không chứa dấu cách và các ký tự đặc biệt Đơn giá xuất:
- Kiểu dữ liệu: currency, lớn hơn bằng
- Kiểu dữ liệu: currency, lớn hơn bằng
ID đơn hàng Mã hàng hóa Tên hàng hóa Số lượng đơn giá tổng tiền Ngày xuất
200.000 29/3/2023 Đầu vào/ra cho phần kiểm thử tích hợp và chỉ ra các lỗi có thể xảy ra
• Tìm kiếm ID hàng hóa + Xuất hàng
• Câp nhâṭ số lượng + Tạo hóa đơn
• Tìm kiếm ID hàng hóa + Xuất hàng
STT Lỗi có thể xảy ra
1 ID đơn hàng không phải kiểu int hoăc ̣ là số nhỏ hơn 0
2 ID đơn hàng chứa dấu cách hoăc ̣ ký tự đăc ̣ biêṭ
3 Số lượng hàng hóa xuất không phải kiểu int hoăc ̣ là số nhỏ hơn hoăc ̣ bằng 0
4 Số lượng hàng hóa xuất chứa dấu cách
5 Số lượng hàng hóa xuất chứa ký tự đăc ̣ biêṭ
6 Số lượng hàng hóa xuất lớn hơn số lượng hiêṇ còn trong kho
• Câp nhâṭ số lượng + Tạo hóa đơn
STT Lỗi có thể xảy ra
1 Số lượng hàng hóa bằng 0
2 Số lượng hàng hóa là số âm
3 Số lượng hàng hóa là số hữu tỉ
4 Số lượng hàng hóa là số vô tỉ
5 Số lượng hàng hóa chứa ký tự đặc biệt
6 Số lượng xuất lớn hơn số lượng còn trong kho
7 Số lượng hàng hóa chứa dấu cách
Thiết kế ca kiểm thử
3.1 Thiết kế kiểm thử dựa trên mô tả ca sử dụng
3.1.1 Mô tả ca sử dụng chính
Mô tả UC nhập hàng
STT UC name Nhâp ̣ hàng
Mã hàng hóa đã tồn tại
3 Hâụ điều kiêṇ Câp ̣ nhâṭ thành công số lượng hàng hóa mới nhâp ̣ vào hê ̣thống.
1 Nhân viên nhấn chọn chức năng nhập hàng
2 Hệ thống hiển thị giao diện nhập hàng
3 Nhân viên nhập mã hàng hóa và hệ thống sẽ thực hiện tìm kiếm
4 Hệ thống hiển thị thông tin về hàng hóa cần cập nhật
5 Nhân viên nhập thêm số lượng hàng hóa nhập mới
6 Hệ thống sẽ tự động cập nhật số lượng
5 Luồng phụ 4 Hệ thống hiển thị mã hàng hóa chưa tồn tại và chuyển qua giao diện thêm mới hàng hóa 4.1 Nhân viên nhập đầy đủ các thông tin về hàng hóa mới:
• Giá nhập 4.2 Nhân viên nhấn lưu thông tin hàng hóa đó 4.3 Hệ thống sẽ tự động lưu thông tin vào cơ sở dữ liệu
Mô tả UC “Xuất hàng”
STT UC name Xuất hàng
Mã đơn hàng tồn tại
Mã hàng hóa có số lượng đủ để xuất hàng
Hê ̣thống xuất hóa đơn thành công
1 Nhân viên yêu cầu xuất hàng
2 Hệ thống hiển thị Form nhập thông tin xuất hàng
3 Nhân viên nhập mã đơn hàng cần xuất
4 Hệ thống hiển thị thông tin đơn hàng
5 Nhân viên nhấn xuất đơn hàng
6 Hệ thống kiểm tra số lượng trong kho thỏa mãn đơn hàng và xuất đơn hàng
7 Hệ thống tạo hóa đơn xuất đơn hàng tự động gồm các thông tin:
Mã đơn hàng, mã hàng hóa, tên hàng hóa, số lượng bán, đơn giá xuất, thành tiền, ngày xuất được ghi theo thời gian thực và tổng tiền
8 Nhân viên kiểm tra hóa đơn và nhấn xuất hàng
9 Hệ thống thông báo xuất đơn hàng thành công
5 Luồng phụ 4 Hệ thống kiểm tra số lượng trong kho không thỏa mãn đơn hàng
4.1 Hệ thống thông báo xuất đơn hàng không thành công
3.1.2 Xác định các kịch bản hành vi
• Nhân viên nhập mã mặt hàng không hợp lệ → Hệ thống báo lỗi
• Nhân viên nhập mã mặt hàng hợp lệ và mã mặt hàng đã tồn tại trong hệ thống
→ Hệ thống hiển thị thông tin mặt hàng
• Nhân viên nhập mã mặt hàng hợp lệ và mã mặt hàng không tồn tại trong hệ thống
→ Hệ thống thông báo mã mặt hàng không tồn tại và yêu cầu nhập thông tin mặt hàng mới
• Nhân viên nhập sai tên mặt hàng → Hệ thống báo lỗi
• Nhân viên nhập sai đơn giá mặt hàng → Hệ thống báo lỗi
• Nhân viên nhập số lượng hàng hoá không hợp lệ → Hệ thống thông báo lỗi Kịch bản hành vi chi tiết
STT Hành vi Kết quả Lỗi
1 Nhân viên nhập mã mặt hàng không hợp lệ Hệ thống thông báo lỗi
Sai kiểu dữ liệu trường mã mặt hàng
Mã mặt hàng chứa ký tự đặc biệt
2 Nhân viên nhập mã mặt hàng hợp lệ và mã mặt hàng đã tồn tại trong hệ thống
Hệ thống hiển thị thông tin mặt hàng
3 Nhân viên nhập mã mặt hàng hợp lệ và mã mặt hàng không tồn tại trong hệ thống
Yêu cầu nhập thông tin mặt hàng mới Mã mặt hàng không tồn tại
4 Nhân viên nhập sai tên mặt hàng
Hệ thống thông báo lỗi
Sai kiểu dữ liệu trường tên mặt hàng
5 Nhân viên nhập sai đơn giá mặt hàng
Hệ thống thông báo lỗi
Sai kiểu dữ liệu trường giá mặt hàng
Giá mặt hàng chứa ký tự đặc biệt
6 Nhân viên nhập số lượng hàng hoá không hợp lệ Hệ thống thông báo
Số lượng hàng hoá nhập vào bằng 0
Số lượng hàng hoá nhập vào là các ký tự không lỗi phải ký tự số
Số lượng hàng hoá nhập vào không phải số tự nhiên lớn hơn 0
7 Nhân viên nhập số lượng hàng hoá hợp lệ
“Cập nhật số lượng thành công”
8 Nhân viên nhập các thông tin hàng của hoá mới hợp lệ Hệ thống hiển thị
“Nhập hàng hóa thành công”
• Nhân viên nhập mã đơn hàng không hợp lệ → Hệ thống báo lỗi
• Nhân viên nhập mã đơn hàng hợp lệ nhưng mã này không tồn tại → Hệ thống báo mã đơn hàng không tồn tại
• Nhân viên nhập mã đơn hàng hợp lệ và mã này đã tồn tại trên hệ thống → Hệ thống hiển thị thông tin đơn hàng
• Số lượng mặt hàng của đơn hàng không thoả mãn yêu cầu (