Tải bản đầy đủ (.pdf) (96 trang)

Luận văn thạc sĩ VNU UET kiểm định phần mềm bằng kỹ thuật hộp đen luận văn ths công nghệ thông tin 1 01 10

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.8 MB, 96 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trương Thị Thu Hà

KIỂM ĐỊNH PHẦN MỀM
BẰNG KỸ THUẬT HỘP ĐEN

LUẬN VĂN THẠC SĨ

Hà nội - 2006

UAN VAN CHAT LUONG download : add


ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trương Thị Thu Hà

KIỂM ĐỊNH PHẦN MỀM
BẰNG KỸ THUẬT HỘP ĐEN

Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ thông tin
Mã số: 1.01.10

LUẬN VĂN THẠC SĨ


HƯỚNG DẪN KHOA HỌC:

PGS TSKH Nguyễn Xuân Huy

Hà nội - 2006

LUAN VAN CHAT LUONG download : add


MỤC LỤC
Trang

Lời cảm ơn
Lời cam đoan
Danh mục các bảng ................................................................................................i
Danh mục các hình vẽ - sơ đồ ........................................................................................ii
Mở đầu..................................................................................................................iv
CHƯƠNG 1: TỔNG QUAN KIỂM ĐỊNH PHẦN MỀM

1.1.

Các mơ hình phát triển phần mềm.....................................................1

1.2.

Chất lượng phần mềm........................................................................6

1.3.

Kiểm định phần mềm..........................................................................12


CHƯƠNG 2: KỸ THUẬT VÀ CHIẾN LƯỢC KIỂM ĐỊNH PHẦN MỀM THEO
TIẾP CẬN HỘP ĐEN

2.1.

Kiểm định phần mềm bằng kỹ thuật hộp đen ...................................20

2.2.

Thiết kế các giai đoạn kiểm định phần mềm theo tiếp cận hộp đen..38

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG KIỂM ĐỊNH

3.1.

Mục tiêu xây dựng kiểm định……………………………………..53

3.2.

Giới thiệu tổng quan phần mềm…………………………………...55

3.3.

Cài đặt và hướng dẫn sử dụng……………………………………….56

3.4.

Chương trình dùng để kiểm định………………………………….62


KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN…………………………………………. 81
TÀI LIỆU THAM KHẢO ……………………………………………………...…83

LUAN VAN CHAT LUONG download : add


LỜI CAM ĐOAN
Tôi xin cam đoan :
1. Đây là công trình nghiên cứu của riêng tơi.
2. Kết quả nêu trong luận văn là trung thực và chưa từng được ai cơng
bố trong bất kỳ cơng trình nào khác.
Tác giả

Trương Thị Thu Hà

LUAN VAN CHAT LUONG download : add


lời cảm ơn
Trong suốt quá trình học tập và thực hiện luận văn, em đà nhận đ-ợc sự
h-ớng dẫn của quý Thầy Cô , cùng sự giúp đỡ động viên của bạn bè và gia đình.
Em xin chân thành cảm ơn quý Thầy khoa Công nghệ thông tin, Tr-ờng
Đại học công nghệ - Đại học Quốc gia Hà nội cùng các Thầy Viện Công nghệ
thông tin - Viện Khoa học và Công nghệ Việt nam đà tận tình giảng dạy và tạo
điều kiện thuận lợi cho em học tập và nghiên cứu trong thời gian học tập tại
tr-ờng.
Lời cảm ơn sâu sắc em xin dành cho Thầy giáo, pgs. tskh Nguyễn Xuân
Huy, Viện Công nghệ thông tin, Viện Khoa học và Công nghệ Việt nam. Trong
thời gian qua, Thầy đà tận tình h-ớng dẫn, chỉ bảo tận tình và truyền đạt những
kiến thức quý báu giúp em thực hiện tốt luận văn này.

Nhân dịp này, em cũng xin gửi lời cảm ơn đến bạn bè đồng nghiệp. Nhất
là những ng-ời thân trong gia đình đà luôn bên cạnh động viên, giúp đỡ em trong
suốt quá trình học tập.
Hà nội ngày 22 tháng 11 năm 2006
Tr-ơng Thị Thu Hà

LUAN VAN CHAT LUONG download : add


DANH MỤC CÁC BẢNG
Trang

Bảng 1.1. Tỷ lệ công việc các giai đoạn phát triển phần mềm..........................14
Bảng 2.1. Kiểm định theo các lớp phân hoạch hợp lệ điểm thi.........................27
Bảng 2.2. Kiểm định theo các lớp phân hoạch hợp lệ điểm thi.........................28
Bảng 2.3. Kiểm định theo các lớp phân hoạch hợp lệ điểm thi.........................28
Bảng 2.4. Kiểm định theo các lớp phân hoạch hợp lệ điểm thi.........................29
Bảng 2.5. Kiểm định theo các lớp phân hoạch hợp lệ điểm thi.........................29
Bảng 2.6. Kiểm định theo các lớp phân hoạch không hợp lệ điểm thi..............30
Bảng 2.7. Kiểm định cho tất cả các lớp phân hoạch điểm thi............................30
Bảng 2.8. Kiểm định cho tất cả các lớp phân hoạch điểm thi…........................31
Bảng 2.9. Kiểm định cho tất cả các lớp phân hoạch điểm thi............................31
Bảng 2.10. Bảng quyết định.................................................................................35
Bảng 2.11. Quan hệ nhân quả thuế thu nhập........................................................36
Bảng 2.12. Bảng quyết định tính thuế thu nhập...................................................37
Bảng 2.13. Minh họa các testcase chương trình sắp xếp.....................................52
Bảng 3.1. Testcase_Bai1....................................................................................63
Bảng 3.2. Testcase_Bai2....................................................................................66
Bảng 3.3. Testcase_Bai3....................................................................................71
Bảng 3.4. Testcase_Bai4....................................................................................77


