lOMoARcPSD|12114775
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐÊỀ
CÔNG NGHỆ PHẦỀN MÊỀM
ĐÊỀ TÀI: Các phương pháp kiểm thử phầần mềầm và Phần tch thiềết
kềế hệ thốếng quản lý thư viện
Sinh viên thực hiện
: NGUYÊỄN TÙNG LẦM
: VŨ ĐỨC MINH
: LÊ HOÀNG SƠN
Giảng viên bộ môn
: Phạm Hôồng Đức
Ngành
: CÔNG NGHỆ THÔNG TIN
lOMoARcPSD|12114775
Chun ngành
: CƠNG NGHỆ PHẦỀN MÊỀM
Lớp
: D15CNPM5
Khóa
: D15
Hà Nội, ngày 11 tháng 11 năm 2022
PHIÊẾU CHẦẾM ĐIỂM
Sinh viên thực hiện:
Họ và tên
Chữ ký
Ghi chú
Chữ ký
Ghi chú
NGUYỄỄN TÙNG LÂM
VŨ ĐỨC MINH
LỄ HOÀNG SƠN
Giảng viên chấấm:
Họ và tên
lOMoARcPSD|12114775
Giảng viên chấấm 1 :
Giảng viên chấấm 2 :
lOMoARcPSD|12114775
LỜI NÓI ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ, đặc biệt là sự
phát triển nhanh chóng của lĩnh vực cơng nghệ thơng tin, cơng nghệ phần mềm
ngày càng đi vào đời sống và được con người khai thác một cách rất hiệu quả biến
nó thành cơng cụ lao động hữu ích và đóng vai trò rất quan trọng trong đời sống xã
hội và là công cụ lao động. Công nghệ phần mềm là một phần quan trọng của lĩnh
vực cơng nghệ thơng tin, nó giúp con người có thể quản lí cơ sở dữ liệu một cách
đơn giản, dễ dàng và nhanh chóng hơn, giúp tiết kiệm được rất nhiều thời gian và
nhân lực. Em thực hiện đề tài đồ án “Các phương pháp kiểm thử phần mềm và
Phân tích thiết kế hệ thống quản lý thư viện” nhằm nâng cao thêm kiến thức và tầm
hiểu biết của mình về lĩnh vực này lĩnh vực cơng nghệ thơng tin nói chung và bộ
mơn thiết kế và quản lý hệ thống nói riêng.
Đặc biệt, trong học kì này. Với niềm hân hạnh và vinh dự khi được thầy Phạm
Hồng Đức là người cố vấn, một người giáo viên tận tâm đã hướng dẫn, góp ý, thảo
luận, giúp em có thể hồn thiện được bài báo cáo này. Trong thời gian được học tập
và thực hành dưới sự hướng dẫn của thầy, thầy giúp chúng em không những tiếp
thu được nhiều kiến thức thực tế và bổ ích, mà cịn được truyền sự say mê và thích
thú với bộ mơn Cơng nghệ phần mềm.
Chúng em đã rất cố gắng hoàn thiện báo cáo với tất cả sự nỗ lực, niềm say mê
và sự thích thú, tuy nhiên, do bước đầu đi vào kiến thức môi trường thực tế, tìm
hiểu và xây dựng đồ án trong một thời gian nhất định, với lượng kiến thức còn hạn
chế, nhiều bỡ ngỡ, nên đồ án “Các phương pháp kiểm thử phần mềm và Phân
tích thiết kế hệ thống quản lý thư viện” chắc chắn sẽ không thể tránh được những
mặt hạn chế và thiếu sót. Chúng em rất mong nhận được sự quan tâm, thơng cảm
và những đóng góp vô cùng quý giá của các thầy cô và các bạn để báo cáo của
chúng em sẽ ngày càng hoàn thiện hơn.
Sau cùng, chúng em xin kính chúc các thầy cô trong Khoa Công Nghệ Thông
Tin dồi dào sức khoẻ, niềm tin vững vàng để tiếp tục thực hiện sứ mệnh cao đẹp
của mình là truyền đạt kiến thức cho thế hệ mai sau. Trân trọng!
lOMoARcPSD|12114775
PHẦN I: CÁC PHƯƠNG PHÁP KIỂM THỬ PHẦN MỀM
1. Khái niệm
- Là sự kiểm tra việc phát triển phần mềm.
- Cơng việc xun suốt q trình phát triển phần mềm.
- Kiểm tra xem sản phầm có đúng với đặc tả khơng,
- Có đáp ứng được nhu cầu của người dùng khơng,
- Có hoạt động hiệu quả khơng.
=> Tức là chú trọng vào việc phát hiện lỗi phân tích, lỗi thiết kế
2. Các phương pháp kiểm thử phần mềm
2.1 Khái niệm về phép thử
- Một phép thử được gọi là thành cơng nếu nó phát hiện ra khiếm khuyết của phần
mềm.
- Phép thử chỉ chứng minh được sự tồn tại của lỗi trong hệ thống chứ không chứng
minh được hệ thống khơng có lỗi.
- Một phép thử (ca thử nghiệm) bao gồm:
+ Tên của mô đun thử nghiệm
+ Dữ liệu vào
+ Dữ liệu ra mong muốn (đúng)
+ Dữ liệu ra thực tế (khi đã tiến hành thử nghiệm)
=> Các ca thử nghiệm nên được thiết kế khi tạo các tài liệu phân tích và thiết kế,
khơng phải khi đã viết xong mã nguồn.
2.2 Thử nghiệm chức năng và thử nghiệm cấu trúc
- Có hai kỹ thuật thử nghiệm tìm khuyết tật:
lOMoARcPSD|12114775
+ Thử nghiệm chức năng
+ Thử nghiệm cấu trúc
2.2.1 Hộp đen – thừ nghiệm chức năng
- Thử nghiệm chức năng (functional testing) còn gọi là thử nghiệm hộp đen
(black box testing)
+ Là sự thử nghiệm sử dụng các ca thử nghiệm được thiết kế dựa trên đặc tả yêu
cầu,
+ Tài liệu người dùng nhằm mục đích pháp hiện ra các khiếm khuyết.
+ Thử nghiệm chức năng nhìn nhận mơ đun được thử nghiệm như là một hộp đen
và chỉ quan tâm đến chức năng (hành vi) của mô đun, tức là kiểm tra xem có hoạt
động đúng với đặc tả hay không.
- Các ca kiểm thử bao gồm:
+ Các trường hợp bình thường và khơng bình thường (dữ liệu khơng hợp lệ…) của
mô đun.
+ Thông thường, không thể thử nghiệm với mọi dữ liệu.
+ Chiến lược chung khi thiết kế dữ liệu thử nghiệm là phân hoạch (dữ liệu) tương
đương.
+ Phân hoạch tương đương chia miền dữ liệu vào ra thành các vùng, mà mỗi vùng
chứa các dữ liệu có cùng hành vi.
+ Do đó, đối với mỗi vùng dữ liệu chỉ cần xây dựng một ca thử nghiệm.
+ Thêm vào đố là các ca sử dụng đối với biên giới của các vùng.
+ Theo kinh nghiệm, các sai sót về lập trình thường sảy ra đối với các dữ liệu
biên.
Ví dụ:
Đối với hàm tính trị tuyệt đối của số nguyên, có thể chia
miền đối số thành 2 vùng:
- vùng dữ liệu ≥ 0
- vùng dữ liệu < 0
lOMoARcPSD|12114775
Do đó các dữ liệu đầu vào để kiếm thử có thể là:
100,
-20,
và số 0.
Ngồi thử nghiệm trên, thơng thường còn cần kiểm tra với các dữ liệu đặc thù như:
- Biên của số trong máy tính (ví dụ -32768, 32767)
- Số 0, số âm, số thập phân
- Khơng có input
- Input ngẫu nhiên
- Input sai kiểu…
- Thử nghiệm chức năng có thể giúp chúng ta:
+ Phát hiện sự thiếu sót chức năng
+ Phát hiện khiếm khuyết
+ Sai sót về giao diện giữa các mô đun
+ Sự không hiệu quả của chương trình
+ Lỗi khởi tạo, lỗi kết thúc
- Thử nghiệm chức năng chỉ dựa trên đặc tả nên:
+ Không thể kiểm thử được các trường hợp không được khai báo trong đặc tả.
+ Không đảm bảo thử hết được các khối mã nguồn của mô đun.
- Thử nghiệm chức năng cũng không phát hiện được các đoạn mã yếu (có khả năng
sinh lỗi với một trạng thái đặc biệt nào đó của hệ thơng) và trong nhiều trường hợp
việc đảm bảo xây dựng đầy đủ các ca thử nghiệm là khó khăn.
Ví dụ: Xét hàm tìm một phần tử trong mảng
lOMoARcPSD|12114775
Function TimX ( X: integer; A: mang; l : integer):
integer;
Đặc tả:
+Tham số nhập:
X: số nguyên cần tìm
A: mảng các số nguyên (bắt đầu chỉ số là 1)
l: chiều dài của mảng
+Kết quả xuất:
= 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
Các bước tiến hành:
Bước 1: Phân lớp. Dựa vào kết quả
- Không tìm thấy (= 0)
- Tìm thấy (≠ 0)
+ chiều dài l = 1
+ chiều dài l > 1
X xuất hiện 1 lần
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
STT
X
A
1
Kết quả
lOMoARcPSD|12114775
1
5
3267
4
0
2
-4
81234
5
0
3
7
7
1
1
4
6
5361
4
1
5
-2
1 -2 8 -2 3
5
2
2.2.2 Hộp trắng – thử nghiệm cấu trúc
Thử nghiệm cấu trúc (structural testing)
- Là sự thử nghiệm dựa trên phân tích chương trình.
- Là xác định đường đi (path) của chương trình (điều khiển) từ input đến output.
- 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ể.
- Tức là đả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 đó.
- Thử nghiệm cấu trúc chú trọng vào phân tích các cấu trúc rẽ nhánh và các
vòng lặp.
- Thử nghiệm cấu trúc xem xét chương trình ở mức độ chi tiết và phù hợp khi kiểm
tra các mô đun nhỏ.
- Thử nghiệm cấu trúc có thể khơng đầy đủ vì kiểm thử hết các lệnh không chứng
tỏ là chúng ta đã kiểm thử hết các trường hợp có thể.
- Có khả năng tồn tại các tổ hợp lệnh khác nhau gây lỗi.
- Ngồi ra, chúng ta khơng thể kiểm thử hết các đường đi đối với các vịng lặp lớn.
Ví dụ:
[1]
Lệnh 1;
[2]
Lệnh 2;
[3]
Downloaded by Vu Vu ()
lOMoARcPSD|12114775
If điều kiện 1 then Lệnh 3;
[4]
Lệnh 4;
[5]
If điều kiện 2 then Lệnh 5
Else Lệnh 6;
[6]
Lệnh 7;
Các con đường thực hiện có thể có:
1->2->3->4->5->7
1->2->3->4->6->7
1->2->4->5->7
1->2->4->6->7
Tóm lại:
Thử nghiệm chức năng và thử nghiệm cấu trúc đều rất quan trọng và chúng
bổ khuyết lẫn nhau.
Downloaded by Vu Vu ()
lOMoARcPSD|12114775
Phần 2.phân tích dữ liệu
qua phần đánh giá trên em xin đưa ra mơ hình quản lý thư viện của Khoa
CNTT như sau:
1.Biểu đồ phân cấp chức năng.
QLTV KHOA
CNTT
XỬ LÝ THÔNG TIN
NHẬP DỮ LIỆU
MƯỢN TÀI LIỆU
NHẬP DL ĐỘC GIẢ
TK/IN/BC
LÀM THẺ THƯ VIỆN
TRẢ TÀI LIỆU
NHẬP TÀI LIỆU
TÌM KIẾM
LẬP PHIẾU MƯỢN
CẬP NHẬT DANH MỤC
BÁO CÁO THEO
YÊU CẦU
Downloaded by Vu Vu ()
lOMoARcPSD|12114775
2.BIỂU ĐỒ LUỒNG:
2.1Cấp khung cảnh:
TT
ĐỘC GIẢ
Kết quả
HTQLTV
Hồi đáp
BPQL
TT yêu cầu
TT
TÀI LIỆU
2.2.Mức đỉnh
TT YC
BPQL
ĐỘC GIẢ
TT
TT HỒI ĐÁP
DM TÀI LIỆU
NHẬP DỮ
LIỆU
CAP NHAT
CAP NHAT
TT
KHO MƯỢN
ĐỘC GIẢ
DM ĐỘC GIẢ
KHO TRẢ
Tài liệu
XỬ LÝ TT
TT
TT
TT
THỐNG KÊ
BÁO CÁO
Downloaded by Vu Vu ()
lOMoARcPSD|12114775
2.3Mức dưới đỉnh:
BPQL
TT
NHẬP DL
ĐỘC GIẢ
ĐỘC GIẢ
TT
TT
DM ĐỘC GIẢ
TT CN
NHẬP TÀI
LIỆU
TT
CẬP NHẬT
DANH
TL MỚI
TÀI LIỆU
DM TÀI LIỆU
TÀI LIỆU PL,CN
BPQL
DM ĐỘC GIẢ
TÌM KIẾM
TT
DM NGƯỜI MƯỢN
QL MƯỢN
TÀI LIỆU
TT
TT
QL TRẢ TÀI
LIỆU
DM NGƯỜI TRẢ
TL CN
TL CN
DM TÀI LIỆU
TT(1)
TT(2)
TT
ĐỘC GIẢ
TT(3)
THẺ TV(PHẠT)
Downloaded by Vu Vu ()
lOMoARcPSD|12114775
ĐỘC GIẢ
ĐO
DM ĐỘC GIẢ
THẺ
TT
ĐỘC GIẢ
LÀM THẺ
THƯ VIỆN
LẬP PHIẾU
MƯỢN
DM NGƯỜI MƯỢN
DM TÀI LIỆU
BPQL
BÁO CÁO
THEO YÊU
TT(1):thông tin trong thẻ thư viện, thông tin về tài liệu muốn đọc,muốn mượn,phiếu yêu cầu...
TT (2): tài liệu được chấp nhận cho mượn, cho đọc...
TT(3):thông tin về các độc giả và tài liệu muốn trả....
TL CN:tài liệu cập nhật: mỗi khi 1 tài liệu được mượn hay được trả thì trong danh mục tài liệu
lại được cập nhật lại
Chú thích:
BPQL: bao gồm nhân viên làm việc tại thư viện, các cấp quản lý thư viện từ trên.
ĐỘC GIẢ: sinh viên, giáo viên, nhân viên ... trong khoa có thẻ thư viện.
Downloaded by Vu Vu ()
lOMoARcPSD|12114775
3.Phân tích về dữ liệu
Xác định các thực thể:
PHIẾU YC
ĐỘC GIẢ
PHIẾU YC
TÀI LIỆU
TÀI LIỆU
ĐỘC GIẢ
Độc giả
phiếu yêu cầu
tài liệu
#mã độc giả
#Số phiếu
#mã tài liệu
Tên độc giả
Mã độc giả
Tên tài liệu
Địa chỉ
Tên độc giả
Nhà XB
Địa chỉ
Tác giả
Mã tài liệu
Năm XB
Tên tài liệu
Nhà XB
Năm XB
Tác giả
Ngày mượn
3.2.Xác định biểu đồ cấu trúc dữ liệu:
Thuộc tính
#số phiếu
Mã độc giả
Tên độc giả
Địa chỉ
1NF
#số phiếu
Mã độc giả
Tên độc giả
Địa chỉ
2NF
#số phiếu
Mã độc giả
Tên độc giả
Địa chỉ
Downloaded by Vu Vu ()
3NF
#số phiếu
Ngày mượn
Mã tài liệu
Mã độc giả
lOMoARcPSD|12114775
Mã tài liệu
Tên tài liệu
Nhà XB
Năm XB
Tác giả
Ngày mượn
Mã tài liệu
Tên tài liệu
Nhà XB
Năm XB
Tác giả
Ngày mượn
Mã tài liệu
Tên tài liệu
Nhà XB
Năm XB
Tác giả
Ngày mượn
Ta có các thực thể sau:
PYC(#số phiếu,MaTL,MaDG,Ngaymuon)
DG(#MaDG,TenDG,Diachi)
TL(#MaTL,TenTL,NhaXB,A\NămXB,Tacgia)
Downloaded by Vu Vu ()
#mã độc giả
Tên độc giả
Địa chỉ
#mã tài liệu
Tên tài liệu
Nhà XB
Năm XB
Tác giả