Gỡ rối được hiểu là gì? Nó thực hiện khi nào? Khó khăn của việc gỡ rối là gì?

Một phần của tài liệu Đề cương kiểm thử phần mềm (Trang 51 - 60)

Gỡ rối được hiểu là gì?

Gỡ rối là một tiến trình có phương pháp để tìm kiếm và giảm số lượng những lỗi (bug) hoặc nhược điểm (defect) trong một chương trình máy tính, nhờ đó làm cho chương trình chạy như mong muốn.

Gỡ rối thực hiện khi nào?

Gỡ rối được thực hiện ngay khi kiểm thử.

Tiến trình gỡ rối bắt đầu với việc thực thi một trường hợp kiểm thử (test-case), trong đó kết quả kiểm thử không tương xứng với mong đợi. Thông thường, sự không tương xứng này là triệu chứng

của một nguyên nhân chưa biết. Tiến trình gỡ rối cố gắng tìm ra nguyên nhân của triệu chứng, từ đó tiến tới việc sửa lỗi.

Khó khăn của việc gỡ rối là gì?

• Triệu chứng và nguyên nhân có thể cách nhau rất xa (geographically remote). Nghĩa là, triệu chứng có thể xuất hiện ở một đoạn của chương trình trong khi nguyên nhân thật sự lại nằm ở một nơi hoàn toàn khác.

• Triệu chứng có thể tạm thời biến mất khi một lỗi khác được sửa.

• Triệu chứng có thể được thực sự gây ra bởi nhưng không phải do lỗi (nonerrors).

• Triệu chứng có thể được gây ra bởi sai sót của con người (thường không dễ để dò vết).

• Triệu chứng có thể là kết quả của vấn đề thời gian (timing problem) chứ không phải là do xử lý.

• Việc tái tạo lại các điều kiện đầu vào một cách chính xác rất khó khăn.

• Triệu chứng có thể gián đoạn. Lỗi này khá phổ biến trong những hệ thống nhúng, trong đó phần cứng và phần mềm không thể tách rời nhau.

Triệu chứng có thể gây ra bởi những nguyên nhân phân tán trên một số các tác vụ (task) chạy trên những bộ xử lý khác nhau.

Câu 79K48. Trình bày tiến trình gỡ rối? Các cách thức gỡ rối?

Ưu nhược điểm của chúng?

Tiến trình gỡ rối:

Là tiến trình để xác định nguyên nhân của lỗi và sửa lỗi.Do đó đầu ra của tiến trình có thể là:

- Nguyên nhân lỗi được tìm ra và sửa lại - Nguyên nhân lỗi không được tìm ra.

Các cách thức gỡ rối, ưu nhược điểm của chúng:

1. Brute force (Thô)

Sử dụng triết lý “để máy tính tìm ra lỗi”. là phương pháp kém hiệu quả nhất trong việc cô lập nguyên nhân của lỗi và chỉ được áp dụng khi những phương pháp khác đều thất bại.

Là tổng hợp của nhiều phương pháp:

- Xổ bộ nhớ (Memory dump) - Dò vết khi chạy (Run-time trace)

- Chương trình được tải với câu lệnh WRITE

Nhược điểm: Mặc dù với số lượng lớn thông tin được tạo ra thì cuối cùng cũng dẫn đến thành công nhưng nó thường gây lãng phí thời gian và công sức.

2. Backtracking (Lần ngược) Xác định

lỗi

Thiết kế việc sửa lỗi

Sửa chữa lỗi

Kiểm tra lại chương trình

Kết quả

kiểm thử Đặc tả Trường hợp

kiểm thử

Bắt đầu từ nơi mà triệu chứng được phát hiện, dò ngược lại mã nguồn (bằng tay) cho tới khi tìm ra nguyên nhân.

Thích hợp với những chương trình nhỏ.

Nhược điểm: Khi số lượng dòng code càng lớn thì số khả năng quay lại trở nên quá lớn.

3. Cause elimination (Loại trừ nguyên nhân)

Dữ liệu liên quan tới sự phát sinh lỗi được tổ chức để cô lập những nguyên nhân tiềm năng. Một

“giả thuyết về nguyên nhân” được đặt ra và những dữ liệu trên sẽ được sử dụng để chứng minh hoặc bác bỏ giả thuyết đó.Một danh sách các khả năng có thể được phát triển và kiểm thử lần lượt từng nguyên nhân để loại trừ dần các nguyên nhân này. Nếu các kiểm tra chỉ ra một nguyên nhân có khả năng gây lỗi thật thì dữ liệu sẽ được lọc bởi một phép thử để cô lập lỗi.

Các giả thuyết này có thể sử dụng lặp lại.

Nhược điểm : Phụ thuộc nhiều vào kinh nghiệm ,khả năng phán đoán đưa ra các giả thuyết nguyên nhân gây lỗi. Phải kiểm thử nhiều giả thuyết.

Câu 80 : Quản lý cấu hình phần mềm là gi? Nội dung của hoạt động quản lý cấu hình gồm những công việc gì?

a) Quản lý cấu hình phần mềm là gi?

 Quản lý cấu hình phần mềm là quá trình điều khiển(controlling) và theo dõi(monitoring) sự thay đổi trong tiến trình của hệ thống phần mềm.

 Quản lý cấu hình phần mềm bao gồm các hoạt động sau đây :

 Quản lý các tiền trình quản lý cấu hình phần mềm. (software configuration management process).

 Xác định cấu hình phần mềm.( software configuration identification)

 Điều khiển cấu hình phần mềm.( software configuration control)

 Trạng thái accounting cấu hình phần mềm (software configuration status accounting).

 Kiểm toán cấu hình phần mềm (software configuration auditing)

 Phân phối và quản lý software release (software release management and delivery).

b) Nội dung của hoạt động quản lý cấu hình gồm những công việc gì?

 Quản lý các tiền trình quản lý cấu hình phần mềm :

 Phạm vi trong quản lý cấu hình phần mềm:

 Vòng đời, kế hoạch và thời hạn phần mềm.

 Người chỉ huy dự án (đồng lòng, sắp xếp được).

 Reuse phần mềm.

 development and target platforms.

 Các công cụ phát triển phần mềm.

 Các giàng buộc và sự chỉ đạo trong quản lý cấu hình phần mềm.

 Kế hoạch trong quản lý cấu hình phần mềm và cấu hình phần mềm.

 Sự tổ chức và trách nhiệm

 Thời hạn và các phương sách quản lý cấu hình phần mềm.

 Thực thi và chọn các công cụ

 Sự điều khiển của nhà cung cấp.

 Điều khiển bề mặt chung (Interface control).

 Kế hoạch trong quản lý cấu hình phần mềm.

 Sự giám sát của quản lý cấu hình phần mềm.

 Xác định cấu hình phần mềm :

 Xác định các khoản mục để điều khiển như :

 Cấu hình phần mềm.

 Items cấu hình phần mềm.

 Quan hệ item trong cấu hình phần mềm.

 Version software.

 Xác định các cấu hình đã được phê chuẩn.

 Các items cấu hình phần mềm đã thu được.

 Thư viện trong phần mềm.

 Điều khiển cấu hình phần mềm.

 Yêu cầu, đánh giá và sự tán thành sự thay đổi phần mềm.

 Thực hiện sự thay đổi phần mềm.

 Sự chệch hướng và sự khước từ.

 Software Configuration Status Accounting :

 Thông tin trạng thái cấu hình phần mềm.

 Báo cáo các trạng thái cấu hình.

 Kiểm toán cấu hình phần mềm :

 Kiểm toán cấu hình các chức năng phần mềm.

 Kiểm toán cấu hình các Software physical.

 Phân phối và quản lý software release :

 Software building

 Software release management

Tài liệu tham khảo chính : http://cs.wwc.edu/~aabyan/435/Configuration.html Author : Đào văn Tâm CNPMK48 DHBK HA NOI

Câu 81K48 :Cấu hình phần mềm được hiểu là cái gì? nội dung các khoản mục chính của cấu hình phần gồm những gì?

