Nguyền Ngọc Hải 21 4/10/2013 Mục lục Phần I: Giới Thiệu Kiếm TRƯỜNG Thử Phần ĐẠIMầm .3 HỌC HÙNG 1.1 Khái niệm kiểm thử phần mềm .3 VƯƠNG 1.2 Mục tiêu kiếm thử .4 KHOA TOÁN - CÔNG 1.3 Những khó khăn kiếm thử NGHỆ 1.4 Các phuxmg pháp kiểm thủ’ 1.5 Các kỹ thuật thiết kế trường họp kiểm thử 1.6 Phưong pháp thử mô đun PHÀN II GIỚI THIỆU CHI TIÉT VÈ KIỂM THỬ 2.1 Nguyên tắc CO’ kiểm thử phần mềm .5 2.2 Các phưong pháp kiếm thủ’ .5 2.3 Các kỹ thuật thiết kế trưòng họp kiểm thử .7 2.3.1 Kiêm thủ’ hộp đen - Black box testing *Phân Đoạn Tương Đương *Phân tích giá trị biên - Boundary Value Analysis * Kỹ Thuật Cause-Effect Graphing 10 * Đoán lỗi .15 2.3.2 Kiểm thử hộp trắng White box testing ĐÈ TÀI 15 TÌM HIỂU KỸ THUẬT PHẦN chuơng MÈM * Kiểm thử CÁCđường diễn KIẺM tiếnTHỦcủa trình 16 *Kiểm Định cấu dẫn: Trúc Điều Kiền Giáo viên hướng 16 Mạnh Bá * Độ phức tạp lặp Lương (Cyclomatic Complexity) 21 2.3.3 Kiểm thửSinh Viên hộp Thựcxám Gray box testing Hiện: 22 Nguyễn Ngọc Hải (Trưởng Nhóm) Phương pháp thử mô đun Nguyễn Xuân Chiến 22 2.4.1 Kiểm thử mô đun 22 2.4.2 Kiểm thủ’ tích hợp Intergration Test 22 2.4 * Kiêm tra top-down 23 * Kiêm tra hottom-up .24 Phú Thợ 2011 Kiểm thử hệ thống - System Test 25 * Nguyền Ngọc Hải -3- 4/10/2013 Phần I: Giói Thiệu Kiểm Thử Phần Mềm l.lKhái niệm kiếm thử phần mềm Kiểm thử phần mềm trình liên tục, xuyên suốt giai đoạn phát triển phần mềm đế đảm bảo phần mềm thoả mãn yêu cầu thiết kế yêu cầu đáp ứng nhu cầu người dùng Các kỹ thuật kiếm thử phần mềm đã, nghiên cứu, việc kiếm thử phần mềm trở thành qui trình bắt buộc dự án phát triến phần mềm giới Kiểm thử phần mềm khâu mấu chốt đế đảm bảo chất lượng phần mềm, đánh giá cuối đặc tả thiết kế mã hóa Kiểm thử phần mềm trình chạy thử ứng dụng để phát lồi xem có thỏa mãn yêu cầu đặt trình phát triển phần mềm, người phát triển phần mềm kỹ sư kiểm thử làm việc đế phát lỗi đảm bảo chất lượng sản phẩm Một sản phẩm phần mềm phân phổi phải có đầy đủ chức yêu cầu tương thích với phần cứng khách hàng • Chi phí kiếm thử chiếm • 40% tổng công sức phát triển • >=30% tổng thời gian phát triển Sơ đô kiêm thử Nguyền Ngọc Hải 1.2 Mục tiêu kiếm thử -4- 4/10/2013 Các nguyên tắc xem mục tiêu kiếm thử là: • Kiếm thử trình thực thi chương trình với mục đích tìm lỗi • Một trường hợp kiểm thử tốt trường hợp kiểm thử mà có khả cao việc tìm thấy lỗi chưa phát • Một kiểm thử thành công kiểm thử mà phát lồi chưa phát 1.3 Những khó khăn kiếm thử • Nâng cao chất lượng phần mềm không vượt chất lưọưg thiết kế phát lỗi tiềm tàng sửa chúng • Phát lỗi bị hạn chế thủ công • Dễ bị ảnh hưởng tâm lý kiếm thủ • Khó đảm bảo tính đầy đủ kiểm thử 1.4 Các phưoưg pháp kiếm thử Người ta phân biệt phương pháp kiểm thử: Kiểm thử bàn hay kiểm thử tĩnh Kiếm thử máy hay kiếm thử động Kiểm thử tĩnh thường tiến hành trước nhằm tạo kịch cho kiếm thử động 1.5 Các kỹ thuật thiết kế trường họp kiếm thủ’ Kiếm thử hộp đen - Black box testing Kiểm thử hộp trắng - White box testing Kiểm thử hộp xám - Gray box testing Nguyền Ngọc Hải -5PHẦN II GIỚI THIỆU CHI TIẾT VÊ KIỂM THỦ 4/10/2013 Có thể sử dụng số kỹ thuật trình kiểm thử nhằm tăng hiệu họat động Mc Gregor mô tả kỹ thuật kiêm thử nhu công cụ thiết kế đế đảm bảo tất khía cạnh sản phẩm đuợc khảo sát Mặt khác, kỹ thuật kiểm thử công cụ để dễ dàng đạt hiệu kiểm thử 2.1 Nguyên tắc kiếm thử phần mềm Trong lúc kiểm thử, công nghệ phần mềm phát sinh chuỗi trường họp kiếm thử sử dụng đế “tách tùng phần” phần mềm Kiếm thử bước qui trình phần mềm mà xem xét đội ngũ phát triển cách phá vỡ thay xây dựng Các kỹ sư phần mềm người xây dựng việc kiểm thử yêu cầu họ vượt qua khái niệm cho trước độ xác giải mâu thuẫn lỗi xác định 2.2 Các phương pháp kiếm thử Có phương pháp kiểm thử là: Kiếm thử tĩnh Kiểm thử động 2.2.1 Thử tĩnh Khái niệm Phương pháp thử phần mềm thông qua việc sử dụng giấy, bút bàn đế kiểm tra logic, lần chi tiết sau lập trình xong Chủ yếu kiểm tra mã, tài liệu đặc tả Các phương pháp thử tĩnh Thanh tra Duyệt * Thanh tra Khái niệm Nguyền Ngọc Hải -6- 4/10/2013 Tác giả phần mềm Tiến trình tra: Lên kế hoạch Gặp gỡ trước Chuẩn bị Gặp gỡ tra Gia công lại Bám sát Chú ý: khâu 3,4,5 thực lặp lại * Duyệt Khái niệm: Là phương pháp kiếm tra ngang hàng với người thiết kế hướng nhóm phát triến đến hoạt động ý trình sản xuất phần mềm, tham gia đặt câu hỏi thích cho lỗi có Khác biệt với tra: Cấu trúc mở Khả gợi ý định hướng thay đối phần mềm Tiến trình duyệt: Đánh giá đầu vào Chuẩn bị quản lí Lập kế hoạch Gặp gỡ trước Chuẩn bị riêng Duyệt Gia công/ bám sát Ket thúc, đánh giá Điều kiện bên Các lóp tương đương hợp Các lóp tương đương lệ không hợp lệ NguyềnNgọc NgọcHải Hải -7 Nguyền -8- 4/10/2013 4/10/2013 thành lóp tương đương họp lệ hai lớp tương đương không hợp (6) Điều chỉnh môi trường thực môđun tải (tạo thủ tục đưa tệp lệ Chẳng hạn, đầu vào x=5, lớp hợp lệ x= 5, lớp không truy hợp lệ X 5 cập tệp vào chương trình) Neu điều kiện đầu vào xác định phần tử tập hợp, phân (7) Thực môđun tải ghi nhận kết hoạch thành lóp tương đương họp lệ lóp tương đương không họp lệ (8) Xác nhận kết với kết kỳ vọng Neu điều kiện đầu vào Boolean, phân hoạch thành lớp (9) Lặp lại thao tác (5)-(8) tương đương họp lệ lóp tương đương không họp lệ tương ứng với 2.3 thuật kếcác trưòng họp kiếm thử Một Các mẫukỹ cho việc thiết liệt kê lóp tưong đưong 2.3.1 Kiểm thử hộp đen - Black box testing Ngoài ra, mộtthửnguyên tắc(Black thứ năm bố sung sử thiết dụngkế khả hợp thử Kiểm hộp đen Boxđược testing) kỹ thuật trường phán đoán, kinh nghiệm trụcchương giác người kiểmkiếm thử thử quan tâm đến dựa đặc tả bề ngoàivàcủa trình Người nhiệm vụ mà mô đun phải đảm nhận, đầu vào cho mô đun kết xử lý - đầu Các trường họp kiếm thử BướcKiếm thứ hai phương pháp phân đoạn kỹ tương đương thiết kế thửtrong hộp đen lại chia nhỏ nhiều thuật: trường họp kiếm thử dựa ước lượng lóp tương đương Phân đương cho -miền đầuđoạn vào.tương Tiến trình thực sau: - Phân tích giá trị biên Gán cho lóp tương đương Đen-khiĐoán tất cảlỗicác lớp tương đương hợp lệ phủ trường hợp kiếm thử viết trường hợp kiếm thử phủ nhiều có sổ kỹ thuật khác thể lóp tương đương họp lệ chưa phủ Hình 1: Black Box testing Đen tất lớp tương đương không họp lệ phủ trường hợp kiểm thử viết trường hợp kiểm thử cho *Phân Đoạn Tương Đương trường hợp kiểm thử phủ lớp tương đương không chưachia đượcvùng phủ.thông tin nhập vào chương trình thành lớp Đây làhọp kỹlệthuật thông tin/dữ liệu Lớp tương đương biểu diễn thành tập giá trị hợp lệ Nguyền Ngọc Hải -9- 4/10/2013 *Phân tích giá trị biên - Boundary Value Analysis Kinh nghiệm cho thấy ca kiểm thử mà khảo sát tỷ mỷ điều kiện biên có tỷ lệ phần trăm cao hon ca kiểm thử khác Các điều kiện biên điều kiện mà tình tại, duới cạnh lớp tuong đưong đầu vào lớp tương đương đầu Phân tích giá trị biên phương pháp thiết kế ca kiếm thử bô sung thêm cho phân lóp tương đương, khác với phân lóp tương đương khía cạnh: Phân tích giá trị biên không lựa chọn phần tử lóp tương đương điển hình, mà yêu cầu hay nhiều phần tử lựa chọn mà cạnh lớp tương đương đổi tượng kiểm tra Ngoài việc tập trung ý vào trạng thái đầu vào (không gian đầu vào), ca kiểm thử nhận việc xem xét không gian kết (các lóp tương đương đầu ra) Phân tích giá trị biên yêu cầu óc sáng tạo lượng chuyên môn hóa định trình mang tính kinh nghiệm cao Tuy nhiên, có số quy tắc chung sau: Neu trạng thái đầu vào định rõ giới hạn giá trị, viết ca kiếm thử cho giá trị cuối giới hạn, ca kiếm thử đầu vào không hợp lệ cho trường hợp vừa phạm vi Neu trạng thái đầu vào định rõ số lượng giá trị, viết ca kiểm thử cho số lớn nhở giá trị giá trị trên, giá trị giá trị Sử dụng quy tắc cho trạng thái đầu vào Ví dụ, chương trình tính toán khấu trừ FICA hàng tháng mức tối thiểu 0.00$, tối đa 1,165.25$, viết ca kiểm thử mà khấu trù' 0.00$ 1,165.25, khấu trù' âm khấu trù' lớn 1,165.25$ Chú ý việc xem Nguyền Ngọc Hải - 10- 4/10/2013 giới hạn đầu (ví dụ, xét chương trình tính SIN) Ngoài ra, lúc tạo kết bên giới hạn đầu ra, nhiên đáng để xem xét tiềm ẩn Sử dụng nguyên tắc cho trạng thái đầu Neu đầu vào hay đầu chương trình tập thứ tự’ ( ví dụ,l file hay danh sách định tuyến hay bảng) tập trung ý vào phần tử cuối tập họp Sử dụng khéo léo bạn đế tìm điều kiện biên khoảng giá trị tương đưong Kỹ Thuật Cause-Effect Graphing Ta thấy kỹ thuật liệu đầu vào phân loại đế phân tích Tuy nhiên kỹ thuật trình bày cho phép xác định trường họp kiểm thử hiếu lúc liệu đầu vào khó phân loài thành lớp kỹ thuật Kỹ thuật gồm có bước sau : Đặc tả chia thành phần thực Điều cần thiết đồ thị nguyên nhân - kết trở nên khó sử dụng sử dụng đặc tả lớn Nguyên nhân kết đặc tả nhận biết Một nguyên nhân trạng thái đầu vào định hay lớp tương đương trạng thái đầu vào Một kết trạng thái đầu hay Nguyền Ngọc Hải -11- 4/10/2013 biến đổi hệ thống (kết lại mà đầu vào có trạng thái chương trình hay hệ thống) Bạn nhận biết nguyên nhân kết việc đọc từ đặc tả gạch chân từ cụm từ mô tả nguyên nhân kết Khi nhận biết, nguyên nhân kết gán cho số Xây dựng đồ thị nguyên nhân - kết cách phát triển biến đổi nội dung ngữ nghĩa đặc tả thành đồ thị Boolean nối nguyên nhân kết Đồ thị được diễn giải với ràng buộc mô tả kết hợp nguyên nhân và/hoặc kết ràng buộc ngữ nghĩa môi trường Bằng việc dò theo điều kiện trạng thái đồ thị cách cấn thận, bạn chuyển đổi đồ thị thành bảng định mục vào giới hạn Mỗi cột bảng mô tả ca kiểm thử Các cột bảng định chuyển thành ca kiếm thử Ký hiệu cho đồ thị hình Tưởng tượng mồi nút có giá trị 1; mô tả trạng thái vắng mặt mô tả trạng thái có mặt Hàm đồng nói a 1; ngược lại, b Hàm not nói a b 0; ngược lại b Hàm or khẳng định a b c 1, d 1; ngược lại d Hàm and khẳng định a b c 1; ngược lại c Hai hàm or and phép có số lượng đầu vào E1 Nguyền Ngọc Hải í1 © ■""© """"-© ./© Rỉ - 1123 - 4/10/2013 ©X CK'' t & Trong hầu hết chương trình, kết hợp số nguyên nhân không lý ngữ nghĩa môi trường (ví dụ, ký tự không đồng thời vừa “A” vừa “B”) đó, ta sử dụng ký hiệu Hình Ràng buộc E (Exclude - loại trù') khắng định tối đa, có a b (a b không đồng thời 1) Ràng buộc I (Include - bao hàm) khẳng định a, b c phải luôn (a, b c không đồng thời 0) Ràng buộc o (Only - một) khắng định a b phải Ràng buộc R (Request - yêu cầu) khắng định a 1, b phải (ví dụ, có trường hợp a 1, b 0) Ràng buộc M (Mask - mặt nạ) khắng định kết a 1, kết b bắt buộc phải Hình Các ký hiệu ràng buộc then Nguyền Nguyễn Ngọc Nguyền Ngọc Hải Hải -20- 119 84/10/2013 4/10/2013 ifC4 Hình Các cấu Trúc Lặp then B4; Đế hình dung cách tiếp cận ta giả sử câu lệnh chương trình Ví Dugán Hình Một Thủnhất TụcvàVới Lệnh Vàđược Lệnhthay Lặpđối Phức Tạpsố sổ mỗiĐiều hàmKiện khong thông else ifC3 Bl; then biến toàn cục B2 else DEF(S) = { X I lệnh s chứa định nghĩa X } B3 o o o o USE(S) = { X I lệnh s chứa lệnh/biểu thức sủ dụng X } J Neu s câu lệnh if hay loop, tập DEF s rỗng USE tập dựa o o vòng lặp đơn giản o điều kiện câu o lệnh s o ] ] o Đinh nghĩa biến X câu lênh s cho sống câu lênh S’ endif enddo tồn đường từ câu lệnh s đến câu lệnh S’ không chứa định B6X nghĩa o o End nroclặp móc vòng lặp tạo vòng vòng lặp thànhnghĩa tổ Một chuỗi dùng củacầu trúcX ( gọi DU X) ký hiệu [X, s, S’] Đinh biến Đe xây dựng trường hợp kiếmthử DFT cho thủ tục trên, cần phải định nghĩa X câu lệnh s sổng câu lênh s\ biết định nghĩa sử dụng biến mồi điều kiện khối thủ tục Phương pháp thử luồng liệu yêucâu cầulệnh rằngcuối tất cáckhối chuỗi DU Giả sử biếnkiểm X định nghĩa lệnh B2, B3, B4 kiếmvàthử mộtsử lần Có ởthểđầu thấy kiếm liệu B5 biến X dụng củarằng khối B2,thử B3,cho B4,luồng B5 vàdữ B6 Kiếm thử không tất cácthinhánh trình nhiên nêu môt thật nhánh DU yêubao cầutrùm đường thực ngắn nhấtchương từ Bi, 0< i [...]... được cập nhật và kiểm thử chặt chẽ *Kiểm thử big bang Kiểm thử big bang (big bang testing) là một chiến lược kiếm thử hệ thống tiến hành một lần duy nhất khi đã phát triển toàn bộ các mô đun và tích hợp thành một phần mềm hoàn chỉnh Phương pháp này vẫn thường được tiến hành khi phát triển các phần mềm có kích thước nhở *Kiểm thử sandwich Ket hợp 2 kỹ thuật kiểm thử: Trên -Xuống cho các mức trên của... 32767, 1, 1 và 2 hoán vị Xác định các ca kiểm thử 9 thử 32768, 1, 1 các và 2lớp hoán vị đương hợp lệ: Các ca kiểm bao phủ tương Ca kiểm thử 2,3,4 và 5 hoán vị bao phủ các lớp (1), (3), (5), (7), (10) 10.1.2, 3 và 5 hoán vị Các ca kiêm thử tương ứng với từng ca kiêm thử không họp lệ: 11.1.2, 4 và 5 hoán vị (2) A, 1, 1 và 2 hoán vị Áp dụng kỹ thuật kiếm thử hộp trắng vào kiểm thử một chưong trình void vị... Integration Test, một hệ thống phần mềm đã được hình thành cùng với các thành phần đã được kiểm tra đầy đủ Tại thời điểm này, lập trình viên hoặc kiếm thử viên bắt đầu kiếm thử phần mềm như một hệ thống hoàn chỉnh Việc lập kế hoạch cho System Test nên bắt đầu từ giai đoạn hình thành và phân tích các yêu cầu System Test kiểm thử cả các hành vi chức năng của phần mềm lẫn các yêu cầu về chất lượng như... thông thường sẽ thông qua hai loại kiếm thử gọi là kiếm thử Alpha Alpha Test và kiểm thử Beta- Beta Test Với Alpha Test, người dùng kiểm thử Nguyền Ngọc Hải - 28 4/10/2013 Thực tế cho thấy, nếu khách hàng không quan tâm và không tham gia vào quá trình phát triển phần mềm thì kết quả Acceptance Test sẽ sai lệch rất lớn, mặc dù phần mềm đã trải qua tất cả các kiểm thử trước đó Sự sai lệch này liên quan... sandwich Ket hợp 2 kỹ thuật kiểm thử: Trên -Xuống cho các mức trên của chương trình; Dưới - Lên cho các mức phụ thuộc Hạn chế: Khó cô lập lỗi 2.5 Một số kiểm thử khác 1 1 1 2 1 3 0 2 3 4 5 Nguyền Ngọc Hải -29 3031 4/10/2013 1 1 1 0 PHẦN III MỘT SỐ ÚNG DỤNG CỦA KỸ THUẬT KIỂM THỬ Áp 1 dụng kỹ thuật kiểm 0thử hộp đen: Chương 1 trình đọc vào 3 giá trị nguyên từ hộp thoại vào Ba giá trị này tương ứng với... các ca kiểm thử ít Nguyền Ngọc Hải - 4/10/2013 15có lợi sẽ là những ca kiểm thử được liệt kê Do đó, tốt hơn hết là liệt kê chúng trong suốt quá trình phân tích của đồ thị * Đoán lỗi Một kỹ thuật thiết kế trường hợp kiếm thử khác là error guessing - đoán lỗi Tester được đưa cho 1 chương trình đặc biệt, họ phỏng đoán, cả bằng trực giác và kinh nghiệm, các loại lồi có thể và sau đó viết các ca kiểm thử để... lợi khi sử dụng, hiệu năng và bảo mật Mức kiểm thử này đặc biệt thích hợp cho việc phát hiện lỗi giao tiếp với phần mềm hoặc phần cứng bên ngoài, chẳng hạn các lỗi "tắc nghẽn" (deadlock) hoặc chiếm dụng bộ nhớ Sau giai đoạn System Test, phần mềm thường đã sẵn sàng cho khách hàng hoặc người dùng cuối cùng kiểm thử chấp nhận sản phẩm (Acceptance Test) hoặc dùng thử (Alpha/Beta Test) Đòi hỏi nhiều công... Xây dựng trường hợp kiểm thử dựa trên tập đường xác định ở trên *Kiểm Định cấu Trúc Điều Kiển a Kiểm thử các biểu thức điều kiện Kiếm thử biếu thức điều kiện là phương pháp kiểm thử trên những điều kiện logic của hàm hay module Một điều kiện đơn giản là một biến boolean hoặc là một biếu thức quan hệ: • X hay Not X một điều kiện logic đơn giản Nguyền Ngọc Hải - 4/10/2013 17El, E2 là các biếu thức số học... rất nhiều các thuật toán được cài đặc trong các phần mềm tuy nhiên cho đến lúc này chúng ta vẫn còn ít chú ý đến việc xây dựng các trương hợp để kiểm thử Kiếm thử vòng lặp tập trung vào tính chất của cấu trúc vòng lặp Có 4 cầu trúc vòng lặp như sau: vòng lặp đơn giản, vòng lặp móc nối, vòng lặp tạo thành Nguyền Ngọc Hải 21• - 4/10/2013 Bắt đầu tại vòng lặp con trong cùng Thiết lập tất cả các vòng lặp... được kiểm tra Sự khác biệt này đặc biệt quan trọng khi quản lý kiểm thử tích hợp - Intergartion testỉng giữa 2 modun mã lệnh được viết bởi hai chuyên viên thiết kế khác nhau, trong đó chỉ giao diện là được đưa ra đế kiếm thử Kiếm thử hộp xám có thế cũng bao gồm cả thiết kế đối chiếu đế quyết định, ví dụ, giá trị biên hay thông báo lỗi 2.4 Phương pháp thử các mô đun 2.4.1 Kiểm thử mô đun Kiếm thử tích ... dùng Các kỹ thuật kiếm thử phần mềm đã, nghiên cứu, việc kiếm thử phần mềm trở thành qui trình bắt buộc dự án phát triến phần mềm giới Kiểm thử phần mềm khâu mấu chốt đế đảm bảo chất lượng phần mềm, ... Hải -3- 4/10/2013 Phần I: Giói Thiệu Kiểm Thử Phần Mềm l.lKhái niệm kiếm thử phần mềm Kiểm thử phần mềm trình liên tục, xuyên suốt giai đoạn phát triển phần mềm đế đảm bảo phần mềm thoả mãn yêu... khác, kỹ thuật kiểm thử công cụ để dễ dàng đạt hiệu kiểm thử 2.1 Nguyên tắc kiếm thử phần mềm Trong lúc kiểm thử, công nghệ phần mềm phát sinh chuỗi trường họp kiếm thử sử dụng đế “tách tùng phần