KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM Giới thiệu môn học • Tên môn học Kiểm thử và đảm bảo chất lượng phần mềm • Tên tiếng anh Software testing and quality assurance • Mã số[.]
KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM Giới thiệu mơn học • • • • • • Tên môn học: Kiểm thử và đảm bảo chất lượng phần mềm Tên tiếng anh: Software testing and quality assurance Mã số: CSE 462 Số tín chỉ: Số tiết: 30 lý thuyết + 15 thực hành Bắt buộc đối với ngành KTPM (tự chọn đối với ngành CNTT) Nguyễn Thị Phương Dung Nội dung học Cơ sở kiểm thử Mức độ kiểm thử Các kỹ thuật kiểm thử Độ đo và tiến trình kiểm thử Cơ sở chất lượng phần mềm Tiến trình quản trị chất lượng phần mềm Kiểm định và xác nhận Chuẩn chất lượng phần mềm Nguyễn Thị Phương Dung Hình thức học • GV: – – – – Thuyết trình Làm bài tập minh họa Nêu vấn đề Hướng dẫn SV tự nghiên cứu • SV: – – – – Nghe giảng Làm bài tập theo mẫu Thảo luận các vấn đề Tự nghiên cứu và làm bài tập nâng cao Nguyễn Thị Phương Dung Chuẩn đầu • Kiến thức: Nắm được các kiến thức, các kỹ thuật bản quy trình kiểm thử và đánh giá chất lượng phần mềm Sử dụng một số công cụ kiểm thử phần mềm tự động • Kỹ năng, lực: Viết và trình bày các tài liệu kiểm thử, suy luận để đưa các tình h́ng kiểm thử • Phẩm chất, đạo đức: Có đạo đức, lương tâm nghề nghiệp, có ý thức tổ chức kỷ luật và trách nhiệm với công việc, cộng đồng và xã hội Nguyễn Thị Phương Dung Hình thức đánh giá • Quá trình: 40% (chuyên cần + bài tập lớp + kiểm tra + BTL) • Thi kết thúc học phần: 60% (trắc nghiệm + tự luận) • Cấu trúc đề thi theo thang nhận thức Bloom: Mức Nhớ Hiểu Tỷ lệ (%) 25 25 Vận dụng Phân tích Tởng hợp Sáng tạo 20 Ngũn Thị Phương Dung 10 10 10 Tài liệu • Bài giảng của giảng viên • Dorothy Graham, Erik van Veenendaal, Isabel Evans, Rex Black, Foundations of software testing, • Andreas Spillner, Tilo Linz, Hans Schaefer, Software Testing Foundations • Kiểm Thử Nâng Cao, Tilo Linz, NXB Bách Khoa HN • Software Testing and Analysis: Process, Principles, and Techniques Nguyễn Thị Phương Dung Chương I - Cơ sở kiểm thử Nợi dung • • • • • Kiểm thử là gì? Vì kiểm thử là cần thiết? Các nguyên tắc kiểm thử Quá trình kiểm thử Tâm lý học kiểm thử Nguyễn Thị Phương Dung Vì kiểm thử là cần thiết? • Ví dụ mợt sớ thảm họa lỗi phần mềm gây ra: o Trong những năm 1980, rất nhiều người đã tử vong lỗi mã điều khiển máy xạ trị Therac-25 o 1996, tên lửa nguyên mẫu Ariane5 trị giá tỷ USD đã bị phá hủy chưa đầy phút sau phóng lỗi chương trình máy tính hoa tiêu cài đặt tàu o 1994, 29 người thiệt mạng lỗi điều khiển động máy bay Chinook o 2002, một cuộc điều tra của Bộ thương mại Mỹ cho thấy lỗi phần mềm đã tiêu tốn khoảng 59 tỷ USD mỗi năm Nguyễn Thị Phương Dung 10 Độ đo All-p-uses • All-p-uses: Với biến x và đỉnh i cho i là Global def với biến x, chọn các Complete-path bao gồm các Def-clear path từ đỉnh i tới tất các cạnh (j, k) cho có p-use x tại cạnh này Độ đo All-p-uses • Ví dụ: Tìm tất các đường thỏa mãn độ đo All-p-uses ứng với biến tv – Có Global def tại các đỉnh và Tại đỉnh 2, ta có hai p-use biến này tại các cạnh (7, 8) và (7, 9) – Đường (2 - - - 8) là Def-clear path tv từ đỉnh đến cạnh (7, 8) – Đường (2 - - - 9) là Def-clear path tv từ đỉnh đến cạnh (7, 9) – Đường (5 - - - - 8) là Def-clear path tv từ đỉnh đến cạnh (7, 8) – Đường đi(5 - - - - 9) là Def-clear path tv từ đỉnh đến cạnh (7, 9) – Có thể sử dụng Complete-path sau để đảm bảo độ đo này với biến tv: • • • • (1 - - - - - 10), (1 - - - - - 10), (1 - - - - - - - - - 10), (1 - - - - - - - - - 10) Độ đo All-p-uses/Some c-uses • Some-c-uses: Với biến x và đỉnh i cho i là Global def với biến x, chọn các Complete-path bao gồm các Def-clear path từ đỉnh i tới số đỉnh j cho j là Global cuse x Độ đo All-p-uses/Some c-uses • Ví dụ: Tìm tất các đường thỏa mãn độ đo All-p-uses/Some c-uses ứng với biến i – Biến i có hai Global def tại các đỉnh và đỉnh – Trong khơng có p-use biến này – Vậy, cần tìm đến độ đo Some-c-uses biến i – Tại đỉnh 2, có Global c-use i tại đỉnh và có Def-clear path (2 - - - - 6) => để thỏa mãn độ đo All-p-uses/Some-c-uses với biến i, cần chọn Complete-path (1 - - - - - - - - - 10) chứa đường Độ đo All-c-uses/Some-p-uses • Some-p-uses: Với biến x và đỉnh i cho i là Global def với biến x, chọn các Complete-path bao gồm các Def-clear path từ đỉnh i tới số cạnh (j, k) cho có p-use x tại cạnh này Độ đo All-c-uses/Some-p-uses • Ví dụ: Tìm tất các đường thỏa mãn độ đo All-cuses/Some p-uses ứng với biến AS – Biến AS có Global def tại đỉnh – Khơng có Global c-use – Vậy cần tính theo độ đo Some-p-uses biến AS – Từ đỉnh 1, có các p-use AS tại các cạnh (3, 7) và (3, 4) và có các Def-clear path tương ứng với hai cạnh này là (1 - - - 7) và (1 - - - 4) Có nhiều Complete-path chứa hai đường này Ví dụ (1 - - - - - - - - - 10) Độ đo All-uses • All-uses: Độ đo này bao gồm các đường được sinh từ các độ đo All-p-uses và All-c-uses Điều này có nghĩa là với việc sử dụng (c-use p-use) biến thì có đường từ định nghĩa (def) biến tới các đỉnh các cạnh sử dụng Độ đo All-du-paths • All-du-paths: Với biến x và đỉnh i cho i là Global def với biến x, chọn các Complete-path chứa các tất các Du-path từ đỉnh i tới: – Tất các đỉnh j cho có Global c-use biến x tại j – Tất các cạnh (j, k) cho có p-use biến x tại (j, k) So sánh các độ đo kiểm thử dòng dữ liệu • Mối quan hệ bao gồm: Cho hai độ đo c1 và c2, ta nói c1 bao gồm c2 nếu mọi đường đầy đủ (Complete-paths) sinh từ đồ thị dòng dữ liệu thỏa mãn c1 thì thỏa mãn c2 • Mối quan hệ bao gồm chặt: Cho hai độ đo c1 và c2, ta nói c1 bao gồm chặt c2, ký hiệu là c1 → c2, nếu c1 bao gồm c2 và tồn tại số đường đầy đủ sinh từ đồ thị dòng dữ liệu thỏa mãn c2 không thỏa mãn c1 So sánh các độ đo kiểm thử dòng dữ liệu • Theo các khái niệm độ đo thì mối quan hệ giữa các độ đo kiểm thử dòng dữ liệu được mô tả hình bên Sinh các ca kiểm thử • Sinh đồ thị kiểm thử dòng dữ liệu • Với độ đo kiểm thử C, cần xác định đường thực thi được từ các đường đầy đủ thỏa mãn độ đo này • Trong đó, đường thực thi được là đường từ dữ liệu đầu vào thỏa mãn để thực hiện chương trình => cần xác định dữ liệu đầu vào cho các đường thực thi được Sinh các ca kiểm thử • Ví dụ: Xét đường đầy đủ (1 - - - - - - - - 9) từ đồ thị dòng dữ liệu Từ xác định các biểu thức thuộc các p-uses nằm các cạnh – ((ti= MIN) && (value[i] cần sinh các giá trị đầu vào thỏa mãn các điều kiện (VD: ([1, -999], 2, 1, 2) ) Mối quan hệ bao gồm chặt giữa các độ đo dòng dữ liệu thực thi được Bài tập Cho hàm calFactorial: • Hãy liệt kê các câu lệnh ứng với các khái niệm def, c−use, và p−use ứng với các biến được sử dụng hàm này • Hãy vẽ đồ thị dòng dữ liệu hàm này Bài tập Cho đồ thị dòng dữ liệu hình bên • Hãy xác định tất các Completepath từ đồ thị này • Các đường (0 - - - 3), (1 - - - - 4), (3 - - 4), (2 - - 2) và (0 - - 4) có phải là các simple-paths khơng? Giải thích • Các đường (2 - - 2), (2 - 3) và (3 - - 4) có phải là các loop-free-paths khơng? Giải thích