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.

pdf13 trang | Chia sẻ: lylyngoc | Ngày: 27/12/2013 | Lượt xem: 1571 | Lượt tải: 0download
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:

  • pdftomtat_61_112.pdf
Luận văn liên quan