LUAN VAN CHAT LUONG download : add
i


DANH MỤC CÁC HÌNH VẼ - SƠ ĐỒ
Trang

Hình 1.1. Mơ hình tuần tự tuyến tính...................................................................1
Hình 1.2. Mơ hình làm bản mẫu..........................................................................2
Hình 1.3. Mơ hình RAD.......................................................................................3
Hình 1.4. Mơ hình tăng dần.................................................................................4
Hình 1.5. Một phần tử của mơ hình tiến trình tương tranh..................................6
Hình 1.6. Chi phí cho việc sửa lỗi......................................................................10
Hình 1.7. Các giai đoạn kiểm định.....................................................................16
Hình 1.8. Quy trình chi tiết quá trình kiểm định................................................17
Hình 1.9. Minh họa kiểm định hộp đen.............................................................17
Hình 2.1. Phân hoạch các lớp tương đương.......................................................22
Hình 2.2. Sơ đồ phân hoạch các lớp tương đương điểm thi...............................24
Hình 2.3. Sơ đồ phân hoạch các lớp tương đương theo giá trị biên tổng điểm..25
Hình 2.4. Sơ đồ phân tích giá trị biên cho tập số nguyên X, Y..........................34
Hình 2.5. Đồ thị nhân quả tính thuế thu nhập…................................................37
Hình 2.6. Chiến lược kiểm định ..............…......................................................39
Hình 2.7. Các bước kiểm định...........................................................................39
Hình 2.8. Kiểm định đơn vị (a) và mội trường kiểm định đơn vị......................43
Hình 2.9. Tích hợp Top - down......................................................................…44
Hình 2.10. Tích hợp bottom - up..........................................................................45
Hình 2.11. Sơ đồ tổng quát các giai đoạn kiểm định theo tiếp cận hộp đen....…49
Hình 2.12. Chi tiết các giai đoạn kiểm định theo tiếp cận hộp đen.................…50
Hình 3.1. Cây thư mục lưu bài thi…..................................................................55

Hình 3.2. Các lớp chương trình kiểm định.........................................................56
Hình 3.3. Giao diện ban đầu...............................................................................58

LUAN VAN CHAT LUONG download : add
ii


Hình 3.4. Giao diện nhập bài thi và Testcase.....................................................59
Hình 3.5. Giao diện danh sách thí sinh..............................................................59
Hình 3.6. Giao diện kết quả chấm thi.................................................................60
Hình 3.7. Giao diện kết quả chi tiết...................................................................61
Hình 3.8. Giao diện nhập thêm thí sinh ............................................................61
Hình 3.9. Giao diện nhập thêm Testcase............................................................61

LUAN VAN CHAT LUONG download : add
iii


MỞ ĐẦU
1. Lý do chọn đề tài
Với việc phát triển nhanh chóng của ngành Cơng nghệ thơng tin nói chung và
Cơng nghệ phân mềm nói riêng. Hàng triệu phần mềm đã ra đời nhằm đáp ứng nhu cầu
của khách hàng. Hơn thế nữa, các sản phẩm phần mềm còn giúp cho con người tiết
kiệm tối đa công sức, thời gian, chi phí,… giúp cho cơng việc đạt hiệu quả cao hơn.
Việc phát triển phần mềm cũng ngày càng được hỗ trợ bởi nhiều công cụ tiến
tiến, giúp cho việc xây dựng phần mềm đỡ khó khăn và đáp ứng nhu cầu người dùng
cao hơn. Tuy nhiên, do độ phức tạp của phần mềm, cho nên dù các hoạt động đảm bảo
chất lượng phần mềm nói chung và kiểm định nói riêng ngày càng chặt chẽ và khoa
học, vẫn không đảm bảo được rằng các sản phầm phần mềm đang được ứng dụng
khơng có lỗi. Lỗi vẫn ln tiềm ẩn trong mọi sản phẩm phần mềm và nhiều khi gây ra

những thiệt hại nặng nề về tài chính cũng như ảnh hưởng đến cơng việc.
Vì vậy, kiểm định phần mềm là một bước không thể thiếu của công nghệ phần
mềm bao gồm các bước: phân tích, thiết kế, mã hố, kiểm định và bảo trì. Kiểm định
phần mềm là một quá trình liên tục, xuyên suốt mọi giai đoạn phát triển phần mềm để
đảm bảo rằng phần mềm thoả mãn các yêu cầu thiết kế và các yêu cầu đó đáp ứng các
nhu cầu của người dùng.
Các kỹ thuật kiểm định phần mềm đã, đang được nghiên cứu, và việc kiểm định
phần mềm trở thành qui trình bắt buộc trong các dự án phát triển phần mềm trên thế
giới. Kiểm định phần mềm là một hoạt động rất tốn kém, mất thời gian, và khó phát
hiện được hết lỗi. Vì vậy, việc kiểm định phần mềm địi hỏi phải có chiến lược phù
hợp, một kế hoạch hợp lý và việc thực hiện được quản lí chặt chẽ.
Ở Việt Nam, trong thời gian qua việc kiểm định phần mềm bị xem nhẹ, với
cơng cụ lập trình hiện đại, người ta cảm tính cho rằng khơng kiểm định cũng khơng
sao, nên chưa có nhiều sự quan tâm, nghiên cứu. Những năm gần đây, một số tổ chức
nghiên cứu và phát triển phần mềm đã bắt đầu có những quan tâm hơn đến vấn đề kiểm

LUAN VAN CHAT LUONG download : add
iv


