Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 24

Chương 1: Tổng quan bài tập

1.1. Giới thiệu đề tài


Đường sắt - một trong những ngành công nghiệp lâu đời nhất của Việt Nam
mở ra trang đầu tiên từ năm 1881 với việc người Pháp tiến hành khởi công xây
dựng tuyến Đường sắt Sài Gòn - Mỹ Tho.
Sau quá trình xây dựng và phát triển, vận tải đường sắt với giá thành tương
đối rẻ, đặc biệt là sự thoải mái và an toàn cho người sử dụng, đã trở thành phương
tiện vận tải hàng đầu của nước ta. Với yêu cầu thực tiễn đòi hỏi phải đổi mới mô
hình tổ chức để kinh doanh hiệu quả hơn, từ ngày 7-7-2003. Đường sắt Việt Nam
chính thức đi vào hoạt động theo mô hình tổ chức mới: Tổng Công ty đường sắt
Việt Nam, trong đó khối vận tải bao gồm 4 đơn vị chính là Công ty vận tải hành
khách đường sắt Hà Nội, Công ty vận tải hành khách đường sắt Sài Gòn, Công ty
vận tải hàng hoá đường sắt và Trung tâm điều hành vận tải đường sắt. Quy mô tổ
chức đã được đổi mới tuy nhiên việc ứng dụng công nghệ thông tin của ngành
Đường Sắt còn hạn chế. Qua tìm hiểu được biết hằng ngày tại các Ga Tàu có hàng
ngàn lượt người đến mua vé tàu, con số này còn lớn hơn rất nhiều vào các dịp lễ
Tết. Do đó việc quản lý mua, bán và trả vé hết sức khó khăn và đòi hỏi tốn nhiều
công sức để tránh nhầm lẫn gây thiệt hại cho Nhà Ga cũng như Hành khách. Nắm
bắt được yêu cầu này em đã mạnh dạn chọn đề tài này để triển khai với hy vọng sẽ
giảm bớt gánh nặng cho việc quản lý bán vé ở các ga trên tuyến đường sắt Bắc-
Nam nói chung.
1.2. Đặc tả yêu cầu
1.2.1. Các luồng nghiệp vụ chính
Đối với người dùng
1. Người dùng truy cập vào trang chủ
2. Người dùng tìm kiếm chuyến tàu và đặt vé
3. Sau khi người dùng tìm được chuyến tàu theo sự tìm kiếm của người dùng,
người dùng sẽ chọn khoang tàu tương ứng các khung giờ và nhập thông tin cá
nhân của mình để tiến hành đặt vé.
4. Sau khi người dùng xác nhận đặt vé chuyến tàu, họ sẽ được chuyển đến trang
thanh toán để hoàn tất việc đặt vé.
5. Sau khi hoàn tất thanh toán vé, người dùng sẽ nhận được thông báo thành công
và thông tin vé chuyến tàu của mình.

Đối với quản trị viên

1. Quản trị viên tiến hành đăng nhập bằng tài khoản dành cho quản trị viên.
2. Sau khi quản trị viên đăng nhập thành công , họ có thể xem nhanh được các đơn
hàng, thông tin khách hàng , doanh thu.

3. Quản trị viên trong mục quản lý có thể quản lý thông tin khách hàng, thông tin
về dịch vụ, sản phẩm, quản lý các chuyến đi

1.2.2. Các màn chức năng chính

- Wireframe

* Navbar user:

Tên phần tử Loại Mổ tả

Logo Img Chuyển hướng nhanh về


trang chủ

Trang chủ Button Điều hướng đến trang chủ

Lịch trình Button Điều hướng đến trang lịch


trình

Về chúng tôi Button Điều hường đến trang về


chúng tôi

Liên hệ chúng tôi Button Điều hường đến trang liên hệ


chúng tôi

Đăng nhập Button Đăng nhập và chuyển đến


trang quản trị
1. Trang chủ: Màn hình chính hiển thị thông tin tổng quan về hề thống bao gồm
vé tàu , dịch vụ vé tàu.

Trường Loại Kiêu dữ Độ dài tối Bắt buộc Mô tả


