Internet of Things (IoT) Testing : Những thách thức, Công cụ và Phương pháp tiếp cận

Thuật ngữ Internet of things (IoT) những năm gần đây xuất hiện khá nhiều và thu hút không ít sự quan tâm chú ý của thế giới công nghệ. Là xu hướng đang được các doanh nghiệp trong lĩnh vực công nghệ quan tâm và đầu tư nghiên cứu. Sự bùng nổ của IoT trong tương lai sẽ có tác động mãnh mẽ tới cuộc sống, công việc và xã hội loài người. Theo Gartner, dự kiến đến năm 2020 thế giới sẽ có khoảng 20 tỷ thiết bị sử dụng IoT, là thị trường tỷ đô màu mỡ. Vậy trước hết chúng ta hãy cùng nhau tìm hiểu xem IoT là gì.

Tổng quan về IoT

Internet of things (IoT) là gì?

Theo định nghĩa của Wikipedia:

Internet Vạn Vật, hay cụ thể hơn là Mạng lưới vạn vật kết nối Internet hoặc là Mạng lưới thiết bị kết nối Internet (tiếng Anh: Internet of Things, viết tắt: IoT) là một liên mạng, trong đó các thiết bị, phương tiện vận tải (được gọi là "thiết bị kết nối" và "thiết bị thông minh"), phòng ốc và các trang thiết bị khác được nhúng với các bộ phận điện tử, phần mềm, cảm biến, cơ cấu chấp hành cùng với khả năng kết nối mạng máy tính giúp cho các thiết bị này có thể thu thập và truyền tải dữ liệu. Mỗi vật được nhận dạng riêng biệt trong hệ thống điện toán nhúng và có khả năng phối hợp với nhau trong cùng hạ tầng Internet hiện hữu. Nói cách khác, IoT là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn giản là một tập hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một công việc nào đó.

Một số ứng dụng của IoT trong đời sống:

#1) Công nghệ wearable (thiết bị đeo được)

Các thiết bị đeo được như vòng Fitbit, đồng hồ Apple... có thể đồng bộ hóa dễ dàng với các thiết bị di động. Trợ giúp trong việc thu thập nắm bắt các thông tin sức khỏe cần thiết như theo dõi nhịp tim, huyết áp, hoạt động ngủ ... và hiển thị dữ liệu, thông báo từ thiết bị di động lên chúng.

#2) Cơ sở hạ tầng và phát triển

Với việc sử dụng một ứng dụng như CitySense, sẽ dễ dàng có được dữ liệu ánh sáng ngoài trời trong thời gian thực và dựa trên các dữ liệu này, đèn đường sẽ được bật hoặc tắt. Ngoài ra còn có các ứng dụng khác nhau để kiểm soát tín hiệu giao thông và chỗ đỗ xe trong một bố cục thành phố thông minh.

#2) Chăm sóc sức khỏe

Có rất nhiều ứng dụng để theo dõi tình trạng sức khỏe của bệnh nhân. Dựa trên dữ liệu đo điểm chuẩn, các dịch vụ kiểm soát liều lượng của thuốc tại các thời điểm khác nhau trong một ngày. Có những ứng dụng như UroSense có thể theo dõi mức chất lỏng trong cơ thể bệnh nhân và dựa trên nhu cầu có thể bắt đầu truyền dịch. Đồng thời, dữ liệu có thể được truyền không dây đến các bên liên quan khác nhau.

Các công nghệ được sử dụng trong IoT

Một số công nghệ phổ biến được sử dụng trong IoT như :

  1. RFID [Radio Frequency Code - Mã tần số vô tuyến] tags và EPC [Electronic Product Code - Mã sản phẩm điện tử]
  2. NFC [Near Field Communication - Giao tiếp trường gần] được sử dụng để tương tác hai chiều giữa các thiết bị điện tử. Đây là công nghệ cơ bản dùng cho các điện thoại thông minh và chủ yếu được sử dụng để thực hiện các giao dịch thanh toán không tiếp xúc.
  3. Bluetooth: Được sử dụng cho các liên lạc tầm ngắn. Chủ yếu được sử dụng trong công nghệ wearable.
  4. Z-Wave: Đây là công nghệ truyền thông RF công suất thấp. Chủ yếu được sử dụng cho tự động hóa trong nhà, đèn kiểm soát ...
  5. WiFi: Đây là lựa chọn được sử dụng phổ biến nhất cho IoT. Trong môi trường mạng LAN, nó giúp chuyển các tập tin, dữ liệu và tin nhắn một cách liền mạch.

Testing IoT

Trước khi bắt tay vào kiểm thử IoT chúng ta hãy cùng nhau tìm hiểu mô hình của một hệ thống IoT cụ thể để có cái nhìn rõ hơn về hệ thống IoT. Ví dụ về một hệ thống theo dõi chăm sóc sức khỏe trong y tế : công cụ theo dõi sức khỏe, nhịp tim, chi tiết lượng chất lỏng... và gửi báo cáo cho các bác sĩ. Dữ liệu này được ghi lại trong hệ thống và có thể xem dữ liệu lịch sử bất cứ khi nào. Dựa vào các dữ liệu này các bác sĩ sẽ bổ sung thuốc và chất lỏng... Có thể kích hoạt từ xa từ bất kỳ thiết bị nào (máy tính hoặc thiết bị di động) mà thiết bị y tế được kết nối.

Sau khi đã có kiến trúc sơ lược về hệ thống IoT, để test hệ thống này trước tiên chúng ta cần tìm hiểu các phương pháp tiếp cận test.

Các phương pháp tiếp cận kiểm thử IoT

#1) Usability (Tính khả dụng)

  • Cần đảm bảo tính khả dụng của từng thiết bị được sử dụng tại đây.
  • Thiết bị theo dõi chăm sóc sức khỏe y tế được sử dụng phải đủ tính di động để có thể chuyển vào các phân đoạn y tế khác nhau.
  • Các thiết bị phải đủ thông minh để đẩy không chỉ các thông báo mà còn các thông báo lỗi, cảnh báo, v.v.
  • Hệ thống nên có tùy chọn ghi log ghi lại tất cả các sự kiện nhằm cung cấp sự rõ ràng cho người dùng cuối. Nếu không có khả năng làm điều này thì hệ thống cũng cần đẩy những thông tin này vào cơ sở dữ liệu để lưu trữ.
  • Các thông báo cần được hiển thị và việc xử lý của màn hình phải được thực hiện đúng cách trong các thiết bị (máy tính / thiết bị di động).
  • Khả dụng trong việc hiển thị dữ liệu, xử lý dữ liệu, việc đẩy nhiệm vụ công việc từ các thiết bị cần được kiểm tra kỹ lưỡng.

#2) IoT Security:

  • Thách thức: IoT là trung tâm dữ liệu mà tất cả các thiết bị / hệ thống kết nối hoạt động dựa trên dữ liệu có sẵn.
  • Khi nói đến luồng dữ liệu giữa các thiết bị, luôn có khả năng dữ liệu có thể bị truy cập hoặc đọc trong quá trình truyền.
  • Từ quan điểm kiểm tra trên, chúng ta cần kiểm tra xem liệu dữ liệu có được bảo vệ / mã hóa tới khi nhận hay không (quá trình chuyển từ thiết bị này sang thiết bị khác).
  • Bất cứ nơi nào có giao diện người dùng, chúng ta cần phải đảm bảo có một mật khẩu bảo vệ trên đó.

#3) Connectivity - Khả năng kết nối

  • Vì nó là một giải pháp chăm sóc sức khỏe, kết nối đóng một vai trò rất quan trọng. Hệ thống phải luôn sẵn sàng và phải có kết nối liền mạch với các bên liên quan.
  • Hai điều rất quan trọng cần kiểm tra:
    • Khả năng kết nối, truyền dữ liệu, nhận nhiệm vụ công việc từ các thiết bị phải liền mạch khi kết nối UP và đang chạy.
    • Kịch bản cho khi kết nối down. Không thể tránh khỏi sẽ có lúc hệ thống sẽ ngoại tuyến nên cần kiểm tra các điều kiện trong trường hợp này. Khi hệ thống không có sẵn trên mạng, phải có một cảnh báo để nhắc nhở các bác sĩ để họ theo dõi tình trạng sức khỏe bằng tay không phụ thuộc vào hệ thống cho đến khi nó trở lại bình thường. Mặt khác, phải có một cơ chế trong hệ thống có thể lưu trữ tất cả dữ liệu trong nó trong thời gian offline. Khi hệ thống trực tuyến, tất cả dữ liệu đó sẽ được truyền đi. Không nên để mất dữ liệu trong bất kỳ hoàn cảnh nào.

#4) Performance - Hiệu năng:

  • Khi nói về một hệ thống cho một lĩnh vực chăm sóc sức khỏe, chúng ta cần đảm bảo rằng hệ thống có thể mở rộng đủ cho toàn bộ bệnh viện.
  • Khi thực hiện kiểm thử, chỉ thực hiện cho 2-10 bệnh nhân tại một thời điểm và dữ liệu được truyền đến 10-20 thiết bị. Nhưng khi toàn bộ bệnh viện được kết nối thì có khoảng 180-200 bệnh nhân sẽ được kết nối với hệ thống, dữ liệu được truyền đi lớn hơn nhiều so với dữ liệu được kiểm tra.
  • Là người kiểm thử, chúng ta cần đảm bảo hệ thống hoạt động giống nhau mặc dù dữ liệu được thêm khi truyền đi.
  • Chúng ta cũng nên kiểm tra các tiện ích giám sát để hiển thị việc sử dụng hệ thống, sử dụng điện, nhiệt độ ...

#5) Kiểm tra khả năng tương thích:

  • Nhìn vào cấu trúc phức tạp của một hệ thống IoT, việc kiểm tra tính tương thích là điều bắt buộc.
  • Các mục cần kiểm tra : nhiều phiên bản hệ điều hành, nhiều loại trình duyệt và các phiên bản tương ứng, thế hệ thiết bị, chế độ giao tiếp (Ví dụ: Bluetooth 2.0, 3.0) là cần thiết để kiểm tra khả năng tương thích IoT.

#6) Pilot Testing - Kiểm thử thí điểm:

  • Trong kiểm thử hệ thống IoT thì việc kiểm thử thí điểm là nên dùng.
  • Chỉ thử nghiệm trong Lab để đảm bảo sản phẩm / hệ thống hoạt động tốt. Tuy nhiên, điều này có thể phản tác dụng khi gặp các điều kiện / bước / kịch bản thời gian thực.
  • Trong quá trình thử nghiệm thí điểm, sẽ giới hạn một số lượng người dùng nhất định trong trường thực để sử dụng hệ thống. Họ sử dụng ứng dụng và đưa ra phản hồi trên hệ thống. Những nhận xét này có ích giúp ứng dụng đủ mạnh để triển khai sản xuất.

#7) Regulatory Testing - Kiểm tra tính tuân thủ quy định:

  • Đây là một hệ thống chăm sóc sức khỏe cần phải vượt qua nhiều trạm kiểm soát kiểm tra sự tuân thủ quy định.
  • Hãy đặt giả thiết tình huống mà sản phẩm pass qua tất cả các bước thử nghiệm nhưng không thành công trong danh sách kiểm tra tuân thủ quy định cuối cùng (thử nghiệm được thực hiện bởi cơ quan quản lý).
  • Tốt hơn là hãy thử nghiệm để đạt được các yêu cầu quy định khi bắt đầu chu trình phát triển. Nên tạo 1 checklist để kiểm tra.
  • Bằng cách đó, chúng ta sẽ đảm bảo rằng sản phẩm được chứng nhận đáp ứng được danh sách quy định kiểm tra.

#8) Upgrade testing - Kiểm thử nâng cấp:

  • IoT là sự kết hợp của nhiều giao thức, thiết bị, hệ điều hành, phần mềm, phần cứng, lớp mạng, v.v.
  • Khi thực hiện nâng cấp, có thể là cho hệ thống hoặc cho bất kỳ mục nào liên quan như đã nêu ở trên, cần thực hiện kiểm tra hồi quy triệt để để khắc phục các vấn đề liên quan đến nâng cấp.

Thách thức khi kiểm thử IoT

#1) Hardware-Software Mesh - Lưới phần cứng / phần mềm

IoT là một kiến trúc được kết hợp chặt chẽ giữa các thành phần phần cứng và phần mềm khác nhau. Hệ thống không chỉ bao gồm các ứng dụng phần mềm mà còn là những phần cứng, cảm biến, cổng thông tin... cũng đóng một vai trò quan trọng.

Chỉ kiểm tra chức năng không thôi là chưa đủ để hoàn toàn xác nhận hệ thống. Luôn có sự phụ thuộc lẫn nhau về môi trường, truyền dữ liệu... Vì vậy, nó trở thành một công việc tẻ nhạt so với thử nghiệm một hệ thống chung nhất (hệ thống chỉ gồm phần mềm hoặc phần cứng).