định phần mềm. Tuy nhiên, vấn đề kiểm định phần mềm hầu như vẫn chưa được đầu tư
và quan tâm đúng mức. Nước ta đang trong quá trình xây dựng một ngành cơng nghiệp
phần mềm thì khơng thể xem nhẹ việc kiểm định phần mềm vì xác suất thất bại sẽ rất
cao, hơn nữa, hầu hết các công ty phần mềm có uy tín đều đặt ra u cầu nghiêm ngặt
là nếu một phần mềm khơng có tài liệu kiểm định đi kèm thì sẽ khơng được chấp nhận.
2. Đối tượng và phạm vi nghiên cứu
- Luận văn tập trung nghiên cứu, tìm hiểu, đánh giá các nguyên lý, chiến lược và
kỹ thuật kiểm định phần mềm bằng kỹ thuật hộp đen.
- Áp dụng kỹ thuật kiểm định hộp đen để xây dựng chương trình chấm thi học
sinh giỏi Tin học.

3. Phương pháp nghiên cứu
- Nghiên cứu, tìm hiểu các kỹ thuật, chiến lược kiểm định phần mềm theo kỹ
thuật hộp đen.
- Sử dụng phương pháp kiểm định hộp đen đã nghiên cứu để thiết kế bộ test cho
chương trình cụ thể. Đưa ra tài liệu kế hoạch kiểm định và đặc tả kiểm định;
Xây dựng chương trình thực thi kiểm định.
4. Kết quả nghiên cứu
- Thiết kế các trường hợp kiểm định theo kỹ thuật hộp đen cho một số chương
trình cụ thể.
- Tạo các tài liệu kiểm định (đặc tả trường hợp kiểm định và kết quả kiểm định.)
- Xây dựng chương trình kiểm định chấm bài thi học sinh giỏi Tin học.
5. Ý nghĩa khoa học và thực tiễn của Luận văn
Việc thiết kế các giai đoạn kiểm định phần mềm theo tiếp cận hộp đen có thể
được dùng làm tài liệu tham khảo cho việc kiểm định phần mềm tại một số công ty, cơ
quan, trường học tại Việt nam.

LUAN VAN CHAT LUONG download : add
v


Định hướng người dùng hiểu tầm quan trọng của việc kiểm định phần mềm, để
khái niệm này khơng cịn mang tính lý thuyết mà sẽ là một phần khơng thể thiếu trong
quá trình xây dựng và phát triển phần mềm.
6. Chọn tên đề tài: “Kiểm định Phần Mềm Theo Kỹ Thuật Hộp Đen”
7. Bố cục của Luận văn: Nội dung của Luận văn chia thành 4 chương :
Chương 1: Tổng quan kiểm định phần mềm
Đề cập sơ lược các mô hình phát triển phần mềm, vấn đề chất lượng phần mềm
và tầm quan trọng của việc kiểm định phần mềm, các kỹ thuật kiểm định phần mềm
hay sử dụng.
Chương 2: Kỹ thuật và chiến lược kiểm định phần mềm theo tiếp cận hộp đen

Chương này trình bày các kỹ thuật cơ bản kiểm định phần mềm theo tiếp cận
hộp đen như: xây dựng lớp phân hoạch tương đương, phân tích giá trị biên, kỹ thuật đồ
thị nhân quả, kiểm định so sánh. Để từ đó người đọc có những khái niệm cơ bản nhất
về kiểm định phần mềm theo kỹ thuật hộp đen.
Phần tiếp theo của chương giới thiệu các chiến lược kiểm định phần mềm : kiểm
định đơn vị, kiểm định tích hợp, kiểm định hợp lệ và kiểm định hệ thống.
Nội dung chính của chương này là giúp người đọc có cái nhìn tổng quan khi xây
dựng kiểm định phần mềm bằng kỹ thuật hộp đen theo các giai đoạn: thiết kế các
trường hợp kiểm định, thiết kế giao diện và lập trình các trường hợp kiểm định, thực
hiện các trường hợp kiểm định, kiểm tra và đánh giá kết quả.
Chương 3: Xây Dựng Ứng Dụng Kiểm định
Để minh hoạ cho phần lý thuyết ở trên, chương 3 sẽ trình bày một chương trình
áp dụng kỹ thuật hộp đen để kiểm định bài thi của học sinh trong các kỳ thi học sinh
giỏi Tin học:
- Xây dựng các test case cho từng bài thi.

LUAN VAN CHAT LUONG download : add
vi


- Xây dựng chương trình và giao diện để: đọc vào bài thi của học sinh, thực hiện
các bài thi đó với các testcase đã xây dựng, sau đó so sánh kết quả của bài thi và
kết quả dự kiến của testcase. Đưa ra đánh giá và cho điểm.
- Tổng hợp điểm của từng bài thi để cho kết quả cuối cùng.
Các nội dung chính trong chương 1 và 2 chủ yếu được trình bày lại qua quá
trình đọc và nghiên cứu tài liệu của tác giả với những kiến thức đã được nhiều nhà
khoa học cơng bố. Trong đó phần đóng góp của tác giả là:
-

Hệ thống hóa lại kiến thức theo cách tiếp cận kỹ thuật hộp đen.


-

Từ các chiến lược kiểm định phần mềm nói chung. Tác giả áp dụng để
xây dựng các giai đoạn thiết kế kiểm định phần mềm theo kỹ thuật hộp
đen.

Toàn bộ nội dung chương 3 là kết quả của riêng tác giả với việc xây dựng phần
mềm kiểm thử theo kỹ thuật hộp đen bằng cách thiết kế bộ testcase chấm thi học sinh
giỏi Tin học Toàn quốc.

LUAN VAN CHAT LUONG download : add
vii


CHƢƠNG 1
TỔNG QUAN KIỂM ĐỊNH PHẦN MỀM