liệu đa

Bảng điều Button Có Bảng chào người


khiển dùng

Bán vé button Có Trang bán vé

Ga Button Có Trang danh sách


ga

Giá vé Button Trang danh sách


giá vé
Báo cáo Button Có Trang danh sách
hàng ngày báo cáo

Người Button Có Trang các tài


dùng khoản nhân viên
2. Trang đăng nhập: Cho phép quản trị viên và nhân viên đăng nhập vào hệ thống

Wirefame page đăng nhập

Trường Loại Kiêu dữ Độ dài tối Bắt buộc Mô tả


liệu đa

Tên tài input Chuỗi 50 Có Tên đăng nhập


khoản

Mật khẩu input Chuỗi 30 Có Mật khẩu đăng


nhập

Đi đến button Quay lại trang


trang web chủ

Đăng nhập button Đăng nhập vào


tài khoản
3. Trang thông tin cá nhân: Hiển thị thông tin cá nhân nhân viên

Wirefame page thông tin nhân viên:

Phần từ Loại Kiểu dữ Độ dài Bắt buộc Mô tả


liệu

Tên đầu Label Chuỗi 30 Có Tên nhân


tiên viên

Họ Label Chuỗi 30 có Họ nhân


viên
Tên đăng Label Chuỗi 50 Có Tên đăng
nhập nhập vào
hệ thống

Mật khẩu Label Chuỗi 50 Có Mật khẩu


đăng nhập

Loại người Combo box Chọn chức


dùng danh

Trạm Combo box Chọn nhân


viên làm ở
đâu

4. Trang này cho phép chọn vé và đặt chỗ


5. Trang thông tin đặt vé

Trường Loại Kiểu dữ liệu Độ dài tối đa


Ga xuất phát Label Chuỗi 10
Ga đến Label Chuỗi 50
Hành khách Label Chuỗi 10
Trạng thái Label Chuỗi 10
Số vé Label Chuỗi 10
6. Trang quản lý thông tin khách hàng chuyến tàu, đặt vé. Màn hình cho phép
quản trị viên thêm, cập nhật và xóa thông tin về khách hàng.

Wirefame page hiển thị danh sách khách hàng

Wirefame page hiển thị danh sách địa điểm


Wirefame page cập nhật địa điểm

Các module chính

1. Module Đăng nhập

- Input: Username (string,…) và Password (string,…).

- Output: true/ fale.

- Mô tả chức năng: Cho phép người dùng đăng nhập vào hệ thống.

2. Module Thông tin cá nhân

- Input: username.

- Output: Họ tên, SDT, Email, địa chỉ.

- Mô tả chức năng: Update thông tin của người dùng.

3. Module Tìm kiếm và đặt vé

- Input: Mã vé.

- Output: Mã chuyến bay, Ngày giờ bay, Số ghế, Địa điểm bay, Hạng ghế, Tổng tiền.

- Mô tả chức năng: Cho phép người dùng đã đăng nhập truy xuất được thông tin vé
mình đã đặt.
4. Module tìm kiếm và đặt vé

- Input: Mã vé.

- Output: Mã chuyến bay, Ngày giờ bay, Số ghế, Địa điểm bay, Hạng ghế, Tổng tiền.

- Mô tả chức năng: Cho phép người dùng đã đăng nhập truy xuất được thông tin vé
mình đã đặt.
Chương 2: Phân tích và thiết kế test
2.1 Unit test case
2.1.1 Phương pháp, kỹ thuật
2.1.1.1 Lợi ích

Phát hiện lỗi sớm: Unit Test giúp xác định lỗi ngay từ giai đoạn phát triển ban đầu,
tiết kiệm thời gian và chi phí sửa lỗi sau này.

Cải thiện chất lượng phần mềm: Unit Test giúp đảm bảo chất lượng mã code, nâng
cao độ tin cậy và hiệu quả hoạt động của hệ thống.

Tăng khả năng bảo trì: Unit Test giúp dễ dàng xác định nguyên nhân lỗi và sửa lỗi
nhanh chóng, góp phần nâng cao khả năng bảo trì hệ thống.