#2) Mô-đun tương tác thiết bị

Vì đây là một kiến trúc kết hợp giữa các bộ phần cứng và phần mềm khác nhau, nên bắt buộc phải "nói chuyện" với nhau trong thời gian thực / gần thời gian thực. Khi cả hai được tích hợp với nhau, những thứ như bảo mật, tương thích ngược, các vấn đề nâng cấp sẽ trở thành một thách thức đối với nhóm thử nghiệm.

#3) Real-time data testing - Kiểm thử dữ liệu thời gian thực

Như đã nói ở trên, kiểm thử thí điểm / kiểm thử tính tuân thủ quy định kiểm tra là bắt buộc đối với một hệ thống như thế này, nó cũng trở nên rất khó khăn để có được dữ liệu đó.

Đối với 1 tester, để nhận được dữ liệu từ các trạm kiểm soát quy định hoặc kiểm thử thí điểm trong hệ thống được triển khai thử nghiệm là rất khó khăn. Bước này càng trở nên khó khăn hơn nếu hệ thống liên quan đến Chăm sóc sức khỏe theo ví dụ của chúng tôi. Vì vậy, đó vẫn là một thách thức lớn đối với nhóm thử nghiệm.

#4) Giao diện người dùng

IoT được lan truyền trên các thiết bị thuộc mọi nền tảng (iOS, Android, Windows, linux). Việc kiểm thử trên một số thiết bị có thể được thực hiện nhưng thử nghiệm nó trên tất cả các thiết bị thì gần như là việc không thể.

Nhưng chúng ta không thể bỏ qua khả năng giao diện người dùng đang truy cập từ một thiết bị mà chúng ta không thử nghiệm hoặc mô phỏng. Đó là một thách thức khó vượt qua.

#5) Tính khả dụng của mạng

Kết nối mạng đóng một vai trò quan trọng đối với IoT nên kiến trúc IoT phải được kiểm tra trong tất cả các loại kết nối / tốc độ mạng.

Để kiểm tra điều này, các mô phỏng mạng ảo chủ yếu được sử dụng để thay đổi tải mạng, kết nối, độ ổn định... Tuy nhiên, dữ liệu / mạng thời gian thực luôn là một kịch bản mới và nhóm thử nghiệm không biết nút cổ chai sẽ phát triển ở đâu trong thời gian chạy dài.

Một số tool hỗ trợ test

#1) Software:

  1. Wireshark: Đây là một phần mềm mã nguồn mở để giám sát lưu lượng truy cập giao diện, địa chỉ host nguồn/đích ...
  2. Tcpdump: Tương tự như Wireshark chỉ khác ở chỗ nó không có giao diện người dùng (GUI). Đây là một tiện ích dựa trên dòng lệnh giúp người dùng hiển thị TCP/IP và hiển thị các gói tin được truyền hoặc nhận qua mạng.

#2) Hardware:

  1. JTAG Dongle: Tương tự như trình gỡ lỗi (debugging) trong các ứng dụng của PC. Nó giúp gỡ lỗi mã nền tảng đích và hiển thị từng bước một.
  2. Digital Storage Oscilloscope: Được sử dụng để kiểm tra các sự kiện khác nhau với time stamps, ổn định nguồn điện và kiểm tra tính toàn vẹn của tín hiệu.
  3. Software Defined Radio: Được sử dụng để mô phỏng máy thu / máy phát cho một phạm vi rộng của các cổng không dây (wireless gateways)

Đối với thế giới đang phát triển xung quanh chúng ta, IoT là một thị trường đang phát triển và có nhiều cơ hội. Tiện ích hỗ trợ IoT, ứng dụng thiết bị thông minh và mô-đun truyền thông đóng một vai trò quan trọng trong việc nghiên cứu và đánh giá hiệu suất và hành vi của các dịch vụ IoT khác nhau.

Thiết kế kém của các thiết bị và dịch vụ hỗ trợ IoT có thể cản trở hoạt động chính xác của ứng dụng và lần lượt ảnh hưởng tiêu cực đến trải nghiệm người dùng cuối.

Bài dịch từ : https://www.softwaretestinghelp.com/internet-of-things-iot-testing/