Phần đầu của chương giới thiệu sơ lược một số mơ hình cơ bản theo các quy
trình phát triển phần mềm.
Phần tiếp theo đánh giá chất lượng phần mềm qua một số tiêu chí có sẵn. Từ đó
phân tích lý do tại sao phải kiểm định phần mềm, và nhấn mạnh tầm quan trọng của
kiểm định phần mềm trong quy trình phát triển của mỗi phần mềm nói riêng và nhận
thức của những người làm phần mềm nói chung.
1.1. CÁC MƠ HÌNH PHÁT TRIỂN PHẦN MỀM
1.1.1. Phần mềm là gì?
Phần mềm là một (bộ) chương trình được cài đặt trên máy tính nhằm thực hiện
một nhiệm vụ tương đối độc lập và phục vụ cho một ứng dụng cụ thể như việc quản lí
hoạt động của máy tính hoặc áp dụng máy tính trong các hoạt động kinh tế, quốc
phịng, văn hóa, giáo dục, ...

Việc tạo ra một sản phẩm phần mềm phải trải qua nhiều giai đoạn, người ta gọi
là qui trình phát triển phần mềm, bắt đầu từ khi có ý tưởng đến khi đưa ra sản phẩm
phần mềm thực thi. Khối lượng cơng việc trong từng giai đoạn của q trình sản xuất
phần mềm cũng thay đổi theo thời gian.
1.1.2. Các mơ hình phát triển phần mềm [5]
a. Mơ hình tuần tự tuyến tính
Mơ hình tuần tự tuyến tính cịn gọi là vịng đời cổ điển hay mơ hình thác nước.
Kỹ nghệ hệ
thống/ thơng tin
Phân
tích

Thiết
kế

Hình 1.1. Mơ hình tuần tự tuyến tính
Lập
trình

Kiểm
định

Vận
hành

LUAN VAN CHAT LUONG download : add
-1-


Mơ hình tuần tự tuyến tính bao gồm các hoạt động:

- Kỹ nghệ và mơ hình hố hệ thống thơng tin: thiết lập yêu cầu cho mọi phần tử hệ
thống và phân bổ một tập con các yêu cầu đó cho phần mềm.
- Phân tích yêu cầu phần mềm: tiến trình thu thập yêu cầu phần mềm như chức
năng, hiệu năng, giao diện,…lập tư liệu thơng qua việc thăm dị khách hàng.
- Thiết kế: là một tiến trình tập trung vào bốn bước chính: cấu trúc dữ liệu, kiến
trúc phần mềm, biểu diễn giao diện và chi tiết thuật toán. Tiến trình thiết kế mơ tả các
u cầu thành một biểu diễn phần mềm.
- Sinh mã: Thiết kế phải được biên dịch sang ngôn ngữ máy.
- Kiểm định: Việc kiểm định được thực hiện sau khi mã hoá, tiến hành kiểm định
phần mềm để xem xét các chức năng có đúng đặc tả hay không? hoặc để làm lộ ra các
lỗi và đảm bảo dữ liệu vào có cung cấp đúng dữ liệu ra muốn có?
- Hỗ trợ: Trong quá trình sử dụng phần mềm có thể có những thay đổi do khách
quan hoặc chủ quan. Vì vậy, việc bảo trì phần mềm phải áp dụng lại các bước vịng đời
nói trên.
b. Mơ hình bản mẫu
Mơ hình làm bản mẫu bắt đầu với việc thu thập yêu cầu. Người phát triển phần
mềm xác định các mục tiêu tổng thể cho phần mềm thơng qua khách hàng. Sau đó thiết
kế nhanh để đưa ra một bản mẫu với những yêu cầu cơ bản, người dùng đánh giá và bổ
sung để làm mịn các yêu cầu và tiếp tục quá trình xây dựng và điều chỉnh bản mẫu để
đạt được phần mềm đúng theo yêu cầu của khách hàng.
Lắng nghe
khách hàng

Xây dựng/điều
chỉnh bản mẫu

Khách hàng sử
dụng bản mẫu

Hình 1.2. Mơ hình làm bản mẫu


LUAN VAN CHAT LUONG download : add
-2-


c. Mơ hình RAD
RAD là mơ hình tiến trình phát triển phần mềm tăng dần nhấn mạnh vào chu kỳ
phát triển cực ngắn. Cách tiếp cận RAD bao gồm các pha sau đây:
Tổ #3
Mơ hình
hố

Tổ #2

nghiệp vụ
Mơ hình
hố

Tổ #1

Mơ hình
dữ liệu

nghiệp vụ
Mơ hình
hố

Mơ hình
xử lý


Mơ hình
dữ liệu

nghiệp vụ

Sinh ứng
dụng

Mơ hình
xử lý

Mơ hình
dữ liệu

Kiểm định
và quay
vịng

Sinh ứng
dụng

Mơ hình
xử lý

Kiểm định
và quay
vịng

Sinh ứng
dụng

Kiểm định
và quay
vịng

Hình 1.3. Mơ hình RAD

60 – 90 ngày

- Mơ hình hố nghiệp vụ: luồng thơng tin giữa các chức năng nghiệp vụ được mơ hình
hố theo cách trả lời câu hỏi như: thông tin nào được sinh ra? ai sinh ra nó? Ai xử lý
nó?...
- Mơ hình hố dữ liệu: các thông tin được làm mịn thành tập các dữ liệu, các đặc trưng
của từng sự vật được nhận diện và mối quan hệ giữa chúng được xác định.
- Mơ hình hố xử lý: dữ liệu được biến đổi để đạt tới luồng thông tin cần cho việc thực
hiện chức năng nghiệp vụ. Các mô tả xử lý được tạo ra để bổ sung, sửa đổi, xoá bỏ hay
tìm kiếm sự vật dữ liệu.

LUAN VAN CHAT LUONG download : add
-3-


