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: 2508 | 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