2.1.1.2 Áp dụng Unit Test cho quản lý bán vé tàu hỏa

Dưới đây là một số ví dụ về việc áp dụng Unit Test cho các chức năng chính của
hệ thống quản lý bán vé tàu hỏa:

- Kiểm tra chức năng đăng nhập: Xác minh người dùng nhập đúng thông tin tài
khoản và mật khẩu.

- Kiểm tra chức năng tìm kiếm chuyến tàu: Xác minh hệ thống hiển thị chính xác
thông tin về các chuyến tàu theo yêu cầu của người dùng.

- Kiểm tra chức năng đặt chỗ: Xác minh hệ thống đặt chỗ thành công và cập nhật
thông tin chỗ ngồi chính xác.

- Kiểm tra chức năng thanh toán: Xác minh hệ thống xử lý thanh toán an toàn và
chính xác.

- Kiểm tra chức năng quản lý thông tin hành khách: Xác minh hệ thống lưu trữ và
cập nhật thông tin hành khách chính xác.
2.1.2 Danh sách các test case
Danh sách các test case gồm:
- Chỉnh sửa ga
Function Input Output Description

Thêm Thêm trạm Bool Nếu thêm ga thất bại


thì sẽ trả về false,
Hàm này được thực
hiển thị giá trị “Trạm
hiện bởi các thuộc
này đã tồn tại”
tính:

Tên trạm(varchar)

Địa chỉ (varchar)

Sửa Tên trạm(varchar) Bool Hàm có chức năng


sửa tên trạm, địa chỉ
Địa chỉ (varchar)
của trạm đã chọn
trong cơ sở dữ liệu.
Hàm trả về true nếu
cập nhật thành công
dịch vụ vừa sửa, trả
về false nếu có lỗi
xảy ra trong quá
trinh thực hiện

Xóa Tên trạm(varchar) Hàm trả về True nếu


như hệ thống xóa
thành công trạm ra
khỏi cơ sở dữ liệu

Chi tiết Tên trạm(varchar) Array hoăc false Hàm có chức năng
(nếu như hàm trả lấy thông tin chi tiết
Tên trạm của dịch
về giá trị rỗng) của 1 dịch vụ bằng id
vụ cần hiển thị
dịch vụ đó, hàm trả
về một mảng chứa
các thông tin chi tiết
của dịch vụ nếu nó
tồn tại, Hoặc lỗi khi
nó rổng trả về fales

List Mảng chứa danh Hàm có chức năng


sách dịch vụ cập nhật danh sách
các dịch vụ hiển thị
trên danh sách của
admin, hàm trả về
trường dữ liệu:

Tên trạm(varchar):
tên trạm

trạng thái của dịch


vu

- Quản Lý tài khoản:

Function Input Output Description

Thêm tài khoản Hoten(varchar) Bool Hàm có chức năng đăng


ký tài khoản. Nhập vào
Tendangnhap(varchar)
các thông tin cá nhân,
matkhau(varchar) nếu đăng ký thành công
thì trả về giá trí true và
Loại người dùng đưa lên cơ sở dữ liệu và
Trạm ngược lại không thành
công sẽ trả về false.

Sửa thông tin Hoten(varchar) Hàm có chức năng sửa


thông tin người dùng.
Tendangnhap(varchar)
Thông tin được cập nhật
matkhau(varchar) trong cơ sở dữ liệu. Nếu
thay đổi thành công sẽ
Loại người dùng trả về True, ngược lại
Trạm gặp lỗi sẽ trả về False.

Xóa tài khoản Taikhoanid(int) Hàm có chức năng xóa


tài khoản người dùng.
Hệ thông sẽ hiển thị
bảng thông báo xác
nhận.

Thông tin chi tiết Hoten(varchar) Hiển thị các thông tin cá
nhận của khách hàng.
2.2. Integration test case

2.2.1. Phương pháp và kỹ thuật

Phương pháp và kỹ thuật của integration test case được thiết kế để kiểm tra tích
hợp giữa các module hoặc thành phần phần mềm đã được kết hợp với nhau. Dưới đây là
một số phương pháp và kỹ thuật phổ biến trong integration testing:

- Top-down Integration Testing: Phương pháp này bắt đầu từ thành phần cao nhất
trong cấu trúc phần mềm và từ từ tiến xuống các thành phần con. Trong quá trình này,
các thành phần con được thay thế bằng các stub hoặc các dummies để tạo ra một môi
trường giả định. Top-down integration testing giúp phát hiện lỗi ở cấp độ cao trước khi
chúng lan rộng xuống các cấp độ thấp hơn.

- Bottom-up Integration Testing: Ngược lại với top-down integration testing,


phương pháp bottom-up bắt đầu từ các thành phần cấp thấp nhất và từ từ kết hợp chúng
thành các nhóm lớn hơn. Trong quá trình này, các stub hoặc các drivers có thể được sử
dụng để mô phỏng các thành phần chưa hoàn thành. Bottom-up integration testing tập
trung vào kiểm tra các thành phần cấp thấp nhất trước khi chúng được tích hợp vào các
thành phần cao hơn.

- Big Bang Integration Testing: Phương pháp này là việc tích hợp tất cả các thành
phần của hệ thống một cách đồng thời và kiểm tra chúng. Big bang integration testing
thường được sử dụng khi các thành phần đã được phát triển hoàn thành và không cần
phải tích hợp theo thứ tự cụ thể.

- Incremental Integration Testing: Trong phương pháp này, tích hợp được thực hiện
từng bước một, trong đó các thành phần mới được thêm vào hệ thống một cách đồng bộ
và kiểm tra. Incremental integration testing giúp giảm thiểu rủi ro và chú trọng vào việc
kiểm tra tích hợp từng phần một.

- Parallel Integration Testing: Phương pháp này thực hiện tích hợp và kiểm tra các
thành phần đồng thời, thay vì tuần tự như trong các phương pháp khác. Điều này giúp
giảm thời gian kiểm tra và có thể phát hiện ra các lỗi tương tác giữa các thành phần một
cách nhanh chóng.

- Continuous Integration Testing (CI): CI liên tục tích hợp và kiểm tra các thay đổi
mới vào mã nguồn của dự án. Mỗi khi có thay đổi mới được thêm vào kho lưu trữ
(repository), hệ thống sẽ tự động thực hiện quy trình tích hợp và kiểm tra. CI giúp phát
hiện và sửa lỗi ngay khi chúng xuất hiện, đồng thời đảm bảo tích hợp liên tục của các
thành phần.
- Mỗi phương pháp và kỹ thuật này đều có ưu điểm và hạn chế riêng, và sẽ được
chọn lựa dựa trên yêu cầu cụ thể của dự án và tính chất của hệ thống.

2.2.2. Danh sách test case


Wireframe quản trị
Thêm dịch vụ và danh sách các dịch vụ

Các trường dịch vụ

Stt Tên trường Độ dài Kiểu dữ liệu Bắt buộc Ràng buộc
1 Tên trạm 1-30 Varchar có không có ký tự đặc biệt
2 Địa chỉ 1-30 Varchar có Phải là một trong các
giá trị được cho phép
3 Hành động có Khi nào cần sửa chọn
chữ sửa để sửa thông tin,
tương tự xóa cũng vậy
4 Thông tin trạm 1-30 Varchar có Phải là một trong các
giá trị được cho phép
Sửa thông tin dịch vụ

Các trường trên màn hình

STT Tên trường Độ dài Kiểu dữ liệu Ràng buộc Bắt buộc
1 Tên trạm 1-50 Varchar có Tên phải có nghĩa
không chứa ký tự
đặc biệt
2 Địa chỉ 1-6 Varchar có Phải là một trong
các giá trị được
cho phép

xóa dịch vụ

Hiển thị xác nhận xóa thông tin trạm


wirefarme đặt vé :

Các trường trên màn hình


Stt Tên trường Độ dài Kiểu dữ Ràng Bắt buộc
liệu buôc

1 Ngày đặt 1-20 Date Có Không được chọn thời gian


sau hôm nay

2 Số vé 1-20 int Có Phải là một trong các giá trị


được cho phép

3 Nơi xuất phát 1-20 Varchar Có Dữ liệu có sẵn và phải trùng


khớp với giá trị tên đã đăng

4 Nơi đến 1-50 Varchar Có Dữ liệu có sẵn và phải trùng


khớp với giá trị tên đã đăng

5 Loại Khách hàng 1-10 Varchar Có Dữ liệu có sẵn và phải khớp


với thông tin đã đăng ký

6 Số tiền 1-20 int Có Phải là một trong các giá trị


được cho phép

7 xử lý bởi 1-50 Varchar Có Phải là dữ liệu được cho phép


2.3 System test case
2.3.1 Phương pháp, kỹ thuật
System test case (kiểm thử hệ thống) là một phần quan trọng trong quy trình phát
triển phần mềm, giúp đảm bảo rằng hệ thống đáp ứng các yêu cầu và hoạt động chính xác
theo mong đợi. System test case bao gồm việc kiểm tra các chức năng, hiệu suất, bảo
mật, khả năng sử dụng và khả năng tương thích của hệ thống

2.3.1.1 Phương pháp


Có nhiều phương pháp System test case khác nhau, nhưng phổ biến nhất là:

- Kiểm thử hộp đen: Kiểm tra hộp đen tập trung vào việc kiểm tra chức năng của hệ
thống mà không cần biết về cấu trúc bên trong của nó.
- Kiểm thử hộp trắng: Kiểm tra hộp trắng tập trung vào việc kiểm tra cấu trúc bên
trong của hệ thống và đảm bảo rằng nó hoạt động theo đúng thiết kế.
- Kiểm thử dựa trên rủi ro: Kiểm tra dựa trên rủi ro tập trung vào việc xác định và
kiểm tra các rủi ro tiềm ẩn của hệ thống.
- Kiểm thử theo hướng dẫn sử dụng: Kiểm tra theo hướng dẫn sử dụng tập trung vào
việc kiểm tra xem hệ thống có tuân theo hướng dẫn sử dụng hay không.
- Kiểm thử chấp nhận: Kiểm tra chấp nhận được thực hiện bởi người dùng cuối
cùng để đảm bảo rằng hệ thống đáp ứng nhu cầu của họ.

2.3.1.2 Kỹ thuật System test case:

Có nhiều kỹ thuật System test case khác nhau, nhưng phổ biến nhất là:

- Kiểm thử chức năng: Kiểm tra chức năng tập trung vào việc kiểm tra xem hệ
thống có thực hiện đúng các chức năng theo yêu cầu hay không.
- Kiểm thử hiệu suất: Kiểm tra hiệu suất tập trung vào việc đo lường hiệu suất của
hệ thống dưới tải trọng.
- Kiểm thử bảo mật: Kiểm tra bảo mật tập trung vào việc xác định và sửa chữa các
lỗ hổng bảo mật trong hệ thống.
- Kiểm thử khả năng sử dụng: Kiểm tra khả năng sử dụng tập trung vào việc đảm
bảo rằng hệ thống dễ sử dụng và dễ học.

- Kiểm thử khả năng tương thích: Kiểm thử khả năng tương thích tập trung vào việc
đảm bảo rằng hệ thống hoạt động chính xác với các phần cứng, phần mềm và hệ thống
khác.

2.3.1.3 Lựa chọn phương pháp và kỹ thuật:


Việc lựa chọn phương pháp và kỹ thuật System test case phù hợp phụ thuộc vào
nhiều yếu tố, bao gồm:

- Loại hệ thống: Khác nhau giữa hệ thống web, hệ thống di động, hệ thống nhúng,
v.v.
- Kích thước hệ thống: Hệ thống càng lớn, càng cần nhiều kỹ thuật kiểm thử hơn.
- Ngân sách: Chi phí cho các công cụ và tài nguyên kiểm thử.
- Kinh nghiệm của người kiểm thử: Người kiểm thử cần có kiến thức và kỹ năng
phù hợp với phương pháp và kỹ thuật được lựa chọn.

2.3.2 Danh sách các test case


