1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giáo trình Nhập môn công nghệ phần mềm (Nghề: Công nghệ thông tin - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ

63 130 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 529,48 KB

Nội dung

(NB) Giáo trình Nhập môn công nghệ phần mềm cung cấp cho người học những kiến thức như: Giới thiệu chung về phần mềm và công nghệ phần mềm; Một số mô hình vòng đời phát triển phần mềm; Xác định và đặc tả yêu cầu; Thiết kế phần mềm; Kiểm thử phần mềm.

BỘ LAO ĐỘNG -THƯƠNG BINH VÀ XÃ HỘI TRƯỜNG CAO ĐẲNG NGHỀ KỸ THUẬT CÔNG NGHỆ -š› & š› - GIÁO TRÌNH MƠN HỌC : NHẬP MƠN CƠNG NGHỆ PHẦN MỀM NGHỀ: CƠNG NGHỆ THƠNG TIN TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số: 245/QĐ-CĐNKTCN ngày 23 tháng 10 năm 2020 Hiệu trưởng Trường Cao đẳng nghề Kỹ thuật Công nghệ Hà Nội, năm 2021 (Lưu hành nội bộ) TUYÊN BỐ BẢN QUYỀN: Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm MÃ TÀI LIỆU: MHCNTT 18 LỜI GIỚI THIỆU Mục tiêu môn Nhập môn Công nghệ phần mềm cung cấp cho sinh viên kiến thức tất hoạt động liên quan đến phát triển phần mềm kiến thức UML phát triển phần mềm Qua mơn học sinh viên có kỹ sử dụng công cụ phần mềm để thực pha trình phát triển phần mềm qua nâng cao lực làm việc nhóm kỹ mềm Sinh viên tham dự lớp thực hành đầy đủ đặc biệt tích cực tham gia thảo luận trình bày lớp yêu cầu quan trọng Các nội dung trình bày tài liệu gồm chương: - Giới thiệu chung phần mềm cơng nghệ phần mềm - Một số mơ hình vòng đời phát triển phần mềm - Xác định đặc tả yêu cầu - Thiết kế phần mềm - Kiểm thử phần mềm Mặc dầu có nhiều cố gắng, không tránh khỏi khiếm khuyết, mong nhận đóng góp ý kiến độc giả để giáo trình hồn thiện Xin chân thành cảm ơn! Hà Nội, ngày 23 tháng 04 năm 2021 Tham gia biên soạn Chủ biên Phùng Sỹ Tiến Trưởng khoa Tập thể Giảng viên Khoa CNTT Mọi thơng tin đóng góp chia sẻ xin gửi hịm thư tienphungktcn@gmail.com, liên hệ số điện thoại 0913393834-0983393834 MỤC LỤC LỜI GIỚI THIỆU CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM Khái niệm phần mềm 1.1 Định nghĩa chung phần mềm Các đặc tính phần mềm 1.3 Thế phần mềm tốt ? 10 1.4 Ứng dụng phần mềm 11 Công nghệ phần mềm 12 CHƯƠNG 2: MỘT SỐ MƠ HÌNH VỊNG ĐỜI PHÁT TRIỂN PHẦN MỀM 14 Các khái niệm 14 1.1 Vòng đời phần mềm 14 1.2 Quy trình phát triển phần mềm 15 Một số mơ hình vịng đời phát triển phần mềm 16 2.2 Mơ hình thục khả 16 2.3 Mơ hình chế thử 17 2.4 Mơ hình phát triển ứng dụng nhanh (RAD) 18 2.5 Mơ hình xoắn ốc 20 2.6 Mơ hình theo thành phần 21 2.9 Mơ hình chữ V 23 CHƯƠNG 3: XÁC ĐỊNH VÀ ĐẶC TẢ YÊU CẦU 24 Tổng quan yêu cầu phần mềm 24 1.1 Khái niệm yêu cầu phần mềm 24 1.2 Phân loại yêu cầu phần mềm 24 Xác định yêu cầu phần mềm 24 2.1 Nội dung xác định yêu cầu phần mềm 24 2.2 Phát yêu cầu phần mềm 25 2.3 Phân tích yêu cầu phần mềm thương lượng với khách hàng 26 Đặc tả yêu cầu 26 Thẩm định yêu cầu 27 CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 35 Tổng quan thiết kế phần mềm 35 1.1 Khái niệm vai trò thiết kế 35 1.2 Tiến trình thiết kế 37 4.1 Một số khái niệm UML 40 4.2 Tiến trình thiết kế hướng đối tượng 43 CHƯƠNG 5: KIỂM THỬ PHẦN MỀM 49 Một số khái niệm 49 1.1 Đặc tả lỗi phần mềm 50 1.2 Kiểm thử tiến trình kiểm thử 52 1.3 Các mức kiểm thử 53 1.4 Một số thuật ngữ 56 Các cấp độ kiểm thử 57 2.1 Kiểm thử đơn vị 57 2.2 Kiểm thử tích hợp 57 2.3 Kiểm thử hệ thống 58 2.4 Kiểm thử chấp nhận 58 Các kỹ thuật kiểm thử 58 3.1 Kiểm thử hộp đen - Black-box Testing 58 3.2 Kiểm thử hộp trắng - White-box Testing 60 TÀI LIỆU THAM KHẢO 62 GIÁO TRÌNH MƠN HỌC Tên mơn học: Nhập mơn công nghệ phần mềm Mã môn học: MHCNTT 18 Vị trí, tính chất, ý nghĩa vai trị mơn học: - Vị trí: Mơn học Nhập mơn Cơng nghệ phần mềm dành cho sinh viên trình độ Cao đẳng Mơn học thuộc khối kiến thức chuyên ngành - Tính chất: Môn học giúp sinh viên hiểu rõ khái niệm phương pháp kỹ thuật liên quan đến tiến trình phát triển phần mềm, cơng việc đặc tả, xác định yêu cầu, phân tích thiết kế phần mềm Giới thiệu công cụ hỗ trợ thiết kế, lập trình để phát triển phần mềm kiểm thử phần mềm để sinh viên có kiến thức tổng quan quy trình phát triển phần mềm ứng dụng kiến thức vào cơng việc phát triển phần mềm sau - Ý nghĩa vai trị mơn học: Đây mơn học sở ngành, cung cấp cho sinh viên kiến thức phần mềm lập trình phần mềm Mục tiêu môn học: - Về kiến thức: + Trình bày số kiến thức khái niệm phần mềm công nghệ phần mềm, phương pháp kỹ thuật liên quan đến tiến trình phát triển phần mềm + Hiểu rõ công cụ hỗ trợ công việc đặc tả xác định yêu cầu, thiết kế lập kế hoạch để phát triển phần mềm.; - Về kỹ + Lựa chọn phương pháp kỹ thuật phù hợp cho dự án phần mềm + Vận dụng công cụ hỗ trợ, kỹ thuật lập trình để phát triển phần mềm + Xác định ý thức mục tiêu, ý nghĩa vị trí học phần Nhập mơn Cơng nghệ phần mềm chương trình đào tạo - Về lực tự chủ trách nhiệm: + Đi học đầy đủ, tích cực tham gia thao luận, chăm đọc tài liệu tham khảo để có kiến thức quan trọng công nghệ phần mềm khoa học máy tính + Hăng say, nhiệt tình, có khả tự nghiên cứu Nội dung môn học: Thời gian Số TT I II Tên chương, mục Tổng số Giới thiệu chung phần mềm công nghệ phần mềm Khái niệm phần mềm Công nghệ phần mềm Một số mơ hình vịng đời phát triển phần mềm Các khái niệm Một số mơ hình vòng đời phát 6 Kiểm tra* Lý Thực hành (LT thuyết TH) 3 3 III IV V triển phần mềm Xác định đặc tả yêu cầu Tồng quan yêu cầu phần mềm Xác định yêu cầu phần mềm Đặc tả yêu cầu Thẩm định yêu cầu Thiết kế phần mềm Tổng quan thiết kế phần mềm Thiết kế kiến trúc Thiết kế hệ thống hướng chức Thiết kế hệ thống hướng đối tượng Thiết kế giao diện Kiểm thử phần mềm Một số khái niệm Các cấp độ kiểm thử Các kỹ thuật kiểm thử Thi kết thúc môn học Cộng 11 15 11 3 45 27 16 1 CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM Mã chương: MHCNTT 18.1 Mục tiêu: - Nêu định nghĩa, khái niệm phần mềm cơng nghệ phần mềm - Nêu lịch sử hình thành phát triển cơng nghệ phần mềm - Trình bày tầm quan trọng công nghệ phần mềm Khái niệm phần mềm Mục tiêu: Nắm định nghĩa phần mềm; Nắm đặc tính phần mềm 1.1 Định nghĩa chung phần mềm Trong ba thập kỷ thời đại tính tốn, thách thức chủ yếu phải phát triển ứng dụng phần cứng máy tính để làm giảm bớt giá thành xử lý lưu trữ liệu Trong suốt thập kỷ 80, tiến vi điện tử làm phát sinh lực tính tốn mạnh với giá thành thấp đáng kể Ngày vấn đề khác Thách thức chủ yếu phải cải tiến chất lượng giảm giá thành giải pháp dựa máy tính - giải pháp cài đặt phần mềm Vậy phần mềm gì? Định nghĩa 1: Phần mềm tập họp: Các lệnh (chương trình máy tính) thực cung cấp chức kết mong muốn Cấu trúc liệu làm cho chương trình thao tác thơng tin thích hợp Các tư liệu mơ tả thao tác cách sử dụng chương trình Định nghĩa 2: Trong hệ thống máy tính, trừ bỏ thiết bị loại phụ kiện phần cịn lại phần mềm Nghĩa hẹp- phần mềm dịch vụ chương trình để tăng khả xử lý phần cứng máy tính Nghĩa rộng- phần mềm tập tất kỹ thuật ứng dụng để thực dịch vụ chức cho mục đích phần cứng Tóm lại : Phần mềm biểu diễn hình 1.1 Hình 1.1 Phần mềm gi? Trong đó: ■ Nhóm kỹ thuật, phương pháp luận bao gồm: -Các khái niệm trình tự cụ thể hố hệ thống; -Các phương pháp tiếp cận giải vấn đề; -Các trình tự thiết kế phát triển chuẩn hố (quy trình); -Các phương pháp đặc tả, yêu cầu, thiết kế hệ thống, thiết kế chương trình, kiểm thử, tồn quy trình quản lý phát triển phần mềm ■ Nhóm chương trình phần giao diện với phần cứng, người từ nhóm lệnh thị cho máy tính biết trình tự thao tác xử lý liệu ■ Nhóm tư liệu: -Những tài liệu hữu ích, có giá trị cao cần thiết để phát triển, vận hành bảo trì phần mềm -Để tạo phần mềm với độ tin cậy cao cần phải tạo tư liệu chất lượng cao: đặc tả yêu cầu, mô tả thiết kế loại, điều kiện kiểm thử, thủ tục vận hành, hướng dẫn thao tác ■ Những yếu tố khác: -Sản xuất phần mềm phụ thuộc nhiều vào người (kỹ sư phần mềm) Khả hệ thống hoá trừu tượng, khả lập trình, kỹ cơng nghệ, kinh nghiệm làm việc, tầm bao quát khác người -Phần mềm phụ thuộc nhiều vào ý tưởng kỹ người/nhóm tác giả Các đặc tính phần mềm Để hiểu khái niệm phần mềm, cần xem xét đặc trưng phần mềm làm cho khác biệt với thứ khác mà người xây dựng, Khi phần cứng xây dựng, tiến trình sáng tạo người (phân tích, thiết kế, xây dựng, kiểm thử) cuối dịch thành dạng vật lý Phần mềm hệ thống logic, khơng phải hệ thống vật lý Do đó, phần mềm có đặc trưng khác với đặc trưng phần cứng: Phần mềm phát triển hay kỹ nghệ hố, khơng chế tạo theo nghĩa cổ điển Mặc dù có số điểm tương đồng phát triển phần mềm chế tạo phần cứng hai hoạt động khác Trong hai hoạt động này, chất lượng cao đạt thiết kế tốt, giai đoạn chế tạo phần cứng đưa vấn đề chất lượng, điều mà không tồn hay dễ sửa đổi phần mềm Cả hai hoạt động phụ thuộc vào người mối quan hệ người áp dụng cơng việc hồn tồn khác Phần mềm khơng hỏng Phần mềm không bị tác động môi trường - yếu tố vốn gây cho phần cứng bị mòn cũ Do lý thuyết, đường cong tỷ lệ hỏng hóc phần mềm có dạng hình 1.2 Những khiếm khuyết chưa phát làm cho chương trình có tỷ lệ hỏng hóc cao từ ban đầu sử dụng Tuy nhiên, khiếm khuyết sửa đổi đường cong trở nên phẳng hình vẽ Phần mềm khơng mịn cũ bị ‘‘suy thối” Điều dường mâu thuẫn giải thích rõ ràng hình 1.3 Hình 1.2 Đường cong hỏng hóc phần mềm (lý tưởng) Hình 1.3 Đường cong hỏng hóc thực tế phần mềm Trong trình sử dụng, phần mềm có nhiều thay đổi Khi thay đổi thực hiện, số khiếm khuyết xuất hiện, làm cho đường cong tỷ lệ hỏng hóc trở thành có đầu nhọn hình vẽ Trước đường cong trở với tỷ lệ hỏng hóc ổn định ban đầu thay đổi khác lại thực làm cho đường cong phát sinh đỉnh nhọn lần Dần dần, mức tỷ lệ hỏng hóc tối thiểu bắt đầu nâng lên - phần mềm bị thoái hố thay đổi Một khía cạnh khác mòn minh hoạ cho khác biệt phần cứng phần mềm : Khi yếu tố phần cứng bị mịn cũ đi, liền thay Nhưng khơng có phần thay cho phần mềm Mọi hỏng hóc phần mềm lỗi thiết kế hay đường trình chuyển thiết kế thành mã máy thực Do đó, việc bảo trì phần mềm có độ phức tạp phụ thêm đáng kể so với bảo trì phần cứng Phần lớn phần mềm xây dựng theo đơn đặt hàng, lắp ráp từ thành phần có sẵn Nói chung khơng có danh mục thành phần phần mềm Có thể đặt hàng phần mềm đơn vị hồn chỉnh, khơng phải thành phần User analysis: Tìm hiểu người dùng làm với hệ thống; System prototyping: phát triển loạt mẫu để thử nghiệm Interface evaluation: thử nghiệm mẫu với người dùng Quốc tế hóa địa phương hóa Trong q trình thiết kế cần phải xem xét đến việc ngôn ngữ theo chuẩn quốc tế chuẩn địa phương Tức giao diện phần mềm thích ứng với khác khu vực, ngôn ngữ yêu cầu kĩ thuật thị trường Quốc tế hóa q trình thiết kế ứng dụng bao gồm nhiều ngôn ngữ để thích nghi với khu vực khơng có thay đổi quan trọng quy trình Địa phương hóa thích ứng quốc tế hóa với khu vực ngôn ngữ cụ thể cách thêm vào thành phần địa phương dịch văn Các yếu tố cần quan tâm biểu tượng, số, tiền tệ, thời gian đơn vị đo lường Biểu tượng khái niệm quen thuộc Người thiết kế giao diện sử dụng biểu tượng khái niệm để tạo quen thuộc phần mềm với hệ thống biết đến giới Như người dùng dễ dàng việc tìm hiểu sử dụng giao diện Ví dụ: Chức xóa tập tin gắn vào biểu tượng thùng rác Khi thiết kế giao diện, nhà thiết kế không sử dụng nhiều ý nghĩa, hay chức biểu tượng Bằng cách sử dụng biểu tượng khái niệm quen thuộc, hỗ trợ biểu diễn tốt thông tin cần quốc tế hóa, cần phải ý không nên áp dụng theo cách với tất địa phương khu vực khác CÂU HỎI VÀ BÀI TẬP Trình bày tổng quan thiết kế phần mềm.? Trình bày thiết kế kiến trúc phần mềm? Trình bày thiết kế hệ thống hướng chức phần mềm.? Trình bày thiết kế hệ thống hướng đối tượng phần mềm.? Trình bày thiết kế giao diện người dùng ? 48 CHƯƠNG 5: KIỂM THỬ PHẦN MỀM Mã chương: MHCNTT 18.5 Mục tiêu: Sau học xong học này, sinh viên có khả năng: - Nêu khái niệm kiểm thử - Xác định mục tiêu kiểm thử - Phân loại loại kiểm thử - Trình bày cấp độ kỹ thuật kiểm thử -Phân loại so sánh kỹ thuật kiểm thử khác Một số khái niệm Kiểm thử phần mềm bao gồm việc kiểm chứng động (dynamic), chương trình cung cấp hành vi dự kiến tập hữu hạn trường hợp thử nghiệm, phù hợp lựa chọn từ miền thực thường vô hạn Các vấn đề quan trọng việc mô tả kiến thức kiểm thử phần mềm (knowledge area - KA) đây: Dynamic Thuật ngữ có nghĩa kiểm thử ln ln bao gồm thực thi chương trình lựa chọn đầu vào (input) Để xác, giá trị đầu vào đơn (alone) lúc đủ để xác định test, hệ thống khơng xác định phức tạp phản ứng với đầu vào với hành vi khác nhau, tùy thuộc vào trạng thái hệ thống Tuy nhiên KA này, thuật ngữ đầu vào phải trì, với quy ước bao hàm ý nghĩa bao gồm trạng thái đầu vào quy định trường hợp quan trọng Các kỹ thuật tĩnh khác bổ trợ cho kiểm thử động Các kỹ thuật tĩnh bao gồm Software Quality KA Điều đáng ý thuật ngữ không thống cộng đồng khác số sử dụng thuật ngữ “kiểm thử” mối liên hệ với kỹ thuật tĩnh Kiểm thử tĩnh: Kiểm thử tĩnh hình thức kiểm thử phần mềm mà phần mềm không sử dụng thực Điều ngược với thử nghiệm động Thường khơng kiểm thử chi tiết mà chủ yếu kiểm tra tính đắn code (mã lệnh), thuật tốn hay tài liệu Chủ yếu kiểm tra cú pháp code và/hoặc review code (là kiểm tra xem code có viết theo tiêu chuẩn code – ví dụ cách đặt tên hàm tên biến, cách sử dụng hàm chung, đưa hay chưa) tài liệu để tìm lỗi cách thủ cơng Đây loại kiểm thử sử dụng DEV (những người lập trình), làm việc cách độc lập Các kỹ thuật review code, kiểm tra walkthroughs sử dụng kiểm thử tĩnh Từ góc nhìn theo quan điểm kiểm thử hộp đen, kiểm thử tĩnh liên quan đến việc xem xét yêu cầu tài liệu thiết kế chi tiết (ví dụ Spec, SRS, BSS) Điều thực với tầm nhìn hướng tới đầy đủ hay phù hợp cho nhiệm vụ Lỗi phát giai đoạn phát triển tốn để sửa chữa so với bug phát giai đoạn sau quy trình phát triển phần mềm Finite: Ngay chương trình đơn giản, nhiều trường hợp kiểm thử mặt lý thuyết địi hỏi kiểm tra tồn diện u cầu nhiều tháng nhiều năm để 49 thực Đó lý thực tế, tập đẩy đủ kiểm thử coi vô hạn, kiểm thử tiến hành tập tất kiểm thử khả thi, xác định theo tiêu chí rủi ro ưu tiên Kiểm thử bao hàm cân tài nguyên hạn chế tiến độ Selected: Có nhiều kỹ thuật kiểm thử khác đề xuất tập kiểm thử chọn, kỹ sư phần mềm phải nhận thức tiêu chí lựa chọn khác mang lại khác tính hiệu Nhưng làm để xác định tiêu chí lựa chọn phù hợp điều kiện định vấn đề phức tạp Expected: Phải có khả năng, lúc dễ dàng, để định xem kết quan sát chương trình thử nghiệm chấp nhận hay khơng; khơng, nỗ lực thử nghiệm vơ ích Các hành vi quan sát so sánh với nhu cầu người sử dụng (thường gọi thử nghiệm để xác nhận), chống lại đặc điểm kỹ thuật (thử nghiệm để xác minh), hoặc, có lẽ, hành vi mong đợi từ yêu cầu bao hàm mong đợi (xem thử nghiệm Chấp nhận yêu cầu phần mềm KA ) Trong năm gần đây, kiểm thử khơng cịn coi hoạt động mà bắt đầu sau giai đoạn coding hồn thành với mục đích hạn chế việc phát lỗi Kiểm thử phần mềm trở nên phổ biến suốt trình phát triển bảo trì Kế hoạch kiểm thử phần mềm nên bắt đầu với giai đoạn đầu quy trình yêu cầu phần mềm, kế hoạch quy trình thử nghiệm phải phát triển cách có hệ thống liên tục - tinh chế - tiến hành phát triển phần mềm Những hoạt động lập kế hoạch kiểm thử thử nghiệm thiết kế cung cấp đầu vào hữu ích cho nhà thiết kế phần mềm giúp họ làm bật khuyết điểm, thiết sót Đối với nhiều tổ chức, phương pháp tiếp cận đến chất lượng phần mềm ngăn chặn: tức ngăn chặn vấn đề tốt sửa chữa chúng Kiểm thử nhìn thấy, sau đó, dùng phương tiện để cung cấp thông tin tính chất lượng thuộc tính phần mềm để xác định lỗi trường hợp ngăn chặn lỗi khơng có hiệu Sự thật hiển nhiên phần mềm chứa lỗi, chí sau hồn thành việc kiểm thử bao quát Các lỗi phần mềm có sau giải bảo trì sửa chữa Mục bảo trì phần mềm có phần Software Mainteance KA (chương 5) Trong Kỹ thuật quản lý chất lượng phần mềm, phân loại thành kỹ thuật đáng ý Tĩnh (không thực thi mã) động (thực thi mã) KA tập trung kỹ thuật động Kiểm thử phần mềm có liên quan đến xây dựng phần mềm 1.1 Đặc tả lỗi phần mềm Lỗi phần mềm gì? Một lỗi phần mềm lỗi, lỗ hổng, thất bại, có lỗi chương trình máy tính hệ thống ngun nhân tạo kết khơng xác không mong muốn, vận hành theo cách không định hướng trước Những thuật ngữ mô tả lỗi phần mềm? 50 Phụ thuộc vào nơi mà bạn làm việc (như tester), bạn sử dụng thuật ngữ khác để mơ tả điều xảy đến phần mềm bị lỗi Dưới số thuật ngữ: Defect: nhược điểm Fault: khuyết điểm Failure: thất bại Anomaly: dị thường Variance: biến dị Incident: việc rắc rối *Problem:*vấn đề Error: lỗi Bug: lỗi Feature: đặc trưng Inconsistency: mâu thuẫn Fault, failure defect có xu hướng ám vấn đề thật quan trọng, chí nguy hiểm Dường không gọi biểu tượng (icon) không tô màu lỗi (fault) Những từ thường ám lời khiển trách: (fault) mà phát sinh lỗi phần mềm (software failure) Anomaly, incident, variance khơng tiêu cực thường sử dụng để đề cập tới vận hành khơng dự tính trước thay hồn tồn lỗi (all-out failure) Có lẽ, Problem, error bug thuật ngữ chung thường sử dụng, dùng để sai sót lập trình viên trình tạo sản phẩm Quy tắc xác định lỗi phần mềm? Một lỗi phần mềm xuất nhiều quy tắc đúng: Quy tắc 1: Phần mềm không thực số thứ giống mơ tả đặc tả phần mềm Ví dụ: đặc tả calculator nói rõ rằng: thực thi phép cộng, phép trừ, phép nhân, phép chia Nếu bạn nhận việc kiểm thử phần mềm Calculator, nhấn phím “+” khơng có chuyện xảy ra, lỗi Quy tắc 2: Phần mềm thực số việc mà đặc tả u cầu khơng thực Ví dụ: Bản đặc tả phần mềm yêu cầu rằng, calculator không bị đột ngột ngưng hoạt động, bị khóa lại bị đóng băng Nếu bạn ấn liên tục lên phím nhận thơng điệp từ calculator “not responding” (dừng trình hồi đáp với liệu vào), lỗi theo quy tắc Quy tắc 3: Phần mềm thực số chức mà đặc tả khơng đề cập tới Ví dụ: Lập trình viên tự ý thêm vào phép tính bậc 2, đặc tả calulator yêu cầu phép tính cộng, trừ, nhân, chia Quy tắc 4: Phần mềm không thực số việc mà đặc tả không đề cập tới, việc nên làm Ví dụ: Bạn mong muốn cơng việc trì pin hồn tồn hết, cách báo cho bạn biết Pin yếu Những phép tính khơng xảy pin yếu, khơng rõ điều xảy đến Quy tắc số tạo nên lỗi Quy tắc 5: Trong mắt người kiểm thử, phần mềm khó hiểu, khó sử dụng, chậm người sử dụng Trong trường hợp calculator, có lẽ bạn tìm thấy nút có kích thước q nhỏ Hoặc xếp nút “=” làm cho khó sử dụng Hoặc bố trí màu sắc làm cho khó nhìn Tất điều lỗi (bug) theo quy tắc Vòng đời lỗi? Vòng đời lỗi hành trình mà mà lỗi qua suốt đời Nó thay đổi từ tổ chức sang tổ chức khác, từ dự án đến dự án khác điều chỉnh quy trình kiểm thử phần mềm Vịng đời lỗi bao gồm trạng thái đây: New: Khi mà lần lỗi log lên lần bời người kiểm thử Assigned: Khi lỗi đăng lên định cho lập trình viên Open: Khi lập trình viên sửa lỗi Fixed: Khi lập trình viên hoàn thành việc sửa lỗi 51 Retest: Người kiểm thử kiếm tra lại lỗi sửa hay chưa, có phát sinh thêm lỗi khơng Reopened: Nếu lỗi còn, người kiểm thử trả lại cho lập trình viên Lỗi phải lại vịng đời cũ Deferred: Lỗi sửa phát hành Lý độ ưu tiên lỗi thấp, thiếu thời gian để phát hành lỗi khơng có ảnh hưởng lớn đến phần mềm Rejected: Nếu lập trình viên cho khơng phải lỗi, họ chuyển sang trạng thái Duplicate: Lỗi đăng trùng với Closed: Khi người kiểm thử thấy lỗi sửa triệt để Not a bug/Enhancement: Một số thay đổi ứng dụng, lỗi 1.2 Kiểm thử tiến trình kiểm thử Định nghĩa kiểm thử thuật ngữ liên quan Kiểm thử phần mềm kiểm tra tiến hành để cung cấp cho bên liên quan thông tin chất lượng sản phẩm dịch vụ kiểm thử Kiểm thử cung cấp cho doanh nghiệp quan điểm, cách nhìn độc lập phần mềm để từ cho phép đánh giá thấu hiểu rủi ro trình triển khai phần mềm Trong kỹ thuật kiểm thử không giới hạn việc thực chương trình ứng dụng với mục đích tìm lỗi phần mềm (bao gồm lỗi thiếu sót) mà cịn trình phê chuẩn xác minh chương trình máy tính / ứng dụng / sản phẩm nhằm: • Đáp ứng yêu cầu hướng dẫn thiết kế phát triển phần mềm • Thực cơng việc kỳ vọng • Có thể triển khai với đặc tính tương tự • Và đáp ứng nhu cầu bên liên quan Tùy thuộc vào phương pháp, việc kiểm thử thực lúc trình phát triển phần mềm Lỗi chịu lỗi Tiêu chí lựa chọn kiểm thử/Kiểm tra mức độ đầy đủ tiêu chí Tiêu chí lựa chọn thử nghiệm có nghĩa lựa chọn trường hợp kiểm thử xác định tập trường hợp kiểm thử đủ cho mục đích cụ thể Hiệu kiểm thử/Mục tiêu kiểm thử Hiệu kiểm thử xác định cách phân tích tập hợp chương trình thực thi Lựa chọn kiểm thử thực hướng dẫn mục tiêu khác Kiểm thử phát khiếm khuyết Phát lỗi khiếm khuyết phần mềm để thấy ứng xử có xác phù hợp với tài liệu đặc tả hay khơng Về mặt lý thuyết, phải kiểm thử hệ thống cách cặn kẽ khẳng định chương trình khơng cịn khiếm khuyết Tuy nhiên, thực tế khơng thể kiểm thử cách cặn kẽ Các vấn đề Oracle Oracle người máy móc dùng để định xem liệu chương trình có thực cách xác thử nghiệm định phù hợp kết đạt thất bại (các nguyên tắc hay chế phát vấn đề) Kiểm thử khơng thể xác định hồn tồn tất lỗi bên phần mềm Thay 52 vào đó, so sánh trạng thái hành vi sản phẩm với oracle Các oracle bao gồm (nhưng khơng giới hạn ở) đặc tả phần mềm, hợp đồng, sản phẩm tương đương, phiên trước sản phẩm, phù hợp với mục đích dự kiến nhằm đáp ứng kỳ vọng người dùng, khách hàng, quy định pháp luật hành tiêu chuẩn liên quan khác Vấn đề đường dẫn không khả thi Đường dẫn không khả thi đường dẫn luồng điều khiển thực thi liệu đầu vào Khả kiểm thử Khả kiểm thử mức độ mà thành phần phần mềm (hệ thống phần mềm, module, tài liệu thiết kế) hỗ trợ kiểm thử bối cảnh kiểm thử định Nếu khả kiểm thử thành phần phần mềm cao, việc tìm kiếm lỗi hệ thống (nếu có) việc kiểm thử dễ dàng Mối quan hệ kiểm thử với hoạt động khác Kiểm thử vs kỹ thuật quản lý chất lượng phần mềm tĩnh Kiểm thử vs Bằng chứng tính đắn xác minh hình thức Kiểm thử vs Gỡ lỗi Kiểm thử vs Xây dựng chương trình 1.3 Các mức kiểm thử Dựa trực giác kinh nghiệm kỹ sư phần mềm Có lẽ kỹ thuật thực nhiều kiểm thử tùy biến: kiểm thử có dựa kỹ năng, trực quan kinh nghiệm kỹ sư phần mềm với cá chương trình quen thuộc Kiểm thử tùy biến hữu ích cho việc định danh trường hợp kiểm thử mà không dễ thực kỹ thuật bình thường Kiểm thử theo kiểu khám phá định nghĩa tiến hành đồng thời việc học tập, thiết kế thực kiểm thử, khơng thực theo kế hoạch kiểm thử lên trước linh động việc thiết kế, thực sửa đổi Hiệu kiểm thử khám phá phụ thuộc kinh nghiệm kỹ sư phần mềm, điều có từ nhiều nguồn quan sán hành vi sản phẩm trình kiểm thử, quen thuộc với ứng dụng, môi trường, trình lỗi, dạng lơi có, nguy tích hợp với sản phẩm riêng biệt… Kỹ thuật dựa miền đầu vào Phân vùng tương đương liên quan đến việc phân chia miền đầu vào thành vùng dựa tiêu chuẩn quan hệ Tiêu chuẩn quan hệ kết tính tốn khác nhau, quan hệ dựa luồng điều khiển luồng liệu, phân biệt tạo đầu vào hợp chấp nhận đầu vào không hợp lệ bị từ chối đưa lỗi Các trường hợp kiểm thử có việc kết hợp giá trị tiêu biểu cho cặp tập hợp biến đầu vào thay xét đến tồn kết hợp có Kiểm thử theo cặp thuộc kiểm thử tổ hợp, nhìn chung bao gồm mức tổ hợp cao so với cặp: kỹ thuật xem t-wise, mà toàn tổ hợp đầu vào t xem xét Các trường hợp kiểm thử chọn nằm gần với điên miền đầu vào, nơi tỉ lệ lỗi thường tập chung cao Trường hợp ngoại lệ kỹ thuật kiểm thử bền vững, nơi mà trường hợp kiểm thử chọn bên miền biến đầu vào để kiểm thử bền vững sản phầm việc xử lý đầu vào lỗi 53 Các kiểm thử thực đơn thuẩn cách ngẫu nhiên Dạng kiểm thử đặt đầu miền đầu vào miền đầu vào phải biến để để lấy điểm ngẫu nhiên Kiểm thử ngẫu nhiên cung cấp tiếp cận đơn giản để kiểm thử tự động, gần dạng nâng cao kiểm thử ngẫu nhiên đưa ra, mẫu đầu vào ngẫu nhiên hướng tiêu chuẩn lựa chọn đầu vào khác Kiểm thửu Fuzz hay Fuzzing dạng đặc biệt kiểm thử ngẫu nhiên,tập chung vào việc phá vỡ phần mềm, chủ yếu dùng để kiểm thử an ninh phần mềm Kỹ thuật dựa mã nguồn Tiêu chuẩn phủ dựa luồng điều khiển tập chung vào việc phủ toàn câu lệnh, khối lệnh kết hợp đặc biệt câu lệnh chương trình Điểm mạnh tiêu chuẩn kiểm thử đường đi, mà tập chung vào để thực thi toàn đường lường điều khiển từ vào đến kết thúc biểu đồ luồng điều khiển chương trình Vì kiểm thử vét kiệt đường khơng khả thi vịng lặp, tiêu chuẩn xác tập chung vào đọ phủ đường mà giới hạn bước lặp phủ câu lệnh, phủ nhánh kiểm thử định Sự đầy đủ kiểm thử đo đạc theo phần trăm, ví dụ, tất nhánh thự thi lần kiểm thử độ phủ nhánh 100% Trong kiểm thử dựa luồng liệu, biểu đồ luồng điều khiển diễn giải với thông tin việc cách biến chương trình định nghĩa, dử dụng kết thúc Tiêu chuẩn mạnh yêu cầu từ định nghĩa biến đến việc sử dụng định nghĩa thực thi Để giảm số đường yêu cầu, chiến lược yếu định nghĩa tất sử dụng tất dùng Mặc dù thân kỹ thuật, cấu trúc điều khiển chương trình hình ảnh hố để biểu diễn việc sử dụng biểu đồ kỹ thuật dựa mã nguồn Một biểu đồ đồ thị có hướng, nút cung biểu diễn cho yếu tố chương trình Ví dụ, nút biểu diễn lệnh tần xuất khơng bị can thiệp lệnh cung biểu diễn sử trao đổi nút Kỹ thuật dựa lỗi Trong việc dự đoán lỗi, trường hợp kiểm thử thiết kế đặc biệt kỹ sư phần mềm người mà cố gắng dự đoán trước lỗi xảy chương trình cho trước Một nguồn thông tin tốt lịch sử lỗi tìm dự án có trước kỹ kỹ sư phần mềm Một đột biến phiên chỉnh sửa nhẹ chương trình kiểm thử, với sử thay đổi nhẹ để khác biệt với chương trình cũ Mỗi lần kiểm thử kiểm thử phiên gốc toàn đột biến: trường hợp kiểm thử thành công việc định danh khác biệt chương trình đột biến đột biến bị tiêu diệt Nói cách khác, đột biến kiểm thử mà trả kết khác so với gốc đột biến bị tiêu diệt xem gốc đạt tiêu chuẩn Khi đột biến mà cho kết giống gốc xem kiểm thửu thất bại Hiệu của kỹ thuật đánh giá số lượng lớn đột biến bị tiêu diệt Các đột biến thường tạo cách tự động kiểm thử thực theo cách có hệ thống Kỹ thuật dựa việc sử dụng 54 Trong việc kiểm thử đánh giá độ tin cậy, mội trường kiểm thử tạo gần với môi trường vận hành phần mềm gọi hồ sơ vận hành Mục tiêu để suy từ kết theo dõi độ tin cậy tương lai phần mềm sử dụng thật để làm điều này, đầu vào gán xác suất hồ sơ theo tần suất xảy thực tế Hồ sơ vận hành so thể dùng kiểm thử hệ thống để hướng dẫn bắt nguồn trường hợp kiểm thử đánh giá tin cậy thử nghiệm liên quan đến việc sử dụng chức khác giống với xảy mơi trường kiểm thử vận hành Các nguyên tắc sử dụng cung cấp hướng dẫn cho việc tìm vấn đề thiết kế giao diện Nguồn thông tin cho vấn đề lấy qua nguồn vấn làm khảo sát người dùng Kỹ thuật dựa mơ hình Những bảng định biểu diễn mối quan hệ logic điều kiện hành động Các trường hợp kiểm thử có cách hệ thống việc xem xét tổ hợp điều kiện hành động phản ứng Một kỹ thuật liên quan đồ thị nguyên nhân - ảnh hưởng Bằng việc mơ hình hóa chương trình máy trạng thái hữu hạn, việc kiểm thử lựa chọn để bao phủ trạng thái chuyển tiếp Trạng thái hóa chi tiết kỹ thuật ngơn ngữ hình thức cho phép dẫn xuất tự động trường hợp kiểm thử chức lúc cung cấp dự đoán cho việc kiểm tra kết kiểm thử TTCN3 ngôn ngữ phát triển để viết trường hợp kiểm thử Định nghĩa hiểu với yêu cầu riêng biệt kiểm thử hệ thống truyền thơng, đặc biệt thích hợp cho kiểm thử giao thức truyền thơng phức tạp Mơ hình luồng cơng việc tần xuất hoạt động thực người hay ứng dụng phần mềm, thường biểu diễn thơng qua định nghiwax hình ảnh Mỗi tần suất hành động cấu thành luồng cơng việc Kỹ thuật dựa tính chất phần mềm Các kỹ thuật bên áp dụng cho toàn loại phần mềm kỹ thuật phụ cho kiểm thử dựa tính chấn phần mềm như: Phần mềm hướng đối tượng Phần mềm dựa phận Phần mềm web Các chương trình tương tranh Phần mềm dựa giao thức Hệ thống thời gian thực Hệ thống an toàn nguy cấp Phần mềm hướng dịch vụ Phần mềm mã nguồn mở Phần mềm nhúng Chọn kết hợp kỹ thuật Các kỹ thuật kiểm thử dựa mơ hình mã nguồn thường tương phản kiểm thử chức cấu trúc Hai cách tiếp cận lựa chọn kiểm thử không xem thay cho mà xem bổ sung cho nhau; thực tế, chúng sử dụng nguồn thông tin khác loại vấn đề tiêu biểu khác Chúng dùng kết hợp phụ thuộc vào xem xét đầu tư 55 Các trường hợp kiểm thử chọn theo cách tất định, theo số kỹ thuật thực ngẫu nhiên từ phân phối đầu vào kiểm thử độ tin cậy Một vài so sánh theo kiểu phân tích kinh nghiệm chọn để phân tích điều kiện mà tạo cách tiếp cận có hiệu 1.4 Một số thuật ngữ Các phép đo chương trình hỗ trợ lên kế hoạc thiết kế kiểm thử Các phép dựa kích cỡ phần mềm (ví dụ: dịng mã nguồn kích thước chức năng) cấu trúc phần mềm dùng để hướng dẫn kiểm thử Các phép đo cấu trúc bao gồm phép đo mà định tần suất mô đun gọi thực mô đun khác Các loại lỗi, phân loại thống kê Văn học kiểm thử đa dạng phân loại nguyên tắc phân loại lỗi Để tạo kiêm thử hiệu quan trọng biết loại lỗi phát phần mềm kiểm thử tần xuất tương đối lỗi tồn q khứ Thơng tin hữu ích việc dự đoán chất lượng việc cải tiến trình Mật độ lỗi Một chương trình kiểm thử đánh giá việc tính tốn lỗi tìm tỉ lệ số lỗi tìm thấy độ lớn cửa chương trình Đánh giá độ tin cậy Một ước lượng thống kê độ tin cậy phần mềm dùng để đánh giá sản phẩm phần mềm quết định kiểm thử dừng lại hay không việc quan sát độ tin cậy tạo Những mơ hình phát triển độ tin cậy Những mơ hình phát triển độ tin cậy cung cấp dự đoán dộ tin cậy dựa lỗi Chúng giả định lỗi gây thất bại quan sát sửa, độ tin cậy sản phầm đữa xu tăng dần Rất nhiều mô hình kiểu đưa Đáng ý, mơ hình chi loại mơ hình đếm lỗi mơ hình thời gian lỗi Các phép đo phủ Một vài tiêu chuẩn kiểm thử yêu cầu trường hợp kiểm thử thực tập yếu tố định danh chương trình chi tiết kỹ thuật hệ thống Để đánh giá độ chi tiết kiểm thử thực hiện, kỹ sư phần mềm cso thể theo dõi yếu tố bao phủ để họ đo đạc tỉ lệ yếu tố phủ tổng số linh động Ví dụ, đo tỉ lệ phần trăm nhánh phủ biểu đồ dòng chảy chương trình phần trăm yêu cầu chức thực danh sách chức tài liệu chi tiết kỹ thuật Các tiêu chí phù hợp dứa mã nguồn yêu cầu đo đạc thích hợp chương trình kiểm thử Gieo lỗi Trong việc gieo lỗi, vài lỗi đưa nhân tạo vào chương trình trước kiểm thử Khi kiểm thử tiến hành, số bộc lộ lỗi có sẵn Theo lý thuyết, phụ thuộc vào việc lỗi nhân tạo tìm ra, hiệu kiểm thử số lỗi thực đánh giá Trong thực tế, nhà thống kê đặt câu hỏi thử phân phối biểu diễn lỗi gieo trước quan hệ vơi lỗi thật cỡ bé mẫu thử lên phéo ngoại suy 56 dựa Một số khác tranh cãi kỹ thuật nên dùng thận trọng việc chèn lỗi vào phần mềm liên quan đến mạo hiểm rõ rằng qn lỗi chương trình Điểm đột biến Trong kiểm thử đột biến, tỉ lệ đột biến bị tiêu diệt với tổng số đột biến phép đo cho hiệu của tập kiểm thử thực Sự so sánh hiệu tương đối kỹ thuật khác Và nghiên cứu tiến hành đê so sánh hiệu tương đối việc sử dụng kỹ thuật khác Quan trọng để xác thuộc tính dựa vào kỹ thuật đánh giá Cách diễn dải bao gồm số kiểm thử cần để tìm lỗi đầu tiên, tỉ lệ số lỗi tìm thơng qua kiểm thử tồn số lỗi tìm sau kiểm thử, cải thiện độ tin cậy Các so sánh phân tích thực nghiệm kỹ thuật khác tiến hành theo ý niệm hiệu quy định Các cấp độ kiểm thử Kiểm thử phần mềm thường thực cấp độ khác suốt trình phát triển bảo trì Mức phân biệt dựa đối tượng thử nghiệm, gọi target, mục đích, gọi objective (từ cấp thử nghiệm) Mục tiêu kiểm thử (Target of the Test) Mục tiêu thử nghiệm khác nhau: mơ-đun nhất, nhóm mơ-đun (liên quan theo mục đích, sử dụng, hành vi, cấu), hay toàn hệ thống Ba giai đoạn thử nghiệm phân biệt: đơn vị, tích hợp hệ thống 2.1 Kiểm thử đơn vị Unit testing đề cập đến kiểm thử để chứng thực (xác minh - verify) chức phần riêng biệt code, thường mức hàm (function level) Trong môi trường hướng đối tượng (object-oriented environment), kiểm thử đơn vị thường sử dụng mức lớp (class) kiểm thử đơn vị nhỏ bao gồm hàm constructor destructor Loại kiểm thử thường viết DEV công việc họ việc code (loại test white-box), để bảo đảm hàm riêng biệt hoạt động theo mong muốn Một hàm có nhiều kiểm thử, để bắt trường hợp nhánh code Unit testing khơng thể bảo đảm chức phận phần mềm mà sử dụng để bảo đảm khối kiến trúc phần mềm làm việc độc lập với Unit testing (kiểm thử đơn vị) gọi component testing (kiểm thử thành phần) 2.2 Kiểm thử tích hợp Integration testing loại kiểm thử phần mềm mà tìm kiếm để kiểm tra giao diện thành phần dựa vào thiết kế phần mềm Các thành phần phần mềm tích hợp lại với theo cách lặp lặp lại (từng phần nhỏ ghép lại với nhau, ghép tiếp phần nhỏ khác vào nữa, hành động lặp lại kết hợp toàn phần mềm) tất thành phần tích hợp lần (gọi “big bang”) Thông thường trước xem cách làm 57 tốt từ cho phép vấn đề giao diện xác định vị trí nhanh cố định Integration testing làm việc để tìm lỗi (defect) giao diện giao tiếp thành phần (mơ-đun) Các nhóm thành phần phần mềm kiểm thử lớn dần bước tương ứng với yếu tố thiết kế kiến trúc tích hợp kiểm thử phần mềm hoạt động hệ thống 2.3 Kiểm thử hệ thống System testing kiểm thử hệ thống tích hợp hồn chỉnh để xác minh đáp ứng u cầu Kiểm thử tích hợp hệ thống chứng thực hệ thống tích hợp với hệ thống bên hệ thống thứ ba xác định yêu cầu hệ thống Mục đích kiểm thử Kiểm thử tiến hành bối cảnh mục tiêu cụ thể, ghi nhận nhiều cách rõ ràng có độ xác khác Trong nêu rõ mục đích kiểm thử cách xác, hỗ trợ mặt định lượng đo lường kiểm sốt q trình kiểm thử Kiểm thử dùng để xác minh tính chất khác Trường hợp kiểm thử thiết kế để kiểm tra thông số kỹ thuật chức thực cách xác, hiệu suất, độ tin cậy, khả dụng Nghiệm thu/Năng lực kiểm thử Nghiệm thu/Năng lực kiểm thử xác định hệ thống đáp ứng tiêu chuẩn nghiệm thu nó, thường cách kiểm tra hành vi hệ thống mong muốn yêu cầu khách hàng 2.4 Kiểm thử chấp nhận Nhiệm vụ phần đánh dễ dàng cho người dùng cuối để tìm hiểu sử dụng phần mềm Nói chung, liên quan đến việc thử nghiệm chức phần mềm hỗ trợ việc sử dụng, tài liệu hướng dẫn nhằm hỗ trợ người sử dụng, khả hệ thống để phục hồi từ lỗi người sử dụng Các kỹ thuật kiểm thử 3.1 Kiểm thử hộp đen - Black-box Testing Black Box Testing gì? Kiểm tra hộp đen (Black box testing) phương pháp kiểm thử phần mềm mà việc kiểm tra chức ứng dụng không cần quan tâm vào cấu trúc nội hoạt động Phương pháp thử nghiệm Black Box Testing Dựa vào chức Kiểm thử hộp đen (Black box testing) áp dụng đến cấp độ kiểm thử phần mềm: · Kiểm thử đơn vị (Unit testing) · Kiểm thử tích hợp (Integration testing) · Kiểm thử hệ thống (System testing) · Kiểm thử chấp nhận (Acceptance testing) Tuy nhiên, Black box test sử dụng thích hợp kiểm thử hệ thống (System test) Kiểm thử chấp nhận (Acceptance testing) 58 Ưu điểm Black Box Testing · Các Tester thực từ quan điểm người dùng giúp đỡ việc sáng tỏ chênh lệch thông số kỹ thuật · Các Tester theo phương pháp black box khơng có “mối ràng buộc” với code, nhận thức tester đơn giản: source code có nhiều lỗi Sử dụng nguyên tắc, “Hỏi bạn nhận” tester black box tìm nhiều bug nơi mà developer khơng tìm thấy · Tester khơng cần phải biết ngơn ngữ lập trình làm phần mềm thực · Thiết kế kịch kiểm thử nhanh, mà yêu cầu chức xác định Nhược điểm Black Box Testing Người ta nói kiểm thử hộp đen giống bóng tối mà khơng có bóng đèn “, kiểm thử viên khơng biết phần mềm kiểm tra thực xây dựng Đây lý mà kiểm thử viên viết nhiều test case để kiểm tra thứ mà cần ca kiểm thử đủ, và/hoặc số phần phần mềm khơng kiểm thử chút Vịng đời phát triển kiểm thử hộp đen Kiểm thử hộp đen có chu kỳ sống riêng gọi vịng đời kiểm thử phần mềm( STLC) liên quan đến giai đoạn Vòng đời phát triển phần mềm · Requirement – Đây giai đoạn ban đầu SDLC giai đoạn yêu cầu thu thập Kiểm thử phần mềm tham gia vào giai đoạn · Test Planning & Analysis – Các loại thử nghiệm áp dụng cho dự án xác định Một kế hoạch thử nghiệm tạo để xác định rủi ro xảy dự án giảm thiểu rủi ro chúng · Design – Trong giai đoạn trường hợp / tập lệnh thử nghiệm tạo sở tài liệu yêu cầu phần mềm · Test Execution – Trong giai đoạn thực trường hợp thử nghiệm chuẩn bị Phương pháp kiểm thử hộp đen Đoán lỗi: Là kỹ quan trọng tester, chí gọi nghệ thuật Một kiệt tác trực giác Phương pháp đặc biệt dựa vào kinh nghiệm kiến thức tester Nhiều tester cố gắng đoán xem phần hệ thống mà có khả ẩn chứa lỗi Với phương pháp này, họ không cần công cụ hay kịch kiểm thử bắt đầu vào việc Kiểm thử dựa vào đồ thị nguyên nhân – kết (Cause Effect Graphing): kỹ thuật thiết kế kiểm thử phần mềm liên quan đến việc xác định trường hợp (điều kiện đầu vào) hiệu ứng (điều kiện đầu ra) Vì hệ thống phát triển tảng OOP, đó, có đồ thị đối tượng mà hệ thống định nghĩa kết nối Từ đồ thị này, dễ dàng biết mối quan hệ đối tượng mà hệ thống xử lý, từ cho kịch kiểm thử phù hợp Phân vùng tương đương (Equivalence Class) : 59 Là kỹ thuật kiểm thử phần mềm có liên quan đến phân chia giá trị đầu vào thành phân vùng hợp lệ khơng hợp lệ, sau viết kịch kiểm thử cho phần, chọn giá trị đại diện từ phân vùng làm liệu thử nghiệm · Phân vùng tương đương: kỹ thuật thực test theo class đồng giá trị (tập hợp điều kiện thao tác) · Tập hợp giá trị input có kết xử lý, tập hợp thời gian có kết xử lý, tập hợp kết export xử lý giá trị nhập · Mục đích : Giảm đáng kể số lượng test case cần phải thiết kế với lớp tương đương ta cần test phần tử đại diện · Chọn tối thiểu giá trị đại diện từ class đồng giá trị để tiến hành test Nếu có lỗi xảy giá trị khác class đồng giá trị có lỗi giống Phân tích giá trị biên (Boundary Value Analysis): Là kỹ thuật kiểm thử phần mềm có liên quan đến việc xác định biên (ranh giới) điều kiện mô tả cho giá trị đầu vào chọn giá trị biên bên cạnh giá trị biên làm liệu kiểm thử Phương pháp phân tích giá trị biên đưa giá trị đặc biệt, bao gồm loại liệu, giá trị lỗi, bên trong, bên biên giá trị, lớn nhỏ Những kỹ sư nhiều kinh nghiệm chắn gặp phải lỗi hệ thống giá trị biên Đó lý phân tích giá trị biên lại quan trọng kiểm thử hệ thống · Test giá trị biên thực theo trình tự đây: · Tìm đường biên · Quyết định giá trị biên · Quyết định giá trị để test · Giá trị biên · Dưới giá trị biên (Nếu class đồng giá trị) · Trên giá trị biên (Nếu class đồng giá trị) Sử dụng bảng định (Decision Tables) · Là dùng bảng để hiển thị danh sách thao tác phần mềm định điều kiện khác · Decision table testing trọng vào nhiều điều kiện để thực test 3.2 Kiểm thử hộp trắng - White-box Testing White Box Testing gì? Kiểm thử hộp trắng (White Box Testing) kỹ thuật xác minh giúp Tester sử dụng để kiểm tra mã code họ hoạt động dự kiến Có hoạt động kiểm thử hộp trắng: · Kiểm thử luồng điều khiển · Kiểm thử dòng liệu Các kỹ thuật White Box Testing phổ biến Để thực kiểm thử hộp trắng, ta cần tuân thủ bước sau: · Hiểu mã nguồn: Đây việc cần thiết cần làm đầu tiên, kiểm thử hộp trắng liên quan đến kiểm tra hoạt động bên nên bắt buộc phải hiểu mã nguồn mà ta cần kiểm tra Ngoài ra, ta cần phải thực chặt chẽ vấn đề mã hóa an tồn bảo mật cốt lỗi việc kiểm thử 60 Tạo thực trường hợp kiểm thử: Việc viết thêm đoạn mã để kiểm tra đoạn mã nguồn ứng dụng việc cần làm Cần phải phát triển thử nghiệm nhỏ cho quy trình cho chuỗi quy trình ứng dụng Một ví dụ đơn giản với đoạn mã sau: Printme (int a, int b) { Printme is a function int result = a+ b; If (result> 0) Print ("Positive", result) Else Print ("Negative", result) } Mục tiêu đặt xác định tất nhánh, vòng lặp câu lệnh đoạn mã Và trường hợp thử nghiệm White Box Testing A = 1, B = A = -1, B = -3 Các trường hợp thử nghiệm bao phủ điều kiện, nhánh lệnh đoạn mã Các loại kiểm thử hộp trắng · Unit testing: phương pháp kiểm thử thực để kiểm tra ứng dụng Phương pháp quan trọng nên ta bàn sau đọc xong phương pháp kiểm thử Black box testing · Testing for Memory Leaks (kiểm tra rò rỉ nhớ): Rò rỉ nhớ nguyên nhân hàng đầu khiến cho việc chạy ứng dụng trở nên chậm chạp Và có tượng cần phải nghĩ đến trường hợp Ngồi có số phương pháp khác như: White Box Penetration Testing White Box Mutation Testing Ưu điểm White Box Testing: · Tối ưu hóa mã nguồn cách tìm lỗi ẩn · Dễ dàng thực tự động kỹ lưỡng · Và việc kiểm tra bắt đầu sớm GUI không khả dụng Nhược điểm White Box Testing: · Thực phức tạp tốn chi phí · Địi hỏi người kiểm thử phải thực chuyên nghiệp hiểu biết lập trình · Tốn nhiều thời gian · CÂU HỎI VÀ BÀI TẬP Trình bày số khái niệm kiểm thử phần mềm.? Trình bày cấp độ kiểm thử phần mềm? Trình bày kỹ thuật kiểm thử phần mềm.? 61 TÀI LIỆU THAM KHẢO [1] Thạc Bình Cường, Nhập mơn cơng nghệ phần mềm , NXB Giáo dục, 2008 [2] Trần Đình Quế, Nhập môn công nghệ phần mềm, Đại học Đà Nẵng, Năm 2007 [3] Giáo trình nhập mơn UML, Huỳnh Văn Đức, Đoàn Thiện Ngân, NXB Lao động Xã hội,2003 [4] Nguồn Internet 62 ... Mục tiêu: - Nêu định nghĩa, khái niệm phần mềm công nghệ phần mềm - Nêu lịch sử hình thành phát triển cơng nghệ phần mềm - Trình bày tầm quan trọng công nghệ phần mềm Khái niệm phần mềm Mục tiêu:... dung trình bày tài liệu gồm chương: - Giới thiệu chung phần mềm công nghệ phần mềm - Một số mơ hình vịng đời phát triển phần mềm - Xác định đặc tả yêu cầu - Thiết kế phần mềm - Kiểm thử phần mềm. .. -Nêu khái niệm, mục đích yêu cầu phần mềm, đặc tả yêu cầu phần mềm -Nêu ngôn ngữ đặc tả yêu cầu -Trình bày quy trình xác định yêu cầu phần mềm -Trình bày kỹ thuật phát phân tích yêu cầu, kỹ thuật

Ngày đăng: 17/01/2022, 12:27

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN