Nghiên cứu ảnh hưởng của lỗi trong giai đoạn bảo trì nhằm hỗ trợ cho kiểm thử hồi quy
Luận văn đã trình bày được năm vấn đề chính: Thứnhất,
cung cấp một cách nhìn tổng quan nhất về tầm quan trọng của vấn
đề bảo trì phần mềm và kiểm thử hồi quy trong giai đoạn hiện nay
nhằm đảm bảo và nâng cao chất lượng phần mềm. Thứ hai, phân
tích mối quan hệ phụ thuộc và những ảnh hưởng của lỗi có thể có
xảy ra giữa các thành phần trong hệ thống phần mềm hướng đối
tượng. Những nguyên nhân chính gây ra lỗi và những lỗi đó sẽ ảnh
hưởng đến những thành phần nào trong phần mềm cũng được đề
cập một cách khá chi tiết trong đề tài. Thứ ba, giới thiệu một số
các thuật toán xác định những ảnh hưởng của lỗi theo các tiêu chí
đặc tảcủa người dùng. Thứtư, trình bày một tập hợp các độ đo về
mức độ ảnh hưởng của lỗi trong hệ thống phần mềm hướng đối
tượng. Cuối cùng, dựa vào thuật toán, thử nghiệm phân tích lỗi vào
trong ứng dụng thực tế để chứng minh tính khả thi của cách tiếp
cận này trong ngành công nghiệp phần mềm.
13 trang |
Chia sẻ: lylyngoc | Lượt xem: 2337 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Nghiên cứu ảnh hưởng của lỗi trong giai đoạn bảo trì nhằm hỗ trợ cho kiểm thử hồi quy, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
TRẦN TIẾN ĐẠO
NGHIÊN CỨU ẢNH HƯỞNG CỦA LỖI
TRONG GIAI ĐOẠN BẢO TRÌ NHẰM HỖ TRỢ CHO
KIỂM THỬ HỒI QUY
Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số : 60.48.01
TĨM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
Đà Nẵng - Năm 2012
2
Cơng trình được hồn thành tại
ĐẠI HỌC ĐÀ NẴNG
Người hướng dẫn khoa học: TS. Nguyễn Thanh Bình
Phản biện 1: TS. Nguyễn Tấn Khơi
Phản biện 2: PGS.TS. Đồn Văn Ban
Luận văn được bảo vệ tại Hội đồng chấm Luận văn
tốt nghiệp thạc sĩ kỹ thuật họp tại Đại học Đà Nẵng vào ngày
03 tháng 03 năm 2012
Cĩ thể tìm hiểu luận văn tại:
• Trung tâm Thơng tin - Học liệu, Đại học Đà Nẵng
• Trung tâm Học liệu, Đại học Đà Nẵng
3
MỞ ĐẦU
1. Lí do chọn đề tài
Kiểm thử là một trong những hoạt động quan trọng trong
tiến trình phát triển phần mềm. Nĩ gĩp một phần rất lớn trong việc
đánh giá chất lượng của một phần mềm và là qui trình bắt buộc
trong các dự án phát triển phần mềm trong nước cũng như trên
thế giới.
Như ta đã biết trong lập trình phần mềm, các thành phần/mơ-
đun mã nguồn cĩ thể được sử dụng chung bởi các chức năng của
phần mềm. Trong giai đoạn bảo trì, tức là phần mềm đã đi vào
hoạt động, giả sử rằng cĩ một lỗi xảy ra tại một chức năng nào đĩ,
lỗi xảy ra tại một chức năng thường do một thành phần/mơ-đun
nào đĩ gây ra. Như vậy, khi thành phần/mơ-đun đĩ lỗi sẽ ảnh
hưởng đến những thành phần/mơ-đun khác cũng như ảnh hưởng
đến các chức năng khác của hệ thống, chức năng ở đây chính là
các chức năng trong đặc tả yêu cầu của người sử dụng. Một khi
xác định được mức độ ảnh hưởng giữa các thành phần/mơ-đun,
việc này sẽ hỗ trợ cho người kiểm thử xác định được các chức
năng nào, hay cụ thể hơn các mơ-đun nào cần phải kiểm thử lại
(bằng cách sử dụng kỹ thuật kiểm thử hồi quy) khi cĩ một mơ-đun
bị lỗi, từ đĩ tái sử dụng các ca kiểm thử phù hợp.
Do đĩ, nhu cầu cĩ được một cơng cụ hỗ trợ biểu diễn mối
quan hệ về sự ảnh hưởng giữa các thành phần/mơ-đun và cơng
thức tính độ đo để đánh giá mức độ ảnh hưởng đĩ nhằm hỗ trợ cho
kiểm thử hồi quy, khi cĩ một mơ-đun bị lỗi trong giai đoạn bảo trì
phần mềm thực sự là cần thiết. Kiểm thử hồi quy là một trong
những loại kiểm thử tốn nhiều thời gian và cơng sức nhất. Tuy
4
nhiên, việc bỏ qua kiểm thử hồi quy là “khơng được phép” vì cĩ
thể dẫn đến tình trạng phát sinh hoặc tái xuất hiện những lỗi
nghiêm trọng, mặc dù ta “tưởng rằng” những lỗi đĩ hoặc khơng cĩ
hoặc đã được kiểm tra và sửa chữa rồi.
2. Mục đích nghiên cứu
Trong giai đoạn bảo trì phần mềm, giả sử cĩ một lỗi xảy ra
tại một thành phần/mơ-đun nào đĩ. Luận văn này được thực hiện
với mục đích xác định tầm ảnh hưởng của lỗi ở thành phần/mơ-
đun đĩ đến các thành phần/mơ-đun khác cũng như ảnh hưởng đến
các chức năng khác của hệ thống.
Đề tài tập trung vào vấn đề bảo trì phần mềm, nghiên cứu kỹ
thuật kiểm thử hồi quy và cơng cụ hỗ trợ biểu diễn mối quan hệ
giữa các thành phần/mơ-đun trong phần mềm sử dụng đồ thị đồ thị
biểu diễn quan hệ. Hơn nữa, đề tài nghiên cứu cơng thức tính độ
đo để đánh giá mức độ ảnh hưởng của lỗi dựa vào các quan hệ
trong đồ thị này. Trên cơ sở đĩ, đề tài xác định được những ảnh
hưởng của lỗi.
Sau khi đã tìm hiểu các vấn đề lý thuyết trên, tơi sẽ tiến
hành xây dựng cơng cụ hỗ trợ biểu diễn mối quan hệ về sự ảnh
hưởng giữa các thành phần/mơ-đun và cơng thức tính độ đo để
đánh giá mức độ ảnh hưởng nhằm hỗ trợ cho kiểm thử hồi quy
trong giai đoạn bảo trì.
3. Đối tượng và phạm vi nghiên cứu
4. Ý nghĩa khoa học và thực tiễn của đề tài
5. Cấu trúc của luận văn
Luận văn được tổ chức thành 3 chương như sau:
5
Chương 1: Nghiên cứu tổng quan: Chương này giới thiệu
cơ sở lý thuyết về nghiên cứu và phân tích ảnh hưởng của lỗi trên
phần mềm hướng đối tượng. Chương này cung cấp các thơng tin
về bảo trì phần mềm, kiểm thử hồi quy và phân tích ảnh hưởng của
lỗi cũng như những khĩ khăn gặp phải khi phân tích ảnh hưởng
của lỗi trong các hệ thống hướng đối tượng. Chương này định rõ
phạm vi nghiên cứu của đề tài và mơ tả ngắn gọn những kết quả
nghiên cứu được.
Chương 2: Ảnh hưởng của lỗi trong giai đoạn bảo trì
phần mềm: Chương này mơ tả các khái niệm về ảnh hưởng của
lỗi, những nguyên nhân căn bản phát sinh ra lỗi khi phần mềm
được đưa vào sử dụng, các kiểu ảnh hưởng của lỗi, các thuật tốn
xác định ảnh hưởng và cuối cùng là các độ đo về ảnh hưởng của
lỗi giữa các thành phần/mơ-đun.
Chương 3: Thử nghiệm phân tích lỗi trong các ứng
dụng: Chương này đề tài đi sâu vào giới thiệu một phương pháp
thử nghiệm xác định ảnh hưởng của lỗi. Luận văn này tập trung
vào hai hướng chính: phương pháp xác định những ảnh hưởng của
lỗi xảy ra bên trong một lớp và giữa các lớp với nhau bằng các ví
dụ minh họa. Mục 3.1. mơ tả những ảnh hưởng của lỗi xảy ra bên
trong một lớp, ở đĩ các thành phần/mơ-đun bên trong lớp khơng
cĩ mối quan hệ phụ thuộc với nhau. Mục 3.2. mơ tả những ảnh
hưởng của lỗi xảy ra bên trong một lớp, nhưng ở đĩ các thành
phần bên trong lớp cĩ mối quan hệ phụ thuộc với nhau. Mục 3.3
trình bày những ảnh hưởng của lỗi xảy ra giữa các lớp với nhau.
Cuối cùng, mục 3.4 áp dụng phương pháp thử nghiệm phân tích lỗi
vào ứng dụng trong thực tiễn.
6
CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN
Luận văn nhắm đến vấn đề nghiên cứu và phân tích ảnh
hưởng của lỗi trên phần mềm hướng đối tượng. Chương 1 cung
cấp các thơng tin về bảo trì phần mềm, kiểm thử hồi quy và phân
tích ảnh hưởng của lỗi cũng như những khĩ khăn gặp phải khi
phân tích ảnh hưởng của lỗi của các hệ thống hướng đối tượng.
Chương này định rõ phạm vi nghiên cứu của đề tài và mơ tả ngắn
gọn những kết quả nghiên cứu được.
1.1. Tổng quan về bảo trì phần mềm
1.1.1. Khái niệm
Khái niệm bảo trì phần mềm cĩ thể được hiểu như sau: Bảo
trì phần mềm bao gồm điều chỉnh các lỗi mà chưa được phát hiện
trong các giai đoạn trước của chu kỳ sống của một phần mềm,
nâng cấp tính năng sử dụng và an tồn vận hành của phần mềm.
Bảo trì phần mềm cĩ thể chiếm đến 65%-75% cơng sức trong chu
kỳ sống của một phần mềm.
1.1.2. Mục đích của bảo trì phần mềm
Mục đích của giai đoạn bảo trì phần mềm là giữ cho phần
mềm được cập nhật khi mơi trường thay đổi và yêu cầu người sử
dụng thay đổi bằng cách:
- Mở rộng và đáp ứng yêu cầu ngày càng tăng của
khách hàng.
- Làm cho phần mềm dễ sử dụng hơn, hiệu quả hơn.
- Cĩ thể ứng dụng cơng nghệ mới hơn cho phần mềm.
7
1.1.3. Phân loại bảo trì phần mềm
Bảo trì phần mềm cĩ thể được phân chia thành 3 giai đoạn
cơ bản như sau: giai đoạn hiệu chỉnh, giai đoạn hồn thành và giai
đoạn cập nhật. Ở giai đoạn hiệu chỉnh, những lỗi sau đây sẽ cĩ ảnh
hưởng lớn đến hệ thống, gây ra lỗi khi xử lý dữ liệu và thực thi các
chức năng trên hệ thống: Lỗi thiết kế, lỗi logic và lỗi lập trình.
1.1.4. Hạn chế của việc bảo trì phần mềm
Một số những lý do mà ngành bảo trì phần mềm chưa phát
triển:
- Bảo trì phần mềm thường khơng phải mối quan tâm
chính trong thiết kế và thực thi chương trình.
- Phần lớn cơng tác bảo trì đã bị bỏ qua trong lĩnh vực
nghiên cứu cơng nghệ phần mềm.
- Hoạt động bảo trì khơng được hiểu đúng và thường bị
xem nhẹ.
1.1.5. Phương pháp tiếp cận hướng đối tượng trong bảo trì phần
mềm
1.2. Kỹ thuật kiểm thử hồi quy
1.2.1. Khái niệm
Phân tích và kiểm thử hồi quy là một tiến trình được áp
dụng sau khi cĩ một lỗi nào đĩ xảy ra trong giai đoạn bảo trì phần
mềm khi phần mềm được đưa vào sử dụng.
1.2.2. Kỹ thuật phân tích và kiểm thử hồi quy
Trong quá trình bảo trì phần mềm, giả sử rằng cĩ một (hoặc
một vài lỗi) xảy ra tại một thành phần/mơ-đun nào đĩ. Thực tế cho
thấy rằng, việc kiểm thử lại tồn bộ hệ thống phần mềm sẽ mất rất
8
nhiều thời gian và chi phí tốn kém, đặc biệt là các hệ thống lớn. Do
đĩ, sử dụng kỹ thuật phân tích và kiểm thử hồi quy, chúng ta chỉ
cần kiểm thử lại những thành phần/mơ đun chịu ảnh hưởng của lỗi,
từ đĩ giúp giảm được thời gian và chi phí kiểm thử.
1.2.3. Phân loại kỹ thuật kiểm thử hồi quy
1.2.3.1. Kỹ thuật kiểm thử tồn bộ
1.2.3.2. Kỹ thuật kiểm thử hồi quy lựa chọn
1.2.4. Ý nghĩa kỹ thuật kiểm thử hồi quy
Trước tiên cần khẳng định rằng kỹ thuật kiểm thử hồi quy
khơng phải là một mức kiểm tra như: Kiểm thử đơn vị, kiểm thử
chức năng, kiểm thử hệ thống và kiểm thử tiếp nhận. Nĩ đơn thuần
kiểm tra lại phần mềm sau khi cĩ một sự thay đổi xảy ra (thay đổi
mã nguồn) để bảo đảm phiên bản phần mềm mới (bao gồm các
thành phần được sửa đổi trong phần mềm) thực hiện tốt các chức
năng như phiên bản cũ và sự thay đổi khơng gây ra lỗi mới trên
những chức năng vốn đã làm việc tốt. Kỹ thuật kiểm thử hồi quy
cĩ thể thực hiện tại mọi mức kiểm tra ở trên.
1.2.5. Mối quan hệ giữa bảo trì phần mềm và kiểm thử hồi quy
Bảo trì phần mềm là một hoạt động trong đĩ bao gồm việc
cải tiến, sửa chữa lỗi, tối ưu hĩa và loại bỏ những đặc tính dư thừa
của phần mềm. Những việc sửa đổi này cĩ thể làm cho phần mềm
làm việc khơng đúng và cĩ thể ảnh hưởng đến các thành phần khác
của hệ thống. Do đĩ, để ngăn chặn điều này, kỹ thuật kiểm thử hồi
quy được thực hiện. Kiểm thử hồi quy được sử dụng để kiểm thử
lại những chức năng của phần mềm được chỉnh sửa. Kiểm thử hồi
quy là một quá trình rất tốn kém, ở đĩ bộ kiểm thử được thực thi,
9
đảm bảo rằng khơng phát sinh lỗi mới trên những thành phần/mơ-
đun được kiểm thử trước đĩ.
1.3. Phân tích ảnh hưởng của lỗi trong giai đoạn bảo trì
phần mềm
1.3.1. Tiến trình hoạt động khi phát sinh lỗi
1.3.2. Phân tích ảnh hưởng của lỗi
1.3.2.1. Khái niệm phân tích ảnh hưởng của lỗi
1.3.2.2. Quá trình phân tích ảnh hưởng điển hình
Phương pháp điển hình nhất về quá trình phân tích ảnh
hưởng của lỗi được minh họa trong hình sau đây:
Hình 1.1. Quá trình phân tích ảnh hưởng điển hình
Như vậy, việc phân tích ảnh hưởng của một sự thay đổi/lỗi
cĩ thể được chia thành các giai đoạn sau đây:
10
- Giai đoạn 1: Chuyển đổi các đề xuất thay đổi, những
giả định về các lỗi cĩ thể xảy ra ở các thành phần/mơ-
đun được sửa đổi vào một hệ thống đặc tả lỗi.
- Giai đoạn 2: Trích xuất thơng tin từ nguồn thơng tin
thu thập được và đưa vào kho lưu trữ thơng tin.
- Giai đoạn 3: Tính tốn những ảnh hưởng của lỗi cĩ
thể xảy ra đến các thành phần/mơ-đun khác trong hệ
thống khi cĩ một thành phần/mơ đun nào đĩ phát sinh
lỗi. Thực hiện giai đoạn 1-3 một lần nữa để hồn thành
những đề xuất thay đổi khác.
- Giai đoạn 4: Xây dựng dự tốn tài nguyên, dựa trên
những xem xét như kích thước và độ phức tạp phần
mềm.
- Giai đoạn 5: Phân tích chi phí và lợi ích của các yêu
cầu thay đổi, trong cùng một cách như đối với một
ứng dụng mới.
- Giai đoạn 6: Người quản lý dự án tư vấn cho người sử
dụng những tác động của yêu cầu thay đổi trong vấn
đề cơng việc chứ khơng phải là về vấn đề kỹ thuật,
giúp họ ra quyết định cĩ tiếp tục với sự thay đổi hay
khơng.
1.3.2.3. Lợi ích của việc phân tích ảnh hưởng của lỗi
1.3.2.4. Hạn chế khi phân tích ảnh hưởng của lỗi
1.4. Hướng nghiên cứu của đề tài
Các câu hỏi đặt ra được trả lời trong đề tài này:
11
- Các lỗi xảy ra cĩ những ảnh hưởng gì đến hệ thống
phần mềm?
- Ảnh hưởng của lỗi từ thành phần/mơ-đun này đến
thành phần/mơ-đun khác như thế nào?
- Độ lớn của những ảnh hưởng đĩ? Nếu ta cĩ nhiều giải
pháp bảo trì khi hệ thống phần mềm cĩ lỗi thì làm sao
để xác định giải pháp nào là cĩ chi phí và hiệu quả tốt
nhất?
- Khi cĩ lỗi xảy ra thì khả năng ảnh hưởng nhỏ nhất và
lớn nhất của lỗi đĩ đến hệ thống phần mềm là gì? Biểu
diễn mối quan hệ về sự ảnh hưởng giữa các thành
phần/mơ-đun và độ đo về sự ảnh hưởng đĩ như thế
nào?
Hướng giải quyết của đề tài:
- Phân tích hệ thống phần mềm một cách tự động, và
lưu lại các mối quan hệ giữa các thành phần/mơ-đun
trong một đồ thị mối quan hệ giữa các thành phần. Các
nút sẽ đại diện cho các loại đối tượng khác nhau
(thành phần/mơ-đun) và các cạnh được đặt trọng số
cho mối quan hệ của các đối tượng này. Các loại quan
hệ khác nhau sẽ cĩ các độ đo về những ảnh hưởng của
lỗi là khác nhau.
- Đề xuất một mơ hình tác động để mơ tả các thuộc tính
của quá trình phân tích ảnh hưởng của lỗi.
12
- Trình bày các thuật tốn để lấy thơng tin từ đồ thị và
tính tốn những ảnh hưởng cĩ tính chất bắc cầu của
lỗi. Các loại quan hệ khác nhau trong hệ thống sẽ ảnh
hưởng đến kết quả tác động theo những cách khác
nhau.
- Xây dựng độ đo để đo những ảnh hưởng của lỗi đối
với phần mềm hướng đối tượng.
- Giới thiệu phương pháp thử nghiệm phân tích lỗi trong
các ứng dụng để kiểm tra thuật tốn và đánh giá tính
thực tiễn của cách tiếp cận.
1.5. Kết chương
Bảo trì phần mềm được xem như là giai đoạn tốn kém nhất
và khĩ khăn nhất trong vịng đời phát triển phần mềm. Hiểu được
tầm quan trọng ấy, chương 1 đã cho chúng ta thấy được một cách
nhìn tổng quan nhất về cơng tác bảo trì phần mềm trong giai đoạn
hiện nay và nĩ được xem là một nghệ thuật hơn là một kỹ năng về
kỹ thuật/chuyên mơn.
Một vấn đề nữa cĩ tầm quan trọng khơng kém được giới
thiệu trong chương này là kỹ thuật kiểm thử hồi quy. Kỹ thuật
kiểm thử hồi quy đĩng một vai trị quan trọng trong hoạt động bảo
trì phần mềm nhằm đạt được sự tin cậy trong suốt quá trình phần
mềm được sửa đổi. Nĩ là một bộ phận cần thiết trong quá trình
kiểm thử nhằm đảm bảo chất lượng phần mềm. Hơn nữa, kiểm thử
hồi quy cịn là một hoạt động quan trọng trong việc phát triển phần
mềm hướng đối tượng. Vì vậy, chúng ta thấy rằng, cơng tác bảo trì
13
phần mềm và kiểm thử hồi quy luơn cĩ một mối quan hệ chặt chẽ với
nhau.
Cuối cùng, chương này cung cấp cho chúng ta một số thơng
tin rất bổ ích về vấn đề phân tích ảnh hưởng của lỗi trong giai đoạn
bảo trì phần mềm. Để cơng việc bảo trì được hiệu quả thì việc
quản lý đầu vào trong quá trình bảo trì phần mềm là rất quan trọng.
Quản lý lỗi và phân tích ảnh hưởng của lỗi là hai bước đầu tiên
trong quá trình bảo trì. Quá trình bảo trì chỉ cĩ thể tối ưu và đạt
hiệu quả cao nếu ta cĩ được những thơng tin chính xác và rõ ràng
về lỗi cũng như ảnh hưởng của lỗi đĩ đến các thành phần/mơ-đun
khác trong phần mềm khi một thành phần nào đĩ bị lỗi. Như vậy ta
thấy rằng, bảo trì phần mềm, phân tích ảnh hưởng của lỗi và kiểm
thử hồi quy luơn cĩ một mối quan hệ phụ thuộc lẫn nhau.
14
CHƯƠNG 2: ẢNH HƯỞNG CỦA LỖI TRONG
GIAI ĐOẠN BẢO TRÌ PHẦN MỀM
Chương 2 tập trung vào các vấn đề về ảnh hưởng của lỗi
như: các kiểu ảnh hưởng của lỗi, mối quan hệ phụ thuộc giữa các
thành phần/mơ-đun, những nguyên nhân căn bản phát sinh ra lỗi
khi phần mềm được đưa vào sử dụng và những lỗi đĩ ảnh hưởng
đến những thành phần nào trong phần mềm. Mặt khác, các thuật
tốn xác định ảnh hưởng và độ đo về mức độ ảnh hưởng của lỗi
giữa các thành phần/mơ-đun cũng được giới thiệu một cách khá
chi tiết trong chương này.
2.1. Các vấn đề về ảnh hưởng của lỗi
2.1.1. Khái niệm lớp
2.1.2. Tiêu chí về lỗi
2.1.3. Tập hợp các kiểu ảnh hưởng của lỗi
2.1.3.1. Ảnh hưởng trực tiếp của lỗi
2.1.3.2. Ảnh hưởng gián tiếp của lỗi
2.1.4. Mối quan hệ phụ thuộc giữa các thành phần/mơ-đun
Một mối quan hệ phụ thuộc trong một hệ thống phần mềm
là một mối quan hệ trực tiếp giữa những thực thể trong hệ thống
XY, chẳng hạn một lập trình viên chỉnh sửa X thì phải quan tâm
đến các mặt tác động cĩ thể cĩ của nĩ trong Y. Chúng ta cĩ thể
phân loại thành 5 quan hệ phụ thuộc sau:
2.1.4.1. Quan hệ phụ thuộc giữa lớp với lớp
2.1.4.2. Quan hệ phụ thuộc giữa lớp với phương thức
2.1.4.3. Quan hệ phụ thuộc giữa lớp với biến
2.1.4.4. Quan hệ phụ thuộc giữa phương thức với biến
15
2.1.4.5. Quan hệ phụ thuộc giữa phương thức với phương thức
2.1.5. Các nguyên nhân chính gây ra lỗi và mối quan hệ giữa
chúng
2.1.5.1. Thay đổi ở cấp độ hệ thống
2.1.5.2. Thay đổi ở cấp độ lớp
2.2. Thuật tốn xác định ảnh hưởng của lỗi
2.2.1. Mơ tả thuật tốn
2.2.2. Đầu vào và đầu ra của thuật tốn
2.2.3. Thuật tốn TotalEffect()
- Hàm khởi tạo (SetInit)
2.2.4. Thuật tốn về mối quan hệ ảnh hưởng xảy ra bên trong
một lớp
2.2.4.1. Khái niệm về đĩng gĩi
2.2.4.2. Thuật tốn FindEffectInClass()
2.2.5. Thuật tốn về mối quan hệ ảnh hưởng giữa các lớp với
nhau
2.3. Độ đo đánh giá mức độ ảnh hưởng của lỗi trong phần
mềm
Mục tiêu của độ đo phần mềm là việc xác định và đo lường
các thơng số cần thiết tác động đến phát triển phần mềm.
Trong thực tế, chúng ta thấy rằng, cĩ nhiều đề tài nghiên
cứu về độ đo phần mềm, và một số các đề tài nghiên cứu khác trên
độ đo phần mềm hướng đối tượng. Tuy nhiên, chúng ta vẫn chưa
thấy cĩ tài liệu nào nĩi về độ đo phân tích ảnh hưởng của lỗi trong
phần mềm hướng đối tượng.
2.3.1. Thơng tin về các độ đo
2.3.2. Độ đo mức độ ảnh hưởng của lỗi trong phần mềm hướng
16
đối tượng
Cơng thức 1: Số lượng các lớp chịu ảnh hưởng
Số lượng các lớp chịu ảnh hưởng được tính bằng số lượng
của tất cả các lớp chịu ảnh hưởng của lỗi trong hệ thống.
Cơng thức 2: Phần trăm các lớp chịu ảnh hưởng
Tỷ lệ phần trăm các lớp chịu ảnh hưởng được tính bằng số
lượng các lớp chịu ảnh hưởng chia cho tổng số các lớp cĩ trong hệ
thống.
Cơng thức 3: Số lượng các thành viên chịu ảnh hưởng
Số lượng các thành viên chịu ảnh hưởng bao gồm tổng số
các thành viên chịu ảnh hưởng của tất cả các lớp chịu ảnh hưởng
trong hệ thống.
Cơng thức 4: Số lượng trung bình của các thành viên
chịu ảnh hưởng
Số lượng trung bình các thành viên chịu ảnh hưởng được
tính bằng tổng số các thành viên chịu chịu ảnh hưởng chia cho
tổng số các thành viên của tất cả các lớp chịu ảnh hưởng trong hệ
thống.
Cơng thức 5: Tỷ trọng số lượng các thành viên chịu ảnh
hưởng
Tỷ trọng về số lượng các thành viên chịu ảnh hưởng bao
gồm tổng số các thành viên chịu ảnh hưởng của tất cả các lớp chịu
ảnh hưởng trong hệ thống, được tính theo khả năng ảnh hưởng.
C1 và C2 là các hằng số được gán theo các khả năng ảnh
hưởng khác nhau đến các phương thức và các thành viên dữ liệu
(hằng, biến).
17
Cơng thức 6: Tỷ trọng trung bình số lượng các thành
viên chịu ảnh hưởng
Tỷ trọng trung bình về số lượng các thành viên chịu ảnh
hưởng được tính bằng tỷ trọng về số lượng các thành viên chịu ảnh
hưởng chia cho tổng số các thành viên trong hệ thống.
2.4. Kết chương
Chương 2 đề cập đến vấn đề ảnh hưởng của lỗi trong giai
đoạn bảo trì phần mềm. Chương này giới thiệu cho chúng ta một
cách khá chi tiết về tập hợp các kiểu ảnh hưởng của lỗi. Chúng ta
cĩ biết được những nguyên nhân chính phát sinh ra lỗi khi phần
mềm được đưa vào sử dụng và những lỗi đĩ ảnh hưởng đến những
thành phần nào trong phần mềm. Mặt khác, chương này cũng đã đi
sâu vào việc phân tích mối quan hệ phụ thuộc giữa các thành
phần/mơ-đun để xác định những ảnh hưởng của lỗi cĩ thể xảy ra
khi một thành phần/mơ-đun nào đĩ bị lỗi.
Dựa vào các thơng tin cĩ được từ việc phân tích ảnh hưởng
của lỗi, chương này giới thiệu một số thuật tốn giúp xác định ảnh
hưởng của lỗi. Các thuật tốn sẽ đi vào kiểm tra lỗi trên từng thành
phần/mơ-đun bị lỗi và kiểm tra tất cả các thành phần/mơ-đun khác
cĩ mối quan hệ phụ thuộc với một thành phần/mơ-đun bị lỗi. Cuối
cùng, chương này đề cập đến một số độ đo về mức độ ảnh hưởng
của lỗi xảy ra trong phần mềm hướng đối tượng. Độ đo được sử
dụng giúp chúng ta cĩ thể dự đốn nhược điểm, sai sĩt và dự đốn
kết quả đạt được của phần mềm.
18
CHƯƠNG 3: THỬ NGHIỆM PHÂN TÍCH LỖI TRONG
CÁC ỨNG DỤNG
Chương 3 đi sâu vào giới thiệu phương pháp thử nghiệm
xác định ảnh hưởng của lỗi. Thơng qua một số các thí dụ minh họa
về kỹ thuật phân tích ảnh hưởng của lỗi, đề tài nghiên cứu cĩ thể
giúp cho các nhà phát triển theo dõi được các ảnh hưởng của lỗi
xảy ra trong phần mềm của họ. Luận văn này tập trung vào hai
hướng chính: phương pháp xác định những ảnh hưởng của lỗi xảy
ra bên trong một lớp và giữa các lớp với nhau bằng các ví dụ minh
họa. Mục 3.1 mơ tả những ảnh hưởng của lỗi xảy ra bên trong một
lớp, ở đĩ các thành viên lớp khơng cĩ mối quan hệ phụ thuộc với
nhau. Mục 3.2 mơ tả những ảnh hưởng của lỗi xảy ra bên trong
một lớp, nhưng ở đĩ các thành viên lớp cĩ mối quan hệ phụ thuộc
với nhau. Mục 3.3 trình bày những ảnh hưởng của lỗi xảy ra giữa
các lớp với nhau. Cuối cùng, mục 3.4 áp dụng phương pháp thử
nghiệm phân tích lỗi vào ứng dụng trong thực tế – phần mềm quản
lý thư viện ở trường đại học. Mục đích của phương pháp thử
nghiệm nhằm xác định độ đo mức độ ảnh hưởng của lỗi xảy ra
trong phần mềm này.
3.1. Ảnh hưởng của lỗi xảy ra bên trong một lớp (khơng đệ
quy)
Đề tài sử sụng một ví dụ đơn giản để giới thiệu phương
pháp xác định ảnh hưởng của lỗi truyền đi bên trong một lớp. Ví
dụ này chỉ cĩ một lớp và khơng cĩ mối quan hệ ràng buộc đệ quy
giữa các thành viên bên trong lớp (phương thức, biến).
19
3.2. Ảnh hưởng của lỗi xảy ra bên trong một lớp (quan hệ đệ
quy)
Phần này minh họa cách thuật tốn quản lý mối quan hệ đệ
quy giữa các thành viên bên trong một lớp. Lớp A (được giới thiệu
trước đĩ) được sửa đổi để chứa mối quan hệ đệ quy giữa các thành
viên bên trong lớp. Hình 3.7 mơ tả mối quan hệ phụ thuộc đệ quy
như sau: A_meth1() tham chiếu A_meth2(), A_meth2() tham chiếu
A_meth3(), A_meth3() sử dụng _A_field1, và _A_field1 được xác
định bởi A_meth1().
3.3. Ảnh hưởng của lỗi xảy ra giữa các lớp với nhau
Cuối cùng, đề tài giới thiệu phương pháp xác định ảnh
hưởng của lỗi xảy ra giữa các lớp trong phần mềm.
3.4. Thử ngiệm phân tích ảnh hưởng của lỗi trong các ứng
dụng
Để minh họa tính thực tiễn của ứng dụng, đề tài áp dụng
phương pháp thực nghiệm vào phần mềm quản lý thư viện ở trường đại
học. Mục đích của phương pháp thử nghiệm nhằm xác định độ đo mức
độ ảnh hưởng của lỗi xảy ra trong phần mềm này. Phần mềm quản lý
thư viện quản lý thơng tin về tất cả các loại sách cĩ trong thư viện của
trường, thơng tin mượn sách, trả sách và thơng tin về độc giả mượn
sách. Phần mềm gồm 3 phần chính: Thơng tin về các lớp, giao diện
chương trình và mục thống kê báo cáo. Bên trong mỗi phần là cơ chế
truyền thơng tin giữa các phương thức cũng như giữa các lớp với nhau.
Bỏ qua các thơng tin thiết kế chi tiết của chương trình, đề tài tập trung
vào mối quan hệ giữa các lớp giao diện với nhau của những phần này
và những ảnh hưởng của lỗi khi một thành phần/mơ-đun trong một lớp
20
nào đĩ bị lỗi. Các thành phần/mơ-đun ở đây được hiểu là các phương
thức, hằng hoặc biến nằm bên trong lớp.
3.5. Kết chương
Dựa vào thuật tốn đề cập ở chương 2, chương 3 giới thiệu
một số phương pháp xác định ảnh hưởng của lỗi xảy ra bên trong
một lớp và giữa các lớp với nhau bằng việc đưa ra một số thí dụ
minh họa. Đồng thời, dựa vào các phương pháp trên, tác giả đã
thực hiện việc thử nghiệm phân tích lỗi vào trong ứng dụng thực
tiễn - phần mềm quản lý thư viện ở trường đại học. Mục đích của
phương pháp thử nghiệm nhằm xác định độ đo mức độ ảnh hưởng
của lỗi xảy ra trong phần mềm này. Kết quả đạt được từ việc thử
nghiệm này cĩ thể giúp cho các nhà phát triển theo dõi được
những ảnh hưởng của lỗi xảy ra trong phần mềm của họ, giúp họ
tiết kiệm thời gian, dể dàng trong việc sửa lỗi.
21
KẾT LUẬN
Kết quả đạt được và ứng dụng của luận văn
Luận văn đã trình bày được năm vấn đề chính: Thứ nhất,
cung cấp một cách nhìn tổng quan nhất về tầm quan trọng của vấn
đề bảo trì phần mềm và kiểm thử hồi quy trong giai đoạn hiện nay
nhằm đảm bảo và nâng cao chất lượng phần mềm. Thứ hai, phân
tích mối quan hệ phụ thuộc và những ảnh hưởng của lỗi cĩ thể cĩ
xảy ra giữa các thành phần trong hệ thống phần mềm hướng đối
tượng. Những nguyên nhân chính gây ra lỗi và những lỗi đĩ sẽ ảnh
hưởng đến những thành phần nào trong phần mềm cũng được đề
cập một cách khá chi tiết trong đề tài. Thứ ba, giới thiệu một số
các thuật tốn xác định những ảnh hưởng của lỗi theo các tiêu chí
đặc tả của người dùng. Thứ tư, trình bày một tập hợp các độ đo về
mức độ ảnh hưởng của lỗi trong hệ thống phần mềm hướng đối
tượng. Cuối cùng, dựa vào thuật tốn, thử nghiệm phân tích lỗi vào
trong ứng dụng thực tế để chứng minh tính khả thi của cách tiếp
cận này trong ngành cơng nghiệp phần mềm. Kết quả đạt được từ
việc thử nghiệm này cĩ thể giúp cho các nhà phát triển theo dõi
được những ảnh hưởng của lỗi xảy ra trong phần mềm của họ,
giúp họ tiết kiệm thời gian, dể dàng trong việc sửa lỗi.
Luận văn đã đưa ra được một tập hợp các độ đo về mức độ
ảnh hưởng của lỗi trong hệ thống, điều này giúp cho người bảo trì
phần mềm đo được số lượng các thành phần bị lỗi, từ đĩ giúp họ
cĩ thể dự đốn nhược điểm, sai sĩt và dự đốn kết quả đạt được
22
của phần mềm. Trong thực tế, chúng ta thấy rằng, cĩ nhiều đề tài
nghiên cứu về độ đo phần mềm và một số các đề tài nghiên cứu
khác trên độ đo phần mềm hướng đối tượng. Tuy nhiên, chúng ta
vẫn chưa thấy cĩ tài liệu nào nĩi về độ đo phân tích ảnh hưởng của
sự lỗi trong phần mềm hướng đối tượng.
Tính ứng dụng của luận văn cĩ thể được áp dụng trong việc
phân tích ảnh hưởng của lỗi. Bằng cách sử dụng kỹ thuật phân tích
ảnh hưởng của lỗi được phát triển trong đề tài này, chúng ta cĩ thể
làm giảm đáng kể các rủi ro và chi phí bởi vì các vấn đề được phát
hiện càng về sau sẽ tốn nhiều chi phí hơn. Kỹ thuật phân tích ảnh
hưởng cĩ thể cung cấp cho chúng ta cách nhìn về những ảnh
hưởng tiềm ẩn của lỗi trước khi cĩ sự thay đổi trên phần mềm
(phần mềm được sửa đổi), và nhận biết được những ảnh hưởng của
lỗi sẽ tác động đến các thành phần nào trong phần mềm khi cĩ lỗi
xảy ra. Vì thế, kỹ thuật phân tích này giúp cho các nhà phát triển
và người bảo trì lên kế hoạch xây dựng các chức năng của phần
mềm một cách chính xác hơn nhằm giảm thiểu rủi ro phát sinh lỗi,
phù hợp với những yêu cầu thay đổi của phần mềm, đồng thời theo
dõi những ảnh hưởng của lỗi cĩ thể xảy ra từ yêu cầu thay đổi này.
Mặt khác, kỹ thuật này cịn giúp cho nhà phát triển và
người bao trì đánh giá được sự phù hợp của một bản đề xuất thay
đổi ở phần mềm (phần mềm cần được sửa đổi). Nếu sự thay đổi ở
phần mềm được đề xuất cĩ khả năng tác động lớn, là bộ phận tách
rời của một chương trình thì nĩ cĩ thể cần phải được tái kiểm tra
23
để xác định xem đề xuất thay đổi đĩ liệu cĩ an tồn hơn khơng.
Người quản lý cĩ thể phân tích các đề xuất thay đổi trên và chọn ra
một đề xuất thay đổi cĩ chi phí và hiệu quả tốt nhất. Nhà phát triển
cĩ thể sử dụng kỹ thuật này để chỉ ra các lỗ hỗng quan trọng về lỗi
trong mã nguồn phần mềm. Nếu một thành phần/mơ đun cung cấp
chức năng quan trọng mà phụ thuộc vào nhiều phần khác nhau của
chương trình thì chức năng của nĩ dễ bị thay đổi trong những phần
này. Kiểm thử viên cĩ thể sử dụng kỹ thuật này để tìm ra những
vùng/thành phần chịu ảnh hưởng của lỗi, điều này giúp họ chỉ cần
thực hiện trên những vùng chịu ảnh hưởng đĩ nhưng vẫn đảm bảo
chất lượng của phần mềm.
Kết quả nghiên cứu này cĩ thể làm tài liệu tham khảo cho
các đơn vị phát triển phần mềm đang cần tiến hành nghiên cứu và
xây dựng ứng dụng kiểm thử tự động dựa vào kỹ thử kiểm thử hồi
quy nhằm phát hiện ra lỗi, dùng cơng cụ đĩ hỗ trợ việc sửa lỗi khi
phần mềm đưa vào sử dụng.
Trên cơ sở xác định được mức độ ảnh hưởng giữa các thành
phần/mơ-đun trong phần mềm, việc này sẽ hỗ trợ cho người kiểm
thử xác định được các chức năng nào, hay cụ thể hơn các mơ-đun
nào cần phải kiểm thử lại (sử dụng kỹ thuật kiểm thử hồi quy) khi
cĩ một mơ-đun bị lỗi, từ đĩ tái sử dụng các ca kiểm thử phù hợp.
Hạn chế của luận văn
Mặc dù đã hết sức cố gắng nhưng đề tài vẫn cịn một số hạn chế
như sau:
24
- Phạm vi của đề tài chỉ dừng lại ở bốn thuật tốn phân
tích ảnh hưởng và chưa đề cập đến những ảnh hưởng
của lỗi xảy ra theo quan hệ thừa kế.
- Các độ đo về mức độ ảnh hưởng của lỗi bên trong
phương thức, bên trong lớp và bên trong hệ thống là
những độ đo phức tạp và tinh vi, cho phép chúng ta
đánh giá chính xác hơn về ảnh hưởng của lỗi. Tuy
nhiên trong luận văn này, tác giả chỉ dừng lại trong
việc đánh giá mức độ ảnh hưởng của lỗi ở các thành
viên lớp và các lớp chịu ảnh hưởng, chưa đi sâu vào
đánh giá mức độ ảnh hưởng bên trong mỗi thành viên
lớp và mỗi lớp cũng như bên trong hệ thống. Mặt
khác, giá trị chính xác cho các hằng số của các độ đo
vẫn chưa được đề cập trong luận văn.
Hướng phát triển nguyên cứu
Tác giả xin đề cập một số hướng nghiên cứu trong tương lai:
- Nghiên cứu thêm về ảnh hưởng của lỗi xảy ra theo
quan hệ thừa kế.
- Nghiên cứu để tìm ra giá trị chính xác cho các hằng số
của các độ đo được trình bày trong chương 2, điều này
giúp chúng ta cĩ được một kế quả chính xác khi xác
định mức độ ảnh hưởng của lỗi trong các ứng dụng
thực tiễn.
25
- Nguyên cứu để xác định các độ đo về mức độ ảnh
hưởng của lỗi xảy ra bên trong mỗi thành viên lớp,
bên trong mỗi lớp và bên trong hệ thống.
Các file đính kèm theo tài liệu này:
- tomtat_61_112.pdf