Đặc tả thêm nhân viên
Tên Lê Khắc Chí Dũng
Tên đăng nhập Dung
Mật khẩu 123
Loại Người dùng Nhân viên
Trạm Thanh Hóa
Basic Flow 1. Quản trị viên hệ thống truy cập vào chức năng thêm mới nhân
viên.
2. Hệ thống hiển thị mẫu biểu để điền thông tin cho nhân viên mới.
3. Quản trị viên nhập các thông tin cần thiết như:
Tên Nhân viên
Tên đăng nhập
Mật khẩu
Loại người dùng
Trạm
4. Quản trị viên xem sinh viên sau đó xác nhận và lưu thông tin.
5. Hệ thống lưu trữ sinh viên mới vào cơ sở dữ liệu.
Use Case Name Thêm nhân viên
Actor Quản trị viên hệ thống
Description Cho phép người quản trị hệ thống thêm nhân viên vào hệ thống.
Yêu cầu điền thông tin và các thông tin liên quan khác.
Trigger Quản trị viên hệ thống quyết định thêm mới một sinh viên.
Preconditions 1. Quản trị viên hệ thống đã đăng nhập vào hệ thống quản trị.
2. Hệ thống đã được khởi chạy và hoạt động bình thường.
Đặc tả sửa sinh viên
Tên Lê Khắc Chí Dũng
Tên đăng nhập Dung
Mật khẩu 12345
Loại Người Nhân viên
dùng
Basic Flow 1. Quản trị viên hệ thống truy cập vào chức năng quản lý nhân
viên.
2. Hệ thống hiển thị danh sách các nhân viên hiện có.
3. Quản trị viên chọn nhân viên cần sửa.
4. Hệ thống hiển thị biểu mẫu cho phép quản trị viên chỉnh sửa
thông tin của nhân viên đã chọn.
5. Quản trị viên thực hiện các thay đổi cần thiết.
6. Quản trị viên xác nhận và lưu các thay đổi.
7. Hệ thống cập nhật thông tin mới của nhân viên trong cơ sở dữ
liệu.
Use Case Sửa nhân viên
Name
Actor Quản trị viên hệ thống
Description Cho phép người quản trị hệ thống chỉnh sửa thông tin của nhân
viên đã tồn tại trong hệ thống. Người quản trị hệ thống có thể cập
nhật tất cả thông tin
Trigger Quản trị viên hệ thống quyết định sửa đổi thông tin của nhân viên
đã tồn tại trong hệ thống.
Preconditions 1. Quản trị viên hệ thống đã đăng nhập vào hệ thống quản trị.
2. sinh viên đã tồn tại trong cơ sở dữ liệu.
Đặc tả xoá sinh viên
Use Case Name Xóa nhân viên
Actor Quản trị viên hệ thống
Description Cho phép người quản trị xóa bỏ một nhân viên không còn trong
danh sách. Yêu cầu xác nhận trước khi xóa để tránh xóa nhầm
thông tin quan trọng.
Trigger Quản trị viên hệ thống quyết định xóa bỏ một nhân viên trong
hệ thống.
Preconditions 1. Quản trị viên hệ thống đã đăng nhập vào hệ thống quản trị.
2. Nhân viên cần xóa đã tồn tại trong cơ sở dữ liệu.
Basic Flow 1. Quản trị viên hệ thống truy cập vào chức năng quản lý nhân
viên.
2. Hệ thống hiển thị danh sách các nhân viên hiện có.
3. Quản trị viên chọn nhân viên cần xóa.
4. Hệ thống yêu cầu xác nhận từ quản trị viên trước khi tiến
hành xóa.
5. Quản trị viên xác nhận xóa nhân viên.
6. Hệ thống xóa nhân viên đã chọn khỏi cơ sở dữ liệu.
Alternative N/A
Flows
Postconditions Nhân viên đã được xóa khỏi hệ thống.
Exception Flows Nếu quản trị viên hủy bỏ thao tác xóa nhân viên, hệ thống sẽ
không thực hiện xóa và quay lại trạng thái trước khi xóa.
Special N/A
Requirements
Notes Cần cân nhắc cẩn thận trước khi xóa Nhân viên để tránh xóa
nhầm hoặc gây ra sự cố không mong muốn.

You might also like