- Sinh ứng dụng: RAD làm việc để dùng lại các cấu phần chương trình hiện có hay tạo
ra các cấu phần chương trình dùng lại được.
- Kiểm định và quay vịng.
d. Mơ hình tiến trình phần mềm tiến hố
Phần mềm, giống như mọi hệ thống phức tạp khác, tiến hoá theo từng thời kỳ
thời gian. Các yêu cầu nghiệp vụ và sản phẩm thường thay đổi khi sự phát triển tiến
hố. Vì vậy, người phát triển phần mềm cần một mơ hình tiến trình đã được thiết kế
tường minh để phù hợp với sản phẩm tiến hoá theo thời gian.
Các mơ hình tiến hố mang tính lặp. Chúng được đặc trưng theo cách thức tạo

khả năng cho người phát triển phần mềm phát triển các phiên bản ngày một hồn thiện
và phù hợp với thời gian.
e. Mơ hình tăng dần
Mơ hình tăng dần là tổ hợp các yếu tố của mơ hình tuần tự tuyến tính và bản
chất lặp của mơ hình bản mẫu.
Mơ hình tăng dần áp dụng các trình tự tuyến tính theo kiểu so le khi thời gian
lịch tiếp diễn. Mỗi trình tự tuyến tính lại tạo ra một “việc tăng” chuyển giao được của
phần mềm.
Kỹ nghệ hệ
thống/ thơng tin
Phân
tích

Tăng 2

Thiết
kế

Lập trình

Thiết kế

Phân
tích

Tăng 3

Tăng 4

Kiểm định


Lập trình

Thiết kế

Phân
tích

Phân
tích

Thiết kế

Vận hành

Kiểm định

Lập trình

Lập trình

Chuyển giao
tăng 1

Chuyển giao
tăng 2

Vận hành

Kiểm định


Kiểm định

Vận hành

Vận hành

Chuyển giao
tăng 3

Chuyển
giao
tăng 4

Hình 1.4. Mơ hình tăng dần

LUAN VAN CHAT LUONG download : add
-4-


Sử dụng mơ hình tăng dần: lần tăng đầu thường là sản phẩm lõi (các yêu cầu cơ
bản). Sản phẩm lõi được khách hàng dùng và đánh giá và lập bản kế hoạch cho lần
tăng tiếp theo. Tiếp tục sửa đổi sản phẩm lõi dựa vào bản kế hoạch và chuyển giao các
tính năng và chức năng phụ. Tiến trình được lặp lại với việc chuyển giao từng phần cho
đến khi sản phẩm hồn chỉnh được tạo ra.
f. Mơ hình xốy ốc
Là mơ hình tiến hố cặp đơi bản chất lặp của mơ hình bản mẫu với các khía
cạnh hệ thống của mơ hình trình tự tuyến tính. Cung cấp tiềm năng cho việc phát triển
nhanh các phiên bản tăng dần của phần mềm. Trong mơ hình xốy ốc, phần mềm được
phát triển thành từng chuỗi các lần đưa ra tăng dần.

Mơ hình xốy ốc được chia thành sáu vùng nhiệm vụ sau đây:
- Trao đổi với khách hàng.
- Lập kế hoạch.
- Phân tích rủi ro.
- Chế tạo.
- Xây dựng và đưa ra.
- Đánh giá của khách hàng.
Khi tiến trình tiến hoá bắt đầu, tổ kỹ nghệ phần mềm đi vịng xốy ốc bắt đầu từ
trung tâm. Mạch đầu tiên quanh xốy ốc có thể làm phát sinh việc phát triển đặc tả sản
phẩm. Các bước tiếp theo quanh xoáy ốc được dùng để phát triển bản mẫu và phát triển
các phiên bản phức tạp dần thêm. Mỗi bước qua vùng lập kế hoạch lại làm nảy sinh
việc điều chỉnh kế hoạch dự án. Chi phí và lịch biểu được điều chỉnh dựa trên phản hồi
được suy ra từ đánh giá của khách hàng.
g. Mơ hình phát triển tương tranh
Mơ hình tiến trình tương tranh có thể được biểu diễn như một chuỗi các hoạt
động kỹ thuật chính, các nhiệm vụ và trạng thái liên kết của chúng.

LUAN VAN CHAT LUONG download : add
-5-


Khơng

Đã phát triển

Hình 1.5.
Một phần tử của mơ
hình tiến trình
tương tranh


Đợi thay đổi

Đã xét duyệt

Đã xét duyệt

Vạch ranh giới

Xong

Mơ hình tiến trình tương tranh định nghĩa ra một loạt các biến cố làm nảy sinh
việc chuyển trạng thái nọ sang trạng thái kia của hoạt động kỹ nghệ phần mềm. Chẳng
hạn, trong các giai đoạn đầu của thiết kế, sự khơng nhất qn trong mơ hình phân tích
được làm lộ ra. Điều này sinh ra biến cố sửa mơ hình phân tích chuyển hoạt động phân
tích từ trạng thái đã làm sang trạng thái đợi thay đổi.
1.2. CHẤT LƢỢNG PHẦN MỀM
1.2.1. Chất lƣợng phần mềm là gì?
Chất lượng trong phần mềm máy tính hiện vẫn cịn là một vấn đề cịn nhiều
tranh luận. Trong một số trường hợp, nói tới chất lượng phần mềm là nói tới tính thực
tiễn và tính thẩm mỹ của phần mềm. Ở đây, khái niệm này trả lời cho câu hỏi một
chương trình máy tính thực thi một nhiệm vụ nào đó hiệu quả và có tính thẩm mỹ tới
mức nào. Trong một ngữ cảnh khác, chất lượng phần mềm được hiểu là sự đáp ứng đến
mức tối đa các yêu cầu đặt ra và khơng chứa lỗi. Trong cả hai trường hợp trên, có một
loạt các vấn đề đặt ra cần giải quyết để đi đến một kết quả cuối cùng là phần mềm có
chất lượng.
1.2.2. Lỗi phần mềm