Trong truyền thông và hệ thống máy tính, cấu hình là sự sắp xếp của các đơn vị chức năng

(functional units) theo tự nhiên, số lượng và các đặc trưng chính. Thường thường cấu hình đi đôi với sự lựa chọn phần cứng, phần mềm và tài liệu. Cấu hình phản ánh chức năng của hệ thống và sự thực thi của nó(wikipedia-computer configuration)

The output of the software process is information that may be divided into three broad categories:

(1) computer programs (both source level and executable forms); (2) documents that describe the computer programs (targeted at both technical practitioners and users), and (3) data (contained within the program or external to it). The items that comprise all information produced as part of the software process are collectively called a software configuration.

Cách mà hệ thống được cài đặt hoặc sắp xếp các thành phần để tạo nên hệ thống. Cấu hình có thể là phần cứng hoặc phần mềm hoặc kết hợp cả hai.

a. Như vậy theo 2 định nghĩa trên thì cấu hình phần mềm là các tiêu chuẩn, các tài liệu được áp dụng để xây dựng phần mềm

b. Nội dung và các khoản mục chính của cấu hình phần mềm là:

- Tài liệu dự án:

 Các tài liệu được lưu trữ phục vụ cho dự án

 Phương thức đặt tên cho các tài liệu - Version, Variant, Realease

 Version là một bản mà có đôi chút khác biệt về mặt chức năng với các trường hợp trước nó.

 Các thuộc tính

 Các thay đổi so với các phiên bản trước

 Variant là các bản (system instance) đồng nhất về mặt chức năng nhưng lại không phân biệt về mặt chức năng với các bản khác

 Realease là các bản được cung cấp cho người sử dụng bên ngoài, không chỉ những người phát triển

 Các file cấu hình :xác định bản release được cấu hình theo cách nào

 Các file dữ liệu cần thiết cho OS

 Các chương trình cài đặt hoặc các shell script để cài đặt hệ thống vào máy cứng

 Các tài liệu điện tử hoặc giấy

 Các gói và các liên kết công khai

- Các vấn đề của hệ thống xây dựng phần mềm( system problem)

 Quyết định tạo phiên bản release

 Hệ thống dựng (system building)

81K47. Cấu hình phần mềm được hiểu là cái gì? Nội dung các khoản mục chính của cấu hình phần mềm gồm những gì?

Cấu hình phần mềm được hiểu là gì?

Bao gồm một tập hợp những đối tượng có liên quan qua lại lẫn nhau, là kết quả của một hoạt động kỹ nghệ phần mềm nào đó.

hoặc

Bao gồm những item chứa tất cả những thông tin được sinh ra như một phần của tiến trình phần mềm.

Nội dung các khoản mục chính của cấu hình phần mềm gồm những gì?

• Đặc tả thiết kế (Design specification)

• Mô hình dữ liệu (Data model)

• Thành phần N (Component N)

• Mã nguồn (Source code)

• Đặc tả kiểm thử (Test specification)

Câu 82K48. Quản lý cấu hình nhằm mục tiêu gì? Năm nhiệm vụ của quản lý cấu hình là gì?

Quản lí cấu hình

Khi tạo ra phiên bản mới của phần mềm có thể có một số thay đổi như:

 Thay đổi về phần cứng hoặc hệ điểu hành

 Có thể có một số chức năng mới

 Chỉnh sửa theo một số yêu cầu riêng của khách hàng

Vì những lí do trên đây chúng ta cần phải có một quy trình quản lí tất cả các thay đổi này =>

xuất hiện khái niệm quản lí cấu hình.

Configuration management - Quản lí cấu hình - CM: là quá trình quản lí sự tiến hóa của phần mềm, quản lí tất cả các hoạt động thay đổi của hệ thống nhằm quản lí chi phí và hiệu quả của các thay đổi đó.

 Quản lí cấu hình liên quan đến quá trình phát triển, ứng dụng các thủ tục và các chuẩn nhằm quản lí sự tiến hóa của phần mềm.

 Quản lí cấu hình còn có thể được xem như là một phần của quá trình quản lí chất lượng phần mềm nói chung.

 Khi nói đến quản lí cấu hình, hệ thống phần mềm đôi khi được gọi là baselines coi như là điểm bắt đầu cho các tiến trình khác..

 Mục đích của QLCH là để thiết lập và bảo đảm tính toàn vẹn của các sản phẩm trung gian cũng như các sản phẩm sau cùng của một dự án phần mềm, xuyên suốt chu kỳ sống của dự án đó

