BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
——————————-
ISO 9001:2015
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh viên : Nguyễn Mạnh Tiền
Giảng viên hướng dẫn: ThS. Nguyễn Trịnh Đông
HẢI PHÒNG – 2018
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
2
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
———————————–
XÂY DỰNG CA KIỂM THỬ TỪ BIỂU ĐỒ LUỒNG DỮ LIỆU
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh viên : Nguyễn Mạnh Tiền
Giảng viên hướng dẫn : ThS. Nguyễn Trịnh Đông
HẢI PHÒNG – 2018
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
3
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
————————————–
NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP
Sinh viên: Nguyễn Mạnh Tiền
Mã SV: 1412101135
Lớp: CT1801 Ngành: Công nghệ thông tin
Tên đề tài: Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
4
LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy giáo, Ths. Nguyễn Trịnh Đông – giảng
viên khoa CNTT đã tận tâm và nhiệt tình hướng dẫn, dạy bảo trong suốt quá
trình học tập và làm đồ án tốt nghiệp. Với sự chỉ bảo của thầy, em đã có những
định hướng tốt trong việc triển khai và thực hiện các yêu cầu trong quá trình
làm đồ án tốt nghiệp. Em xin chân thành cảm ơn sự dạy bảo và giúp đỡ của các
thầy, cô giáo Khoa Công nghệ thông tin – Trường Đại học Dân lập Hải Phòng
đã trang bị cho em những kiến thức cơ bản nhất để em có thể hoàn thành tốt bài
báo cáo này. Do khả năng và thời gian còn hạn chế, kinh nghiệp làm việc thực
tế chưa nhiều nên không tránh khỏi những thiếu sót. Em rất mong nhận được
sự chỉ bảo của các thầy cô và các bạn. Cuối cùng em xin được gửi tới các thầy,
cô và toàn thể các bạn lời chúc sức khỏe, thành thông. Chúc các thầy cô đạt
được nhiều thành tựu trong sự nghiệp trồng người.
Em xin chân thành cảm ơn!
Hải Phòng, ngày 30 tháng 3 năm 2018
Sinh viên
Nguyễn Mạnh Tiền
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
5
MỤC LỤC
LỜI CẢM ƠN ……………………………………………………………………………………………….
1
MỤC LỤC
…………………………………………………………………………………………………….
5
DANH MỤC HÌNH VẼ BẢNG BIỂU ……………………………………………………………..
7
DANH MỤC TỪ VIẾT TẮT
…………………………………………………………………………..
9
MỞ ĐẦU
…………………………………………………………………………………………………….
10
CHƯƠNG 1: KIẾN THỨC CƠ BẢN
…………………………………………………………..
12
1.1 KHÁI NIỆM CƠ BẢN VỀ PHẦN MỀM …………………………………………………
12
1.1.1 Vòng đời phần mềm ………………………………………………………………
12
1.1.2 Quy trình phát triển phần mềm
……………………………………………….
13
a.Mô hình thác nước ………………………………………………………………….
13
b.Mô hình chữ V
……………………………………………………………………….
15
1.2 CHẤT LƯỢNG VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM ……………………..
16
1.2.1 Chất lượng phần mềm
……………………………………………………………
16
1.2.2 Đảm bảo chất lượng phần mềm
………………………………………………
16
1.3 LỖI PHẦN MỀM ……………………………………………………………………………
17
1.3.1 Nguyên nhân gây lỗi phần mềm: …………………………………………….
18
1.3.2 Chi phí cho việc sửa lỗi phần mềm
………………………………………….
18
1.3.3 Quy trình xử lý lỗi phần mềm …………………………………………………
19
1.4 CÁC THUẬT NGỮ VÀ KHÁI NIỆM KIỂM THỬ PHẦN MỀM
……………………..
21
1.4.1 Các thuật ngữ……………………………………………………………………….
22
1.4.2 Khái niệm kiểm thử phần mềm ……………………………………………….
22
1.4.3 Mục tiêu của kiểm thử phần mềm ……………………………………………
23
1.5 NGUYÊN TẮC KIỂM THỬ PHẦN MỀM
……………………………………………….
24
1.6 QUY TRÌNH KIỂM THỬ PHẦN MỀM ………………………………………………….
25
1.7 CÁC PHƯƠNG PHÁP PHÂN TÍCH KIỂM THỬ
……………………………………….
26
1.7.1 Phân tích tĩnh
……………………………………………………………………….
27
1.7.2 Phân tích động ……………………………………………………………………..
27
1.8 CÁC KỸ THUẬT KIỂM THỬ …………………………………………………………….
27
1.8.1 Kỹ thuật kiểm thử hộp đen ……………………………………………………..
27
a.Mục đích của kiểm thử hộp đen ……………………………………………….
28
b.Các phương pháp kiểm thử hộp đen
………………………………………….
28
c.Ưu và nhược điểm ………………………………………………………………….
29
1.8.2 Kỹ thuật kiểm thử hộp trắng …………………………………………………..
29
a.Các phương pháp kiểm thử hộp trắng ……………………………………….
30
b.Ưu điểm và nhược điểm ………………………………………………………….
30
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
6
1.8.3 Kiểm thử hộp xám …………………………………………………………………
31
1.9 CÁC CẤP ĐỘ KIỂM THỬ
…………………………………………………………………
31
1.9.1 Kiểm thử đơn vị
…………………………………………………………………….
32
1.9.2 Kiểm thử tích hợp …………………………………………………………………
33
1.9.3 Kiểm thử hệ thống
…………………………………………………………………
34
a.Kiểm thử chức năng
………………………………………………………………..
36
b.Kiểm thử hiệu năng ………………………………………………………………..
38
c.Kiểm thử bảo mật …………………………………………………………………..
39
1.9.4 Kiểm thử chấp nhận sản phẩm ……………………………………………….
41
1.9.5 Một số cấp độ kiểm thử khác ………………………………………………….
42
1.10 KỸ THUẬT XÁC ĐỊNH CÁC YẾU TỐ TRONG CA KIỂM THỬ …………………
43
1.10.1 Ca kiểm thử
………………………………………………………………………..
43
1.10.2 Một số kỹ thuật xác định ca kiểm thử …………………………………….
44
a. Kỹ thuật phần vùng tương đương
…………………………………………….
44
b. Phân tích giá trị biên
………………………………………………………………
46
c. Bảng quyết định
…………………………………………………………………….
47
CHƯƠNG 2: KỸ THUẬT TẠO CA KIỂM THỬ TỪ BIỂU ĐỒ LUỒNG DỮ
LIỆU
………………………………………………………………………………………..
50
2.1 BIỂU ĐỒ LUỒNG DỮ LIỆU
………………………………………………………………
50
2.2 CÁC THÀNH PHẦN CỦA BIỂU ĐỒ LUỒNG DỮ LIỆU
……………………………..
50
2.2.1 Tiến trình……………………………………………………………………………..
51
2.2.2 Luồng dữ liệu ……………………………………………………………………….
51
2.2.3 Kho dữ liệu
…………………………………………………………………………..
52
2.2.4 Tác nhân ngoài …………………………………………………………………….
52
2.2.5 Tác nhân trong
……………………………………………………………………..
53
2.3 CƠ SỞ SINH RA BIỂU ĐỒ LUỒNG DỮ LIỆU
…………………………………………
54
2.4 PHÂN TÍCH THÔNG TIN TỪ BIỂU ĐỒ LUỒNG DỮ LIỆU …………………………
56
2.5 XÂY DỰNG CA KIỂM THỬ TỪ BIỂU ĐỒ LUỒNG DỮ LIỆU ……………………..
58
CHƯƠNG 3: ỨNG DỤNG KIỂM THỬ VỚI CÔNG CỤ RANOREX
STUDIO
………………………………………………………………………………………..
67
3.1 GIỚI THIỆU RANOREX STUDIO ………………………………………………………
67
3.2 CÁC THÀNH PHẦN CỦA RANOREX STUDIO ……………………………………..
67
3.3 CÀI ĐẶT RANOREX STUDIO…………………………………………………………..
68
KẾT LUẬN …………………………………………………………………………………………………
79
TÀI LIỆU THAM KHẢO
……………………………………………………………………………..
81
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
7
DANH MỤC HÌNH VẼ BẢNG BIỂU
Hình 1-1. Mô hình thác nước ………………………………………………………………..
14
Hình 1-2. Ưu nhược điểm phát triển mô hình thác nước …………………………..
14
Hình 1-3. Mô hình chữ V ……………………………………………………………………..
15
Hình 1-4. Chi phí tìm và sửa lỗi phần mềm …………………………………………….
19
Hình 1-5.Trạng thái của lỗi …………………………………………………………………..
19
Hình 1-6. Quy trình kiểm thử phần mềm ………………………………………………..
25
Hình 1-7. Kiểm thử hộp đen
………………………………………………………………….
27
Hình 1-8. Kiểm thử hộp trắng ……………………………………………………………….
30
Hình 1-9. Các cấp độ kiểm thử
………………………………………………………………
31
Hình 1-10. Kiểm thử phần mềm trong mô hình thác nước trừu tượng ………..
32
Hình 1-11. Kiểm thử giao diện người dùng …………………………………………….
37
Hình 1-12. Kiểm thử luồng nghiệp vụ ……………………………………………………
38
Hình 1-13. Kiểm thử hiệu năng
……………………………………………………………..
39
Hình 1-14. Kiểm thử bảo mật
………………………………………………………………..
41
Hình 1-15. Mẫu ca kiểm thử………………………………………………………………….
43
Hình 1-16. Mẫu bảng quyết định
……………………………………………………………
48
Hình 2-1. Quy trình phát triển biểu đồ luồng dữ liệu
………………………………..
55
Hình 2-2. Biểu đồ dữ liệu mức 0
……………………………………………………………
56
Hình 2-3. Biểu đồ luồng dữ liệu mức 1
…………………………………………………..
57
Hình 2-4. Thiết kế ca kiểm thử
………………………………………………………………
59
Hình 2-5. Một số ca kiểm thử mẫu
…………………………………………………………
63
Hình 2-6. Mẫu minh họa Bug Report
……………………………………………………..
64
Hình 2-7. Quy trình xây dự ca kiểm thử từ biểu đồ luồng dữ liệu
………………
66
Hình 3-1. Cài đặt Ranorex Studio ………………………………………………………….
69
Hình 3-2. Cài đặt Ranorex Studio ………………………………………………………….
69
Hình 3-3. Cài đặt Ranorex Studio ………………………………………………………….
70
Hình 3-4. Cài đặt Ranorex Studio ………………………………………………………….
70
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
8
Hình 3-5. Cài đặt Ranorex Studio ………………………………………………………….
71
Hình 3-6. Cài đặt Ranorex Studio ………………………………………………………….
71
Hình 3-7. Cài đặt Ranorex Studio ………………………………………………………….
72
Hình 3-8. Cài đặt Ranorex Studio ………………………………………………………….
72
Hình 3-9. Màn hình làm việc Ranorex Studio …………………………………………
73
Hình 3-10. Thực hành trên công cụ Ranorex Studio
…………………………………
73
Hình 3-11. Thực hành trên công cụ Ranorex Studio
…………………………………
74
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
9
DANH MỤC TỪ VIẾT TẮT
Stt
Tên viết tắt
Tên đầy đủ
Ý nghĩa
1
IEEE
Institute of Electrical
and
Electronics
Engineers.
Viện kỹ nghệ điện và điện tử.
2
CEF
Common European
Framework.
Là phương thức chuyển mạch do Cisco
phát triển áp dụng cho các dòng
Multiplayer Switch và Router của hãng.
3
WPF
Windows
Presentation
Foundation
Là công nghệ kế tiếp Windows Form
dùng để xây dựng các ứng dụng dành
cho máy trạm chạy hệ điều hành
Windows.
4
SAP
System Application
Programing.
Là chương trình hệ thống dành cho các
doanh nghiệp do IBM phát triển.
5
.NET
.NET Framework
Là một nền tảng lập trình và cũng là một
nền tảng thực thi ứng dụng chủ yếu trên
hệ điều hành Microsoft Windows được
phát triển bởi Microsoft.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
10
MỞ ĐẦU
Phần mềm đóng một vai trò quan trọng trong mọi lĩnh vực của cuộc
sống. Trong đó, kiểm thử phần mềm là một trong những quy trình đảm
bảo phần mềm hoạt động chính xác theo yêu cầu của thiết kế. Do đó, việc
nắm vững kiến thức và rèn luyện các kỹ năng về kiểm thử phần mềm là
một tiêu chí quan trọng đối với sinh viên ngành Công nghệ Thông tin.
Quy trình kiểm thử phần mềm được chia thành nhiều giai đoạn và
nhiều hoạt động khác nhau tùy thuộc vào phần mềm được phát triển dựa
trên các quy trình khác nhau. Dù phần mềm được phát triển theo quy trình
nào thì các bước kiểm thử đều có những giai đoạn giống nhau gồm kiểm
thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, v.v. Các hoạt động của
kiểm thử được tiến hành từ những giai đoạn đầu của quá trình phát triển
phần mềm. Căn cứ vào bản đặc tả yêu cầu phần mềm, người ta có thể xây
dựng các ca kiểm thử và dựa vào đó khi triển khai phần mềm đến đâu thì
hoạt động kiểm thử phần mềm được thực hiện ngay đến đó để kịp thời
phát hiện lỗi trong sản phẩm phần mềm. Khóa luận này, với tên đề tài
“Phương pháp tính toán các ca kiểm thử dựa trên biểu đồ luồng dữ
liệu”, lần lượt trình bày một số khái niệm cơ bản về phần mềm, kiểm thử
phần mềm, các bước xác định ca kiểm thử từ biểu đồ luồng dữ liệu, và sử
dụng công cụ Ranorex Studio trong kiểm thử phần mềm. Nội dung của
khóa luận được trình bày theo cấu trúc dưới đây.
Chương 1: Các khái niệm cơ bản
Chương này cung cấp các kiến thức cơ bản trong lĩnh vực phát triển
phần mềm và kiểm thử phần mềm như các khái niệm về phần mềm,
lỗi phần mềm, quy trình xử lí lỗi phần mềm và khái niệm cơ bản trong
kiểm thử phần mềm.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
11
Chương 2: Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Chương này trình bày các bước phân tích biểu đồ luồng dữ liệu, trên
cơ sở đó xây dựng ca kiểm thử và các thành phần liên quan.
Chương 3: Thực nghiệm với công cụ Ranorex Studio
Ranorex Studio là một công cụ mạnh trong kiểm thử phần mềm cho
ứng dụng Window Forms. Chương này trình bày các bước thực hiện
kiểm thử các ứng dụng với công cụ Ranorex.
Kết luận:
Phần này khóa luận đưa ra những kết quả, hạn chế và hướng phát
triển tiếp theo của đề tài trong tương lai.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
12
CHƯƠNG 1:
KIẾN THỨC CƠ BẢN
Chương này khóa luận trình bày những thuật ngữ và khái niệm cơ bản về
phần mềm, lỗi phần mềm, xử lý lỗi phần mềm và kiểm thử phần mềm.
1.1 Khái niệm cơ bản về phần mềm
Theo IEEE (1991): Phần mềm là các chương trình máy tính kết với các
dữ liệu hoặc các tài liệu hướng dẫn, đặc tả, v.v. thường gồm 4 phần được mô tả
dưới đây:
Chương trình máy tính: Thành phần này giúp cho máy tính thực thi các ứng
dụng được yêu cầu.
Quy trình: Là thành phần xác định trình tự và kế hoạch trong đó các chương
trình được thực hiện, phương pháp sử dụng và những người chịu trách
nhiệm cho các hoạt động của kế hoạch.
Các tài liệu: Có rất nhiều những tài liệu cần thiết với nhân viên phát triển,
người sử dụng và nhân viên bảo trì như: tài liệu thiết kế, tài liệu hướng dẫn
sử dụng, tài liệu hướng dẫn bảo trì.
Dữ liệu: Dữ liệu bao gồm tham số, mã nguồn và các danh sách thích ứng
của phần mềm dành riêng cho người dùng cụ thể là dành cho hoạt động
phần mềm.
1.1.1 Vòng đời phần mềm
Mô hình vòng đời phát triển phần mềm là một loạt các pha (giai đoạn) mà
phần mềm trải qua từ bắt đầu phát triển đến khi phần mềm bị loại bỏ hoàn toàn.
Mô hình vòng đời phát triển phần mềm thường gồm những pha sau:
Pha yêu cầu: là pha đầu tiên trong quá trình xây dựng phần mềm, nhằm xác
định yêu các yêu cầu phải có trong phần mềm giữa nhóm phát triển và khách
hàng.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
13
Pha phân tích: Pha này phân tích các yêu cầu của khách hàng được mô tả
chi tiết kết quả đầu ra, quá trình phát triển phần mềm dưới dạng “tài liệu
đặc tả”.
Pha thiết kế: Pha này căn cứ vào tài liệu đặc tả để mô tả chi tiết cách phần
mềm thực hiện các công việc cụ thể.
Pha lập trình: Pha này là quá trình thực hiện viết chương trình bằng một
ngôn ngữ cụ thể.
Pha kiểm thử hệ thống: Pha này hoạt động sau khi giai đoạn lập trình kết
thúc. Mục đích chính là phát hiện lỗi phần mềm càng nhiều càng tốt để đạt
được chất lượng phần mềm ở mức chấp nhận được sau khi chỉnh sửa.
Pha bảo trì và loại bỏ: Pha này bảo trì sửa lỗi có thể còn xuất hiện trong
chương trình sau khi cài đặt cho khách hàng và cập nhật sửa đổi phần mềm
theo ý khách hàng hoặc thích nghi với điều kiện ràng buộc để nâng cao hiệu
quả làm việc. Nếu chi phí bảo trì quá lớn có thể dẫn đến loại bỏ phần mềm.
1.1.2 Quy trình phát triển phần mềm
Phần mềm được phát triển dựa trên các mô hình để xác định các hoạt động
và quy trình theo trình tự nhất định. Một số mô hình phát triển phần mềm tiêu
biểu sau:
a. Mô hình thác nước
Mô hình thác nước hay còn gọi là mô hình vòng đời truyền thống do tác
giả Royce đề xuất năm 1970. Mô hình này yêu cầu tiếp cận một cách hệ thống,
tuần tự và chặt chẽ đối với việc phát triển phần mềm, bắt đầu ở mức hệ thống và
tiến dần xuống phân tích, thiết kế, mã hóa, kiểm thử, và bảo trì (Hình 1-1) [2].
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
14
Mô hình thác nước là mô hình áp dụng theo tính tuần tự của giai đoạn phát
triển phần mềm. Giai đoạn sau chỉ được thực hiện khi giai đoạn trước được
hoàn thành. Đặc điểm của phát triển phần mềm mô hình thác nước được trình
bày trong Hình 1-2 sau:
Ưu điểm
Nhược điểm
Dễ sử dụng, dễ tiếp cận
Khó quay lại các giai đoạn trước
Các giai đoạn và hoạt động được xác
định chi tiết
Ít tính linh hoạt và phạm vi điều chỉnh
khó khăn, tốn kém
Xác nhận ở từng giai đoạn
Hình 1-2. Ưu nhược điểm phát triển mô hình thác nước
Hình 1-1. Mô hình thác nước
Thu thập
yêu cầu
Phân tích
hệ thống
Lập trình
Kiểm thử
Phát hành
Bảo trì
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
15
b. Mô hình chữ V
Ngoài phát triển phần mềm theo mô hình thác nước, thì mô hình chữ V
cũng khá phổ biến trong các dự án phát triển phần mềm của các công ty.
Mô hình chữ V được thực hiện từ trái qua phải, mô tả dãy các hoạt động
và kiểm thử cơ bản. Mô hình này nêu bật các mức kiểm thử liên quan đến các
pha phát triển phần mềm tương ứng từng giai đoạn.
Đặc điểm phát triển phần mềm theo mô hình chữ V được trình bày trong
Bảng 1-2 sau:
Ưu điểm
Quá trình phát triển và quy trình quản lý có tính tổ chức và hệ thống
Hoạt động tốt cho các dự án có quy mô vừa và nhỏ.
Kiểm tra bắt đầu từ khi bắt đầu phát triển vì vậy sự mơ hồ được xác định
ngay từ đầu.
Dễ dàng quản lý vì mỗi giai đoạn có các mục tiêu và mục tiêu được xác
định rõ ràng.
Yêu cầu nghiệp vụ
Thiết kế hệ thống
Kiểm thử chấp nhận
Kiềm thử hệ thống
Thiết kế kiến trúc
Kiểm thử tích hợp
Thiết kế module
Kiểm thử đơn vị
Tạo mã
Hình 1-3. Mô hình chữ V
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
16
Nhược điểm
Không thích hợp cho các dự án lớn và phức tạp
Không phù hợp nếu các yêu cầu thường xuyên thay đổi.
Không có phần mềm làm việc được sản xuất ở giai đoạn trung gian.
Không có điều khoản cho việc phân tích rủi ro nên có sự không chắc
chắn và có tính rủi ro.
1.2
Chất lượng và đảm bảo chất lượng phần mềm
1.2.1 Chất lượng phần mềm
Theo IEEE (1991):
1. Chất lượng phần mềm là mức độ mà một hệ thống, thành phần hệ
thống hoặc quy trình đáp ứng được đặc tả yêu cầu.
2. Chất lượng phần mềm là mức độ mà hệ thống, thành phần hệ thống
hoặc quy trình, đáp ứng được mong đợi của khách hàng hoặc người
sử dụng.
Theo Pressman: Chất lượng phần mềm là phần mềm phải đáp ứng được
ba yêu cầu sau:
Các yêu cầu chức năng rõ ràng là nhân tố chính quyết định chất
lượng đầu ra của sản phẩm.
Các tiêu chuẩn chất lượng phần mềm sẽ được nói đến trong hợp
đồng.
Các đặc tính cần được đáp ứng trong quá trình phát triển cho dù
không được nói đến rõ ràng trong hợp đồng.
1.2.2 Đảm bảo chất lượng phần mềm
Để đánh giá được chất lượng một phần mềm ngay cả khi nó đang hoạt
động là rất khó, những người khác nhau có thể đánh giá về nó khác nhau.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
17
Theo tác giả Daniel Galin, việc đảm bảo chất lượng phần mềm là một
tập hợp các hành động cần thiết được lên kế hoạch một cách hệ thống để
cung cấp đầy đủ niềm tin rằng quá trình phát triển phần mềm phù hợp để
thành lập các yêu cầu chức năng kỹ thuật cũng như các yêu cầu quản lý
theo lịch trình và hoạt động trong giới hạn ngân sách.
Tuy nhiên, khi đánh giá phần mềm người ta thường đưa ra một số tiêu
chí để nói đến chất lượng tổng thể của phần mềm bao gồm:
Đạt được các mục tiêu thiết kế đề ra của tổ chức: thực hiện được các
chức năng thiết kế cho tổ chức.
Chi phí vận hành là chấp nhận được: chi phí không quá cao so với
lợi ích mang lại.
Đáp ứng được các chuẩn mực của một hệ thống tin: đưa ra thông tin
kịp thời, phù hợp với cho tính sẵn sàng hay kết quả đưa ra đúng chuẩn
với mẫu bảng biểu, số chỉ tiêu, v.v.
Sản phẩm tạo ra có giá trị xác đáng: thông tin đưa ra có ý nghĩa thiết
thực đối với chức năng và quản lý, góp phần nâng cao chất lượng sản
phẩm và dịch vụ của tổ chức.
Bảo trì được: dễ bảo trì, bảo trì không quá tốn kém.
Khả dụng: dễ học và dễ sử dụng.
Mềm dẻo – có khả năng làm thích nghi được: có thể kiểm tra, mở
rộng ứng dụng và phát triển tiếp.
Có tính khả chuyển: có thể chuyển từ môi trường làm việc này sang
môi trường làm việc khác.
1.3 Lỗi phần mềm
Lỗi phần mềm là sự không khớp giữa chương trình và đặc tả của nó. Lỗi
phần mềm được chia thành 3 dạng:
Lỗi sai: sản phẩm phần mềm được xây dựng khác với đặc tả.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
18
Lỗi thiếu: các yêu cầu cầu sản phẩm phần mềm đã có trong đặc tả
nhưng lại không có trong sản phẩm thực tế.
Lỗi thừa: phần mềm trong thực tế có những tính năng không có
trong tài liệu đặc tả.
1.3.1 Nguyên nhân gây lỗi phần mềm:
Lỗi phần mềm có thể đến từ nhiều nguyên nhân khác nhau, trong đó có cả
nguyên nhân chủ quan và các nguyên nhân khách quan. Sau đây là một số
nguyên nhân chủ yếu gây ra lỗi phần mềm:
Lỗi trong giao tiếp giữa khách hàng và nhóm phát triển: nhưng lỗi này
thường xuất hiện ở đầu dự án do hiểu lầm trong giao tiếp giữa nhóm phát
triển và khách hàng khi trình bày bằng lời nói và tài liệu không thống nhất.
Các lỗi thiết kế lôgíc: lỗi xảy ra trong quá trình các chuyên gia thiết kế hệ
thống, kỹ sư phần mềm, các nhà phân tích bỏ sót hay áp dụng thuật toán
sai dẫn đến xây dựng phần mềm sai theo lôgíc.
Các lỗi lập trình: có rất nhiều lý do dẫn đến việc các lập trình viên gây ra
các lỗi lập trình. Ví dụ như: sai sót trong ngôn ngữ lập trình, hiểu sai các
tài liệu thiết kế, v.v.
Các lỗi về tài liệu: các lỗi về tài liệu là vấn đề của nhóm phát triển và bảo
trì khi có những sai sót trong các tài liệu liên quan.
1.3.2 Chi phí cho việc sửa lỗi phần mềm
Việc sửa lỗi phần mềm có thể thực hiện trong bất cứ giai đoạn nào của
vòng đời phần mềm. Tuy nhiên công việc này càng thực hiện sớm càng tốt vì
càng về sau của giai đoạn sau của phần mềm thì chi phí, thời gian cho việc tìm
và sửa lỗi càng tăng. Theo tài liệu của Boehm, chi phí tìm và sửa lỗi phần mềm
tăng theo hàm mũ trong biểu đồ sau:
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
19
1.3.3 Quy trình xử lý lỗi phần mềm
Trước khi giới thiệu về quy trình xử lý lỗi phần mềm, khóa luận trình bày
về các trạng tháng có thể có của lỗi.
Trong đó, các thành phần được giải thích dưới đây.
New: Lỗi mới.
Assigned: Lỗi đã được gán cho nhân viên phát triển.
Resolved: Lỗi đã được xử lý.
Confirmed: Lỗi cần được chứng thực.
Canceled: Lỗi được xác định không phải là lỗi, lỗi bỏ qua được
New
Assigned
Resolved
Cancelled
Next
Accepted
Confirmed
Closed
Đặc tả Thiết kế Lập trình Kiểm thử Phát hành
Chi phí sửa chữa
lỗi
Hình 1-4. Chi phí tìm và sửa lỗi phần
mềm
Hình 1-5.Trạng thái của lỗi
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
20
Next: Lỗi không thuộc phạm vi của dự án hoặc sẽ được xử lý trong giai
đoạn khác của dự án
Accepted: Các lỗi có thể chấp nhận được.
Closed: Trạng thái đóng, lỗi đã được sửa thành công.
Mỗi nhóm phát triển phần mềm sẽ sử dụng một công cụ quản lý lỗi riêng,
nhưng gần như phần đa đều có một quy trình xử lý lỗi phần mềm chung. Theo
đó, quy trình xử lý lỗi có thể bao gồm 6 bước chính:
Bước 1: Phát hiện phần mềm có lỗi.
Bước 2: Đưa lỗi lên hệ thống quản lý lỗi.
Bước 3: Gán lỗi cho nhân viên phát triển.
Bước 4: Xử lý lỗi.
Bước 5: Kiểm thử lại.
Bước 6: Đóng lỗi.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
21
Đơn vị thực hiện
Bước thực hiện
Quản trị dự án
Nhóm kiểm thử
Nhóm giải pháp
Nhóm lập trình
Quản trị dự án
Trưởng nhóm kiểm thử
Trưởng nhóm lập trình
Nhóm lập trình viên
Nhóm kiểm thử
1.4 Các thuật ngữ và khái niệm kiểm thử phần mềm
Tăng năng suất kiểm thử là một nhu cầu thiết yếu để tăng chất lượng phần mềm.
Vì thế nghiên cứu để phát triển các kỹ thuật, công cụ kiểm thử hữu hiệu là đóng góp
thiết thực nhất để tăng cường chất lượng sản phẩm phần mềm.
Xử lý lỗi
Phát hiện lỗi
Bắt đầu
Gán lỗi
Kiểm thử lại
Kết thúc
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
22
1.4.1 Các thuật ngữ
Kỹ thuật kiểm thử phần mềm đã phát triển và tiến hóa hàng mấy chục năm
nên các thuật ngữ trong các tài liệu khác nhau thường không thống nhất và thiếu
tương thích. Các thuật ngữ được trình bày trong khóa luận này dựa vào các
chuẩn được viện phát triển IEEE.
Lỗi (Error): Lỗi là những vấn đề con người mắc phải trong quá trình phát
triển các sản phẩm phần mềm. Khi lập trình viên phạm lỗi trong lập trình, các
lỗi đó là bug( con bọ). Lỗi có thể phát tán. Lỗi là nguyên nhân dẫn đến sai.
Sai (Fault): Sai là kết quả của lỗi. Sai về nhiệm vụ khi xuất hiện khi vào
sai thông tin hoặc sai về bỏ quên xuất hiện khi không vào đủ thông tin. Loại sai
thứ hai khó phát hiện và sửa hơn loại sai thứ nhất.
Thất bại (Failure): Thất bại xuất hiện khi một lỗi được thực thi, nó chỉ
xuất hiện dưới dạng có thể chạy được mà thông thường là mã nguồn.
Sự cố (Incident): Khi thất bại xuất hiện, nó có thể hiện thị hoặc không, tức là
rõ ràng hoặc không rõ ràng đối với những người dùng hoặc kiểm thử viên. Sự cố là
triệu chứng liên kết với một thất bại và thể hiện cho người dùng hoặc kiểm thử
viên về sự xuất hiện của thất bại này.
Kiểm chứng và thẩm định: Kiểm chứng và thẩm định là hai khái niệm
hay sử dụng nhầm lẫn, nhưng thực ra chúng có ý nghĩa khác nhau. Kiểm chứng
là quá trình đảm bảo rằng một số sản phẩm phần mềm thỏa mãn các đặc tả. Còn
thẩm định là quá trình để đảm bảo rằng sản phẩm đáp ứng được yêu cầu của
người dùng.
1.4.2 Khái niệm kiểm thử phần mềm
Cùng với phát triển phần mềm, kiểm thử phần mềm cũng có nhiều định
nghĩa khác nhau được phát biểu bởi nhiều tổ chức hay cá nhân khác nhau. Khóa
luận sẽ trình bày một số định nghĩa nổi bật:
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
23
Theo Myer (1979, Chương 10): “Kiểm thử là quá trình thực thi một
chương trình với mục đích tìm ra lỗi.” Theo như định nghĩa này, quá trình kiểm
thử bao gồm tất cả các hoạt động từ kiểm tra mã nguồn đến chạy thử chương
trình.
Theo IEEE Std 610.12 (IEEE, 1990): Kiểm thử phần mềm là quá trình
phân tích các yếu tố phần mềm để phát hiện những khác biệt giữa chương trình
với các điều kiện yêu cầu và đánh giá các đặc điểm của các yếu tố phần mềm.
Theo Daniell Galin: Kiểm thử phần mềm là một quá trình được tiến hành
bởi một nhóm chuyên viên kiểm thử, trong đó một đơn vị phần mềm, một nhóm
các đơn vị được tích hợp, hoặc cả gọi phần mềm được kiểm tra bằng cách chạy
chương trình trên máy tính. Tất cả các bước kiểm tra liền được tiến hành theo
các quy trình kiểm thử và được thông qua ca kiểm thử.
1.4.3 Mục tiêu của kiểm thử phần mềm
Cũng giống như các sản phẩm máy móc và các hệ thống vật lý, mục đích
của kiểm thử phần mềm là để đảm bảo hệ thống phần mềm có thể làm việc tốt
như mong muốn khi chúng được đem ra thị trường tới tay khách hàng và người
sử dụng. Cách thường dùng để đưa ra những kiểm chứng về chất lượng cho sản
phẩm là đưa sản phẩm vào “chạy thử” hay được kiểm tra trong phòng thí
nghiệm trước khi phân phối sản phẩm ra thị trường. Trong ngành Công Nghệ
Phần Mềm, các sản phẩm phần mềm được kiểm tra, chạy thử được gọi chung
là kiểm thử phần mềm.
Theo Daniel Galin:
Mục tiêu trực tiếp: Kiểm thử phần mềm là phát hiện và xác định càng
nhiều lỗi càng tốt ở các phần mềm được kiểm thử. Tiến hành sửa lỗi ở các phần
mềm được kiểm thử và kiểm thử lại cho đến khi đảm bảo các yêu cầu chất
lượng phần mềm. Kiểm thử là hoạt động cần thiết và hiệu quả trong kế hoạch
và ngân quỹ giới hạn.
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
24
Mục tiêu gián tiếp: Kiểm thử phần mềm nhằm biên dịch bản ghi các lỗi
để nhằm mục đích phòng ngừa và khắc phục lỗi.
1.5 Nguyên tắc kiểm thử phần mềm
Để kiểm thử đạt hiệu quả thì khi tiến hành kiểm thử phần mềm cần phải
tuân thủ một số quy tắc sau:
Quy tắc 1: Kiểm thử đưa ra lỗi
Kiểm thử có thể cho thấy rằng phần mềm đang có lỗi, nhưng không thể
chứng minh rằng phần mềm không có lỗi. Kiểm thử được thực hiện bằng những
kĩ thuật khác nhau. Kiểm thử làm giảm xác suất lỗi chưa tìm thấy vẫn còn trong
phần mềm, ngay cả khi đã kiểm thử nghiêm ngặt phần mềm vẫn có thể còn lỗi.
Vì vậy chúng ta phải tìm được càng nhiều lỗi càng tốt.
Quy tắc 2: Kiểm thử cạn kiệt là không thể
Nguyên tắc này nói rằng kiểm tra mọi thứ trong phần mềm một cách trọn
vẹn là không thể. Kiểm thử với tất cả các kết hợp đầu vào và đầu ra, với tất cả
các kịch bản là không thể trừ phi nó chỉ bao gồm ít trường hợp thì có thể kiểm
thử toàn bộ. Thay vì kiểm thử toàn bộ, việc phân tích rủi ro và dựa trên sự mức
độ ưu tiên chúng ta có thể tập trung việc kiểm thử vào một số điểm cần thiết,
có nguy cơ lỗi cao hơn.
Quy tắc 3: Kiểm thử càng sớm càng tốt
Nguyên tắc này yêu cầu bắt đầu thử nghiệm phần mềm trong giai đoạn
đầu của vòng đời phát triển phần mềm. Các hoạt động kiểm thử phần mềm từ
giai đoạn đầu sẽ giúp phát hiện bug sớm hơn. Nó cho phép chuyển giao phần
mềm theo yêu cầu đúng thời gian với chất lượng dự kiến.
Quy tắc 4: Sự tập trung của lỗi
Thông thường, lỗi tập trung vào những module, thành phần chức năng
chính của hệ thống. Nếu xác định được điều này bạn sẽ tập trung vào tìm kiếm
Đồ án tốt nghiệp Xây dựng ca kiểm thử từ biểu đồ luồng dữ liệu
Nguyễn Mạnh Tiền – Lớp: CT1801 – Ngành Công nghệ thông tin
25
lỗi quanh khu vực được xác định. Nó được coi là một trong những cách hiệu
quả nhất để thực hiện kiểm tra hiệu quả.
Quy tắc 5: Nghịch lí thuốc trừ sâu
Nếu bạn sử dụng cùng một tập hợp các trường hợp kiểm thử liên tục, sau
đó một thời gian các trường hợp kiểm thử không tìm thấy lỗi nào mới. Hiệu
quả của các trường hợp kiểm thử bắt đầu giảm xuống sau một số lần thực hiện,
vì vậy luôn luôn chúng ta phải luôn xem xét và sửa đổi các trường hợp kiểm
thử trên một khoảng thời gian thường xuyên.
Quy tắc 6: Kiểm thử phụ thuộc vào ngữ cảnh
Theo nguyên tắc này thì việc kiểm thử phụ thuộc vào ngữ cảnh và chúng ta phải
tiếp cận kiểm thử theo nhiều ngữ cảnh khác nhau.
Nếu bạn đang kiểm thử ứng dụng web và ứng dụng di động bằng cách sử dụng
chiến lược kiểm thử giống nhau, thì đó là sai. Chiến lược để kiểm thử ứng dụng web
sẽ khác với kiểm thử ứng dụng cho thiết bị di động của Android.
Quy tắc 7: Không có lỗi – Sai lầm
Việc không tìm thấy lỗi trên sản phẩm không đồng nghĩa với việc sản phẩm đã
sẵn sàng để tung ra thị trường. Việc không tìm thấy lỗi cũng có thể là do bộ trường
hợp kiểm thử được tạo ra chỉ nhằm kiểm tra những tính năng được làm đúng theo
yêu cầu thay vì nhằm tìm kiếm lỗi mới.
1.6 Quy trình kiểm thử phần mềm
Tùy vào từng tổ chức, hệ thống, ngữ cảnh, mức độ rủi ro của phần mềm mà quy
trình kiểm thử phần mềm có thể gồm nhiều bước khác nhau. Nhưng nhìn chung mọi
quy trình kiểm thử đều có những bước cơ bản (Hình 1-7) dưới đây:
Lập kế
hoạch kiểm
thử
Chuẩn bị
kiểm thử
Thực thi
kiểm thử
Báo cáo,
phân tích dữ
liệu
Hình 1-6. Quy trình kiểm thử phần mềm