LUAN VAN CHAT LUONG download : add
-6-



Hiện nay, có rất nhiều định nghĩa khác nhau về lỗi phần mềm, nhưng tóm lại có
thể phát biểu một cách tổng quát như sau: “Lỗi phần mềm là sự khơng khớp nhau giữa
chương trình và đặc tả của nó”.
Như vậy, chúng ta có thể thấy lỗi phần mềm xuất hiện dưới ba hình thức sau:
-

Sai: Sản phẩm được xây dựng khác với đặc tả.

-

Thiếu: Một yêu cầu đã được đặc tả nhưng lại khơng có trong sản phẩm.

-

Thừa: Một u cầu được đưa vào sản phẩm mà khơng có trong đặc tả.
Cũng có trường hợp yêu cầu có thể là một thuộc tính sẽ được người

dùng chấp nhận nhưng khác với đặc tả nên vẫn được coi là có lỗi.
Một hình thức khác cũng được coi là một dạng lỗi, đó là phần mềm khó hiểu,
khó sử dụng, chậm chễ hoặc dễ gây cảm nhận rằng phần mềm hoạt động không đúng.
Nguyên nhân xuất hiện lỗi phần mềm
Suy nghĩ chung của nhiều người lỗi phần mềm là do lập trình. Thực tế, lỗi xuất
hiện nhiều nhất khơng phải do lập trình. Nhiều nghiên cứu đã được thực hiện trên các
dự án từ rất nhỏ tới rất lớn đều cho kết quả giống nhau. Đó là số lỗi gây ra do đặc tả
chiếm phần lớn nhất, khoảng 80%. Trong nhiều trường hợp, đặc tả không được viết ra.
Các nguyên nhân khác có thể do đặc tả khơng đủ cẩn thận, hay thay đổi hoặc do chưa
có sự phối hợp tốt trong tồn nhóm phát triển. Sự thay đổi u cầu của khách hàng
cũng là một nguyên nhân dễ gây ra lỗi phần mềm. Khách hàng thường thay đổi yêu cầu
không mà cần quan tâm đến những tác động sau khi thay đổi yêu cầu như phải thiết kế

lại, lập lại kế hoạch, làm lại những việc đã hoàn thành. Nếu có nhiều sự thay đổi, rất
khó nhận biết hết được phần nào của dự án phụ thuộc và phần nào khơng phụ thuộc
vào sự thay đổi. Vì vậy, lỗi thường rất dễ phát sinh.
Ta xét một ví dụ nhỏ về sự khơng cẩn thận trong đặc tả của bài tốn phân số:
- Với việc đặc tả phi hình thức: Phân số là một cặp t/m, trong đó t là một số nguyên, m
là một số tự nhiên lớn hơn 0; t được gọi là tử số, m được gọi là mẫu số của phân số.

LUAN VAN CHAT LUONG download : add
-7-


- Đặc tả hình thức là đặc tả trong đó sử dụng các ký hiệu tốn học để mơ tả. Một phân
số có thể được mơ tả như sau:
+ Phân số = {(t,m) | t  Z, m  N+}
Trong đó:

(*)

N = {0, 1, 2, 3, 4,...}
N+ = {1, 2, 3, 4,...}
Z = { ±1, ±2, ±3, ±4,...}

+ Phép chia hai phân số: (t1, m1): (t2, m2) = Reduce (t1  m2, t2  m1), trong đó
Reduce(t, m) = (t/d, m/d) với d = gcd (t, m). Hàm gdc là hàm tìm ước số chung lớn
nhất của hai số tự nhiên.
Như vậy, đặc tả phép chia trên mâu thuẫn với đặc tả phân số (*). Chẳng hạn, khi
thực hiện chia hai phân số (1,3):(2,5) = (5,6), thì mẫu số trong trường hợp này lại là
một số âm, không đúng đặc tả.
Trên đây là một ví dụ đơn giản về việc đặc tả sai do khơng cẩn thận. Với các bài
tốn lớn thì việc đặc tả sẽ rất khó và dễ nhầm lẫn, sai sót.

Nguồn gây lỗi lớn thứ hai sau đặc tả là thiết kế. Đây là cơ sở để lập trình viên
dựa vào để thực hiện lập trình. Những thiết kế không hiệu quả hoặc quá phức tạp sẽ
gây rất nhiều khó khăn cho việc lập trình và dẫn đến lỗi. Bản thân các thiết kế nhiều
khi cũng mang lỗi.
Tiếp theo là lỗi do lập trình. Ai cũng có thể mắc lỗi khi lập trình dù đó có là
người giỏi hay kinh nghiệm tới mức nào. Thời kỳ đầu của q trình phát triển của
ngành phần mềm, cơng việc lập trình cịn rất nặng nhọc, do vậy lỗi do lập trình là chủ
yếu. Ngày nay, lập trình chỉ là một phần việc của quá trình phát triển phần mềm, cộng
với sự hỗ trợ của nhiều cơng cụ lập trình cao cấp nên việc lập trình trở nên nhẹ nhàng
hơn dù độ phức tạp của phần mềm lớn hơn rất nhiều. Do đó, lỗi do lập trình gây ra
cũng ít hơn.

LUAN VAN CHAT LUONG download : add
-8-


Tuy vậy, các yếu tố khiến lập trình tạo ra lỗi lại nhiều hơn. Đó là độ phức tạp
của phần mềm, tài liệu nghèo nàn, do đặc tả, thiết kế không hợp lý, sức ép thời gian, bộ
biên dịch phần mềm có lỗi... hoặc chỉ đơn giản là những lỗi “khơng rõ ngun nhân”.
Chi phí cho việc sửa lỗi
Người ta ước tính, bảo trì là phần chi phí chính của phần mềm và kiểm định là
hoạt động có chi phí đắt thứ hai, ước tính khoảng 40% của chi phí trong quá trình phát
triển ban đầu của sản phẩm phần mềm. Kiểm định cũng là phần chi phí chính của giai
đoạn bảo trì do phải tiến hành kiểm định lại những thay đổi trong quá trình sửa lỗi và
đáp ứng yêu cầu của người dùng.
Kiểm định và sửa lỗi có thể được thực hiện tại bất kỳ giai đoạn nào của vịng
đời phần mềm. Tuy nhiên, chi phí cho việc tìm và sửa lỗi sẽ tăng đáng kể theo thời
gian trong quá trình phát triển.
Sự thay đổi một tài liệu yêu cầu khi duyệt lại lần đầu tiên là không đắt nếu
khơng nói là khơng đáng kể. Chi phí sẽ tăng lên nhiều hơn nếu các yêu cầu thay đổi

được đưa ra sau khi đã lập trình. Thay đổi lúc này đồng nghĩa với việc phải viết lại
chương trình.
Việc sửa lỗi sẽ khơng đáng kể nếu người lập trình tự phát hiện lỗi của mình, và
khơng có sự liên quan đến chi phí khác. Họ khơng phải giải thích lỗi cho bất kỳ người
nào trong nhóm. Họ cũng khơng phải nhập lại lỗi đó vào cơ sở dữ liệu lỗi và lưu vết
lỗi. Người kiểm định và người quản lý khơng phải duyệt lại tình trạng lỗi. Và lỗi đó
khơng ảnh hưởng đến cơng việc của người khác trong nhóm dự án.
Nói chung, sửa một lỗi trước khi phát hành một phần mềm rẻ hơn rất nhiều so
với việc khắc phục nó sau khi đã phát hành.
Theo các nghiên cứu của IBM, GTE cho biết, lỗi được phát hiện càng muộn thì
chi phí cho việc sửa lỗi càng lớn. Chi phí tăng theo hàm mũ như sau:

LUAN VAN CHAT LUONG download : add
-9-


Chi phí cho việc sửa lỗi.

Chi phí để sửa lỗi

Hình 1.6.

Đặc tả

Thiết kế

Lập trình

Kiểm định


Phát hành

Chúng ta từng chứng kiến sự cố máy tính Y2K năm 2000. Nguyên nhân là do
việc tiết kiệm bộ nhớ bằng cách biểu diễn năm có 4 chữ số bằng 2 chữ số cuối của năm
mà khơng dự tính được lỗi tiềm ẩn có thể xảy ra mà mấy chục năm sau, thế giới đã
phải lo sợ và tốn nhiều tỉ đô la để khắc phục do dữ liệu ngày tháng có thể bị thay đổi
khi máy tính coi năm 1900 như năm 2000.
1.2.3. Đánh giá chất lƣợng phần mềm
Chất lượng phần mềm có thể được đánh giá theo một số tiêu chí [6] sau:
 Tính dễ hiểu: Phần mềm có tính dễ hiểu phải có mục đích rõ ràng. Mục
đích ở đây khơng đơn thuần chỉ là mục tiêu phần mềm cần đạt được mà hơn thế nữa,
tất cả các thiết kế, các tài liệu hướng dẫn sử dụng phải được trình bày rõ ràng, dễ hiểu.
Một vấn đề đặt ra là cần trả lời câu hỏi rằng phần mềm được đặt trong ngữ cảnh người
dùng nào, chẳng hạn như phần mềm dành cho người dùng bình thường thì cần dễ hiểu
hơn phần mềm dành cho người sử dụng là các kỹ sư phần mềm.
Ví dụ, đối với người dùng, sản phẩm phải có những yếu tố sau:
-

Dễ thao tác.

-

Dễ học và dễ sử dụng.

-

Giao diện phải rõ ràng, dễ hiểu, dễ nhớ.

 Tính hoàn chỉnh: Được đánh giá qua tập các chức năng của sản phẩm. Tập các
chức năng nên thoả mãn các tính chất sau:


LUAN VAN CHAT LUONG download : add
- 10 -


- Tính đối xứng: Nếu có thao tác phát sinh thì cũng có thao tác huỷ bỏ và ngược lại.
- Tính tiêu chuẩn: Sản phẩm cần đạt một số tiêu chuẩn được thừa nhận trên thị
trường hoặc trong khoa học.
 Tính khúc chiết: u cầu đặt ra là khơng có các thông tin dư thừa. Điều này
đặc biệt quan trọng khi bộ nhớ của hệ thống có giới hạn. Vì vậy, việc giảm các dòng
lệnh đến mức tối đa là cần thiết. Tính khúc chiết có thể được nâng lên nhờ việc dùng
chương trình con thay cho các chức năng được xử lí lặp đi lặp lại.
 Tính tƣơng thích: Phần mềm phải có khả năng hoạt động trơn tru, dễ dàng trên
nhiều nền tảng cấu hình máy tính khác nhau.
 Tính nhất quán: Tất cả các ký hiệu, biểu tượng hay thuật ngữ trong chương
trình phải thống nhất.
 Tính dễ bảo trì: Dễ dàng trong việc cập nhật để đáp ứng những u cầu mới.
Vì vậy, để có được đặc tính này, phần mềm phải có những tài liệu hỗ trợ kỹ thuật đầy
đủ chi tiết mà không phức tạp. Có thể thay đổi trong cấu trúc dữ liệu? Nếu một thiết kế
dựa trên chức năng được sửa lại thì có u cầu cấu trúc lại cả chương trình chính hay
chỉ một vài module.
 Tính khả kiểm: Phần mềm cho phép dễ dàng xây dựng các tiêu chuẩn và