Năm nhiệm vụ của quản lí cấu hình:

 Xác định chuẩn CM ( configuration management):

 Thông thường mỗi công ty thường áp dụng một tập các chuẩn trong việc quản lí cấu hình riêng của mình.

 Chuẩn này mô tả cách định danh các danh mục cấu hình, cách chuyển đổi điểu khiển, cách quản lí các phiên bản mới của phần mềm.

 Có thể xây dựng từ các chuẩn quốc tế như của IEEE

 Có một số chuẩn CM tồn tại cùng với mô hình waterfall, vì vậy cần phải xây nâng cấp nó thành các chuẩn mới phù hợp với tình hình mới.

 Đồng bộ việc phát triển và kiểm thử phần mềm:

 Quản lí quá trình xây dựng phần mềm theo mô hình phát triển nhanh.

 Lập kế hoạch quản lí cấu hình phần mềm

 Quản lí đặc tả phần mềm, tài liệu, thiết kế, chương trình, dữ liệu test,sổ tay khách hàng,....

 Phân loại tài liệu

 Xác định thủ tục quản lí cấu hình và cấu hình gốc baselines

 Xác định chính sách điểu khiển và quản lí version

 Xác định các bản ghi cấu hình

 Xác định tool quản lí cấu hình phần mềm, cơ sở dữ liệu quản lí cấu hình phần mềm

 Quản lí Cơ sở dữ liệu cấu hình

 Quản lí các thay đổi cấu hình. Các thay đổi này có thể xuất phát từ khách hàng, từ nhóm phát triển, từ thị trường.

 Quản lí version và sự chuyển giao phần mềm

 Quản lí công cụ sử dụng để cấu hình phần mềm và các thay đổi trong quá trình sử dụng công cụ quản lí cấu hình phần mềm.

82K47. Quản lý cấu hình nhằm mục tiêu gì? 5 nhiệm vụ của quản lý cấu hình là gì?

Quản lý cấu hình nhằm mục tiêu gì?

Mục tiêu là để đạt được năng suất tối đa bằng cách tối thiểu sai lầm.

Trách nhiệm chính là kiểm soát thay đổi, ngoài ra còn chịu trách nhiệm trong việc nhận diện những đối tượng của cấu hình phần mềm, những phiên bản khác nhau của phần mềm, kiểm toán cấu hình phần mềm để đảm bảo là phần mềm đã được phát triển đúng đắn, và báo cáo những thay đổi

Năm nhiệm vụ của quản lý cấu hình là gì?

• Nhận diện những đối tượng trong cấu hình phần mềm (Identification of objects in the software configuration)

• Kiểm soát phiên bản (Version control)

• Kiểm soát thay đổi (Change control)

• Kiểm toán cấu hình (Configuration audit)

• Báo cáo hiện trạng (Status reporting)

Câu 83K48. Phương pháp gì được áp dụng cho việc quản lý cấu hình ? Mốc giới là cái gì ? Sử dụng mốc giới để kiểm soát sự thay đổi như thế nào ?

 Quản lý cấu hình xét một cách toàn diện bao gồm : quản lý cấu hình phần mềm (SCM), quản lý cấu hình phần cứng (HCM) và quản lý cấu hình sử dụng (Operational CM). Trong khi SCM tập trung vào quản lý source code trong suốt quá trình phát triển thì Operational CM lại tập trung vào quản lý cấu hình các thành phần của hệ thống (như phần mềm, phần cứng, tài liệu và xác định các dịch vụ) trong cơ sở hạ tầng công nghệ thông tin.

 Các phương pháp áp dụng cho quản lý cấu hình:

o Lập ban quản lý:

o Kiểm soát sự thay đổi o Hỗ trợ phát hành o Quản lý tiến trình

 Mốc giới: là một khái niệm của quản lý cấu hình phần mềm nhằm giúp chúng ta điều khiển thay đổi mà không gây ra những ảnh hưởng trầm trọng tới hệ thống.

 Sử dụng mốc giới để kiểm soát sự thay đổi :

o Một mốc giới là một đặc tả hoặc sản phẩm mà thông thường được xem xét và chấp nhận vào lúc bấy giờ, sau đó nó được xem như là cơ bản cho những phát triển xa hơn.

o Trong kỹ nghệ phần mềm, một cột mốc dùng để đánh dấu sự phát triển phần mềm. Nó là một hay nhiều cấu hình phần mềm tại các thời điểm khác nhau của quá trình phát triển phần mềm.

83K47. Phương pháp gì được áp dụng cho việc quản lý cấu hình. Mốc giới là gì? Sử dụng mốc giới để kiểm soát sự thay đổi như thế nào.

• Phương pháp được áp dụng cho việc quản lý cấu hình :

• Mốc giới ( baseline ) :là một khái niệm của quản lý cấu hình phần mêm nhằm giúp chúng ta điều khiển thay đổi mà không gây ra những thay đổi cản trở trầm trọng

• Sử dụng mốc giới để kiểm soát sự thay đổi :

• Một mốc giới là một đặc tả hoặc sản phẩm mà thông thường được xem xét và chấp nhận vào lúc bấy giờ, sau đó nó được xem như là cơ bản cho những phát triển xa hơn.

• Trong kỹ nghệ phần mềm, một cột mốc dùng để đánh dấu sự phát triển phần mềm. Nó là một hay nhiều cấu hình phần mềm tại các thời điểm khác nhau của quá trình phát triển phần mềm

Câu 84. Trình bày tiến trình kiểm soát sự thay đổi

 Tiến trình kiểm soát sự thay đổi là quá trình yêu cầu, xác định mức độ hoàn thành, lên kế hoạch, thực thi và đánh giá các thay đổi của hệ thống. Nó bao gồm hai mục đích chính là : Hỗ trợ xử lí các thay đổi và lên kế hoạch thực hiện các thay đổi.

 Kiểm soát sự thay đổi là một quá trình rất quan trọng, vì nó có thể đem lại lợi ích rất lớn (do hệ thống được cải thiện và làm vừa lòng yêu cầu của khách hàng) nhưng nó cũng có thể gây ra mối nguy hại khó lường (do sự phá hoại hệ thống và thay thế quyền quản lý).

 Tiến trình kiểm soát sự thay đổi:

If thay đổi là hợp lý Then

Đánh giá làm thế nào thay đổi có thể được thực thi Ước lượng giá của thay đổi

Đệ trình yêu cầu để thay đổi tới ủy ban điều khiển (control board) If thay đổi được chấp nhận Then

Repeat

Thực hiện các thay đổi tới phần mềm

Xem xét các thay đổi phần mềm với yêu cầu chất lượng Until chất lượng phần mềm được thỏa đáng

Tạo ra một phiên bản mới của hệ thống Else

Từ chối thay đổi Else

Từ chối thay đổi

 Có một số chuẩn CM tồn tại cùng với mô hình waterfall, vì vậy cần phải xây nâng cấp nó thành các chuẩn mới phù hợp với tình hình mới.

 Đồng bộ việc phát triển và kiểm thử phần mềm:

 Quản lí quá trình xây dựng phần mềm theo mô hình phát triển nhanh.

 Lập kế hoạch quản lí cấu hình phần mềm

 Quản lí đặc tả phần mềm, tài liệu, thiết kế, chương trình, dữ liệu test,sổ tay khách hàng,....

 Phân loại tài liệu

 Xác định thủ tục quản lí cấu hình và cấu hình gốc baselines

 Xác định chính sách điểu khiển và quản lí version

 Xác định các bản ghi cấu hình

Một phần của tài liệu Đề cương kiểm thử phần mềm (Trang 51 - 60)

Tải bản đầy đủ (DOC)

(61 trang)
w