Hiện nay đi cùng với sự phát triển của công nghệ cũng như Internet có rất nhiều phần mềm cũng như là các ứng dụng với nhiều mục đích sử dụng khác nhau đã được ra đời trong số đó có hệ thống nhúng và Internet vạn vật. Đi cùng với sự phát triển đó thì kiểm thử phần mềm đã và đang đóng một vai trò vô cùng quan trọng trong việc xây dựng, hoàn thiện hệ thống
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN -🙞🙞🙞🙞 - BÁO CÁO THỰC NHIỆM HỌC PHẦN: KIỂM THỬ PHẦN MỀM Đề tài: “Nghiên cứu kỹ thuật kiểm thử Embedded IOT” Giáo viên hướng dẫn: Nhóm sinh viên : Sinh viên : Hà Nội, năm 2022 MỤC LỤC LỜI MỞ ĐẦU .2 PHẦN 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Khái niệm kiểm thử phần mềm .3 1.2 Các nguyên tắc kiểm thử phần mềm 1.3 Quy trình kiểm thử phần mềm 1.3.1 Lập kế hoạch kiểm thử 1.3.2 Thiết kế kiểm thử 1.3.3 Phát triển kịch kiểm thử .5 1.3.4 Thực kiểm thử 1.3.5 Đánh giá 1.4 Một số chiến lược kiểm thử 1.4.1 Kiểm thử hộp trắng (White-box Testing) 1.4.2 Kiểm thử hộp đen (Black-Box Testing) PHẦN 2: KỸ THUẬT KIỂM THỬ NHÚNG (EMBEDDED) 2.1 Tổng quan hệ thống nhúng phần mềm nhúng 2.1.1 Hệ thống nhúng 2.1.2 Phần mềm nhúng .8 2.2 Các loại kiểm thử nhúng 2.2.1 Kiểm thử tích hợp 10 2.2.2 Kiểm thử đơn vị hệ thống .10 2.2.3 Kiểm thử tích hợp hệ thống 11 2.2.4 Kiểm tra xác nhận hệ thống 11 2.3 So sánh kiểm thử nhúng với kiểm thử phần mềm 11 2.4 Thách thức kiểm thử nhúng 13 2.5 Kết luận 14 PHẦN 3: KỸ THUẬT KIỂM THỬ IOT 15 3.1 Internet of Things gì? .15 3.1.1 Thành phần phổ biến hệ thống IOT 15 3.1.2 Một số ứng dụng IOT đời sống .15 3.2 Khái niệm kiểm thử IOT 19 3.3 Các loại kiểm thử IOT 20 3.3.1 Kiểm tra khả khả dụng (Usability Testing) 21 3.3.2 Kiểm tra khả tương thích (Compatibility Testing) 21 3.3.3 Kiểm tra độ tin cậy khả mở rộng (Reliability) 22 3.3.4 Kiểm tra tính tồn vẹn liệu (Data integrity) 22 3.3.5 Kiểm tra bảo mật (Security) 22 3.3.6 Kiểm tra hiệu (Performance) 22 3.4 Quy trình kiểm tra IOT .23 3.5 Thách thức kiểm thử IOT 25 3.5.1 Hardware- Software Mesh- Lưới phần cứng/ phần mềm .25 3.5.2 Mô-đun tương tác thiết bị .25 3.5.3 Real-time data testing - Kiểm thử liệu thời gian thực .26 3.5.4 Giao diện người dùng .26 3.6 Các phương pháp kiểm thử IOT 27 3.7 Công cụ kiểm thử IOT 27 3.7.1 Về phần mềm 28 3.7.2 Về phần cứng 29 KẾT LUẬN .30 TÀI LIỆU THAM KHẢO 31 MỤC LỤC HÌNH ẢNH Hình 1: Một quy trình kiểm thử phần mềm Hình 2:Kiểm thử hộp trắng Hình 3: Kiểm thử hộp đen Hình 4: Ví dụ hệ thống nhúng Hình 5: Các loại kiểm thử nhúng .10 Hình 6: Internet of thing .15 Hình 7: Hình minh họa nhà thơng minh 16 Hình 8: Hình minh họa sản phẩm 16 Hình 9: Hình minh họa lưới thơng minh 17 Hình 10: Hình minh họa xe kết nối 17 Hình 11: Hình minh họa thiết bị theo dõi sức khỏe 18 Hình 12: Hình minh họa chuỗi cung ứng 19 Hình 13: Hình minh họa chăn ni thơng minh 19 Hình 14: Mơ hình hệ thống IOT 20 Hình 15: Các loại kiểm thử IOT 20 Hình 16: Công cụ kiểm thử Shodan 27 Hình 17: Cơng cụ kiểm thử Wireshark 28 Hình 18: TCPDUMP hệ điều hành linux 28 Hình 19: Thiết bị JTAG Dongle PC 29 Hình 20: Thiết bị đo xung điện tử Oscilloscope 29 LỜI MỞ ĐẦU Hiện với phát triển công nghệ Internet có nhiều phần mềm ứng dụng với nhiều mục đích sử dụng khác đời số có hệ thống nhúng Internet vạn vật Đi với phát triển kiểm thử phần mềm đóng vai trị vơ quan trọng việc xây dựng, hoàn thiện hệ thống Để hiểu tầm quan trọng việc kiểm thử cơng ty IT chun phát triển phần mềm kiểm thử giúp cho việc rà sốt, kiểm tra, có lỗi phát sinh xác định sớm giải trước bàn giao sản phẩm tới phía khách hàng Do việc kiểm thử cần chi phí cho nhân lực trình kiểm thử nên số công ty đặc biệt công ty nhỏ với ngân sách eo hẹp thường bỏ qua bước mà không màng đến rủi ro sản phẩm mang lại Để tạo trải nghiệm sử dụng tốt đến với tay khách hàng người sử dụng chất lượng sản phẩm phải đặt lên hàng đầu Vì lý nên cơng việc kiểm thử theo yêu cầu hệ thống kiểm thử tìm lỗi sản phẩm gần khâu bắt buộc trình phát triển hệ thống PHẦN 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Khái niệm kiểm thử phần mềm - Kiểm thử phần mềm trình thực thi chương trình với mục đích tìm lỗi - Kiểm thử phần mềm đảm bảo sản phẩm phần mềm đáp ứng xác, đầy đủ theo yêu cầu khách hàng, yêu cầu sản phẩm đề đặt - Kiểm thử phần mềm cung cấp mục tiêu, nhìn độc lập phần mềm, điều cho phép việc đánh giá hiểu rõ rủi ro thực thi phần mềm - Kiểm thử phần mềm tạo điều kiện cho bạn tận dụng tối đa tư đánh giá sáng tạo để bạn phát điểm mà người khác chưa nhìn thấy 1.2 Các nguyên tắc kiểm thử phần mềm - Kiểm thử chứng minh diện lỗi - Kiểm thử tồn khơng khả thi - Kiểm thử sớm tốt - Lỗi thường phân bố tập trung - Nghịch lý thuốc trừ sâu - Kiểm thử phụ thuộc vào ngữ cảnh - Quan niệm sai lầm việc “hết lỗi” 1.3 Quy trình kiểm thử phần mềm Những hành động quy trình kiểm thử phần mềm gồm: Thực kiểm thử Lập kế hoạch Phát triển kịch kiểm thử Thiết kế kiểm thử Đánh giá Hình 1: Một quy trình kiểm thử phần mềm 1.3.1 Lập kế hoạch kiểm thử Lập kế hoạch kiểm thử để loại kiểm thử, chiến lược kiểm thử chí thời gian xác định lực lượng kiểm thử viên cho dự án kiếm thử Kết bước lập kế hoạch kiểm thử tài liệu kế hoạch kiểm thử phần mềm Các bước việc lập kế hoạch kiểm thử gồm: xác định yêu cầu kiểm thử, khảo sát rủi ro, xác định chiến lược, xác định nhân lực, lập kế hoạch chi tiết, tổng hợp tạo kế hoạch, xem xét kế hoạch kiểm thử 1.3.2 Thiết kế kiểm thử Việc thiết kế kiểm thử để xây dựng tình kiểm thử (Test Case), mơ tả chi tiết tình huống, xác định yêu cầu đầu vào đầu mong đợi tình kiểm thử Các bước thiết kế bao gồm: xác định mơ tả tình huống, mô tả bước chi tiết để kiểm thử, xem xét khảo sát độ bao phủ việc kiểm thử, xem xét tình bước kiểm thử 1.3.3 Phát triển kịch kiểm thử Việc phát triển kịch kiểm thử giúp tự động hóa việc thực thi bước kiểm thử định nghĩa bước thiết kế kiểm thử Bước thường không bắt buộc loại mức kiểm thử Các bước phát triển kịch kiểm thử: tạo kịch bản, kiểm thử kịch bản, thành lập liệu dành cho kịch bản, xem xét khảo sát độ bao phủ việc kiểm thử 1.3.4 Thực kiểm thử Thực bước kiểm thử thiết kế (hoặc thi hành kịch kiểm thử tiến hành tự động) ghi nhận kết Các bước thực kiểm thử: thực bước kiểm thử, đánh giá trình kiểm thử, thẩm định kết kiểm thử 1.3.5 Đánh giá Đánh giá tồn q trình kiểm thử, bao gồm xem xét đánh giá kết kiểm thử, liệt kê lỗi, định yêu cầu thay đổi tính tốn số liệu liên quan đến q trình kiểm thử (chẳng hạn số giờ, thời gian kiểm thử, số lượng lỗi, phân loại lỗi…) Các bước đánh giá kết kiểm thử: phân tích kết kiểm thử đề xuất yêu cầu sửa chữa, đánh giá độ bao phủ, phân tích lỗi, xác định q trình kiểm thử có đạt u cầu hay khơng, báo cáo tổng hợp 1.4 Một số chiến lược kiểm thử 1.4.1 Kiểm thử hộp trắng (White-box Testing) output input Hình 2:Kiểm thử hộp trắng Kiểm thử hộp trắng gì? Kiểm thử Hộp Trắng kỹ thuật kiểm thử phần mềm cấu trúc bên trong, thiết kế mã hóa phần mềm kiểm tra để xác minh luồng đầu vào- đầu để cải thiện thiết kế, khả sử dụng bảo mật Người kiểm thử chọn đầu vào để thực đường dẫn thơng qua mã xác định đầu thích hợp Kiến thức lập trình kiến thức thực tiễn cần thiết kiểm thử hộp trắng Kỹ thuật kiểm thử hộp trắng: Mỗi kỹ thuật kiểm thử hộp trắng phân tích Độ phủ mã Phân tích Code Coverage giúp loại bỏ lỗ hổng Test Case Khi lỗ hổng xác định, bạn tạo trường hợp thử nghiệm để xác minh phần chưa kiểm tra mã, tăng chất lượng sản phẩm phần mềm Dưới số kỹ thuật kiểm thử hộp trắng quan trọng: o Bao phủ câu lệnh o Bao phủ định o Bao phủ nhánh o Bao phủ luồng liệu o Bao phủ đường dẫn 1.4.2 Kiểm thử hộp đen (Black-Box Testing) output input Hình 3: Kiểm thử hộp đen Kiểm thử hộp đen gì? Kiểm thử hộp đen: phương pháp kiểm thử phần mềm thực mà cấu tạo bên phần mềm, cách mà tester kiểm tra xem hệ thống hộp đen, khơng có cách nhìn thấy bên hộp Kỹ thuật kiểm thử hộp đen: Vì chiến lược kiểm thử hộp đen thích hợp cho mức độ kiểm thử nên nhiều người nghiên cứu tìm hiểu đưa nhiều kỹ thuật kiểm thử khác Dưới số phương pháp kiểm thử có nhiều ưu điểm phổ biến nay: o Phân vùng tương đương (Equivalence Partition) o Phân tích giá trị biên (Boundary Value Analysis) o Bảng định (Decision Table Testing) o Sơ đồ chuyển đổi trạng thái (State Transition Testing) o Kỹ thuật đoán lỗi (Error Guessing) Lưới thông minh Lưới thông minh lĩnh vực ứng dụng khác bật Lưới thơng minh hứa hẹn trích xuất thông tin hành vi người tiêu dùng nhà cung cấp điện theo cách tự động nhằm nâng cao hiệu quả, kinh tế độ tin cậy phân phối điện, 41.000 tìm kiếm Google hàng tháng minh chứng cho tính phổ biến khái niệm Hình 9: Hình minh họa lưới thơng minh Xe kết nối Công nghệ xe kết nối mạng lưới rộng lớn rộng lớn gồm nhiều cảm biến, ăng-ten, phần mềm nhúng công nghệ hỗ trợ giao tiếp để điều hướng giới phức tạp chúng tơi Nó có trách nhiệm đưa định với quán, xác tốc độ Hình 10: Hình minh họa xe kết nối 17