trường hợp đánh giá hoạt động của nó. Đây là đặc tính gắn liền với giai đoạn thiết kế,
cho phép việc kiểm định có dễ dàng khơng. Một thiết kế q phức tạp sẽ dẫn đến việc
rất khó khăn trong kiểm tra, đánh giá phần mềm.
 Tính tiện dụng: Điều này được thể hiện rất nhiều qua giao diện Người – Máy.
Thành tố có ảnh hưởng lớn nhất đến đặc tính này của phần mềm chính là giao diện đồ
họa người dùng (Graphical User Interface)
 Tính tin cậy: Phần mềm thực hiện được những chức năng, nhiệm vụ như
mong đợi. Yếu tố thời gian trong đặc tính này rất quan trọng, tức là phần mềm phải

thực thi tốt các yêu cầu đặt ra trong một giới hạn thời gian nhất định nào đó. Hơn nữa,

LUAN VAN CHAT LUONG download : add
- 11 -


chương trình có tránh được các lỗi lặp vơ hạn, kiểm tra lỗi dữ liệu đầu vào hay cung
cấp các điều khiển ngoại lệ khi xảy ra xung đột khơng?
Ngồi ra, sản phẩm có cơ chế bảo mật và bảo vệ các đối tượng do nó quản lý
hoặc phát sinh và bản thân sản phẩm cũng được đặt trong một cơ chế bảo mật nhằm
chống lại sự sao chép trộm hoặc làm biến dạng sản phẩm.
 Tính khoa học: được thể hiện qua các mặt sau:
- Cấu trúc: Sản phẩm được chia thành các đơn vị cân đối, không trùng lặp về mặt
chức năng, các chức năng quan hệ với nhau và tổ hợp để có thể tạo thành chức năng
mới.
- Nội dung: Các thuật toán dựa trên những thành tựu khoa học, có cơ sở và chặt chẽ
về tính khoa học.
- Hình thức và thao tác: Tên của các lệnh phải hợp lý, thể hiện tính logic và phù hợp
với tư duy tự nhiên của con người.
 Tính hiệu quả: Thể hiện qua các tiêu chuẩn sau:
-

Hiệu quả kinh tế, giá trị thu được khi áp dụng sản phẩm.

-

Tốc độ xử lý của sản phẩm được tính bằng tỉ lệ giữa số lượng đối tượng xử lý và
tổng số đơn vị thời gian cần thiết để xử lý đối tượng trên.

-


Giới hạn tối đa của sản phẩm hoặc miền xác định của chương trình được xác
định thơng qua đối tượng mà sản phẩm đó quản lý.

-

Dung lượng tối đa của miền nhớ trong mà chương trình sử dụng.
Phần mềm thỏa mãn được mục đích đặt ra mà khơng làm lãng phí tài nguyên,

tức là tận dụng tối đa bộ nhớ và tốc độ của hệ thống.
1.3. KIỂM ĐỊNH PHẦN MỀM
1.3.1. Kiểm định phần mềm là gì?

LUAN VAN CHAT LUONG download : add
- 12 -


Như đã trình bày ở phần trước. Một phần mềm dù lớn hay nhỏ đều có thể xuất
hiện những lỗi nếu không được kiểm tra và giám sát chặt chẽ các quy trình, có các biện
pháp sửa chữa khắc phục kịp thời tại các khâu đoạn.
Với các lỗi xảy ra với phầm mềm, để phát hiện ra được thì chúng ta phải tổ chức
kiểm định chúng. Do đó, kiểm định phần mềm thường đồng nghĩa với việc tìm ra lỗi
chưa được phát hiện. Tuy nhiên, có nhiều bối cảnh kiểm định khơng bộc lộ ra lỗi. Như
vậy, có thể khái quát rằng: kiểm định phần mềm là quá trình thực thi một hệ thống
phần mềm để xác định xem phầm mềm đó có đúng với đặc tả hay khơng và thực
hiện trong mơi trường như mong đợi hay khơng?[6]
Có rất nhiều phương pháp kiểm định phần mềm. Có những phương pháp tập
trung vào phân tích mã nguồn, như kỹ thuật kiểm định hộp trắng. Có những phương
pháp đi sâu vào các dữ liệu vào và kết quả đầu ra của chương trình như mong muốn,
điển hình là kỹ thuật kiểm định hộp đen.

Tuy nhiên trên thực tế, hệ thống đang thực hiện sẽ khác biệt so với việc duyệt
lại mã nguồn. Thông thường, người thực hiện sẽ thực hiện việc đọc lại và phân tích mã
nguồn, xem xét mã nguồn và tạo các lưu đồ của chương trình với các nhánh mà mã
nguồn có. Chương trình với mã nguồn đó sẽ phải thực hiện được hay nói cách khác nó
là một hệ thống chạy được, bởi hệ thống không chạy được thì việc kiểm định sẽ rất mất
thời gian và tiền bạc.
Ngồi việc phân tích mã nguồn của chương trình ra, người thực hiện sẽ căn cứ
vào các đặc tả , đặc tả chính là căn cứ chủ yếu cho việc kiểm định. Các phần đặc tả chỉ
quan tâm chủ yếu đến yếu tố vào ra chứ khơng tìm hiểu về cấu trúc và nội dung các
thao tác cần thực hiện. Mỗi chương trình được xem như một hộp đen – một bộ biến đổi
có cấu trúc thao tác bị che khuất. Các đặc tả sẽ xác định những hành vi đúng và làm
cho dễ dàng hơn trong việc xác định những hành vi không đúng. Mỗi hành vi không
đúng đó được hiểu chính là một lỗi phần mềm. Từ những lỗi phần mềm phát hiện đó,
người thực hiện sẽ căn cứ trên những hiểu biết của mình và mã nguồn của chương trình
để chẩn đốn ngun nhân phát sinh lỗi, tìm ra các lỗi do lập trình hay mã nguồn xử lý

LUAN VAN CHAT LUONG download : add
- 13 -


×