Hướng dẫn kiểm thử dữ liệu lớn: Khái niệm, chiến lược và cách kiểm thử

⚡ Tóm tắt thông minh

Kiểm thử dữ liệu lớn (Big Data Testing) xác minh rằng ứng dụng dữ liệu lớn xử lý hàng terabyte dữ liệu một cách chính xác, nhanh chóng và an toàn, bằng cách kết hợp xác thực giai đoạn chuẩn bị dữ liệu, xác thực MapReduce và xác thực đầu ra với kiểm tra kiến ​​trúc và hiệu suất trên toàn bộ cụm Hadoop phân tán.

  • 🔘 Trọng tâm cốt lõi: Việc xử lý dữ liệu trên toàn bộ cụm máy chủ được xác thực, chứ không phải các tính năng riêng lẻ của sản phẩm.
  • ☑️ Ba giai đoạn: Việc chuẩn bị dữ liệu, MapReduce và xác thực đầu ra là những bước quan trọng trong mọi chu kỳ kiểm thử Hadoop.
  • Chất lượng dữ liệu là ưu tiên hàng đầu: Tính phù hợp, độ chính xác, tính trùng lặp, tính nhất quán, tính hợp lệ và tính đầy đủ được kiểm tra trước khi tiến hành thử nghiệm ứng dụng.
  • 🧪 ArchiKết cấu rất quan trọng: Các dịch vụ hiệu năng và dự phòng đảm bảo cụm máy chủ vẫn hoạt động bình thường ngay cả khi một nút bị lỗi mà không làm giảm thông lượng.
  • 🛠️ Thông số điều chỉnh: Các yếu tố như bố cục lưu trữ, nhật ký cam kết, tính đồng thời, bộ nhớ đệm, thời gian chờ và cài đặt JVM đều được đo lường.
  • ⚠️ Những thách thức đã biết: Khoảng cách về kỹ năng tự động hóa, độ trễ của máy ảo và tập dữ liệu khổng lồ làm phức tạp quá trình kiểm thử dữ liệu lớn.

Hướng dẫn kiểm thử dữ liệu lớn bao gồm chiến lược, các giai đoạn kiểm thử Hadoop và kiểm thử hiệu năng.

Kiểm thử dữ liệu lớn là gì?

Kiểm thử dữ liệu lớn là một quy trình kiểm thử ứng dụng dữ liệu lớn nhằm đảm bảo tất cả các chức năng của ứng dụng hoạt động như mong đợi. Mục tiêu của kiểm thử dữ liệu lớn là đảm bảo hệ thống dữ liệu lớn hoạt động trơn tru và không có lỗi, đồng thời duy trì hiệu suất và bảo mật.

Dữ liệu lớn là tập hợp các bộ dữ liệu khổng lồ mà không thể xử lý bằng các kỹ thuật tính toán truyền thống. Việc kiểm thử các bộ dữ liệu này liên quan đến nhiều công cụ, kỹ thuật và khung xử lý khác nhau. Dữ liệu lớn liên quan đến việc tạo, lưu trữ, truy xuất và phân tích dữ liệu, với quy mô, sự đa dạng và tốc độ đáng kể. Bạn có thể tìm hiểu thêm về... Dữ Liệu Lớn., HadoopBản đồGiảm trước khi bạn bắt đầu thử nghiệm.

Chiến lược thử nghiệm dữ liệu lớn là gì?

Kiểm thử ứng dụng Big Data tập trung vào việc xác minh khả năng xử lý dữ liệu hơn là kiểm thử từng tính năng riêng lẻ của sản phẩm phần mềm. Trong kiểm thử Big Data, kiểm thử hiệu năng và kiểm thử chức năng là hai yếu tố then chốt.

Trong chiến lược kiểm thử dữ liệu lớn, các kỹ sư QA xác minh quá trình xử lý thành công hàng terabyte dữ liệu bằng cách sử dụng cụm máy chủ thông thường và các thành phần hỗ trợ khác. Điều này đòi hỏi kỹ năng kiểm thử cao vì tốc độ xử lý rất nhanh. Quá trình xử lý có thể thuộc ba loại:

  • Xử lý hàng loạt: Dữ liệu được lưu trữ sẽ được xử lý theo lịch trình, vì vậy các bài kiểm tra nhằm mục đích đánh giá mức độ hoàn thành và độ chính xác của công việc.
  • Xử lý thời gian thực: Các bản ghi được xử lý ngay khi nhận được, vì vậy các bài kiểm tra tập trung vào độ trễ và mất dữ liệu.
  • Xử lý tương tác: Các nhà phân tích truy vấn trực tiếp, vì vậy các bài kiểm tra nhắm mục tiêu vào thời gian phản hồi của các truy vấn ad hoc.

Sơ đồ dưới đây tóm tắt chiến lược.

Sơ đồ chiến lược kiểm thử dữ liệu lớn thể hiện các loại xử lý dữ liệu được các kỹ sư QA xác minh.

Cùng với đó, chất lượng dữ liệu cũng là một yếu tố quan trọng trong kiểm thử Hadoop. Trước khi kiểm thử ứng dụng, cần phải kiểm tra chất lượng dữ liệu, và điều này nên được coi là một phần của kiểm thử cơ sở dữ liệu. Nó bao gồm việc kiểm tra nhiều đặc điểm khác nhau như tính phù hợp, độ chính xác, tính trùng lặp, tính nhất quán, tính hợp lệ, tính đầy đủ của dữ liệu, v.v. Tiếp theo trong hướng dẫn kiểm thử Hadoop này, chúng ta sẽ tìm hiểu cách kiểm thử các ứng dụng Hadoop.

Cách kiểm thử ứng dụng Hadoop

Hình dưới đây cung cấp cái nhìn tổng quan về các giai đoạn trong việc kiểm thử ứng dụng Dữ liệu lớn.

Các giai đoạn tổng quan của việc kiểm thử ứng dụng Big Data trên cụm Hadoop.

Kiểm thử dữ liệu lớn, hay kiểm thử Hadoop, có thể được chia thành ba bước chính.

Bước 1: Xác thực giai đoạn dữ liệu

Bước đầu tiên trong hướng dẫn Kiểm thử Dữ liệu lớn này được gọi là giai đoạn tiền Hadoop, và nó liên quan đến việc xác thực quy trình.

  • Dữ liệu từ nhiều nguồn khác nhau như hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), blog, mạng xã hội, v.v. cần được xác thực để đảm bảo dữ liệu chính xác được đưa vào hệ thống.
  • So sánh dữ liệu nguồn với dữ liệu được đẩy vào hệ thống Hadoop để đảm bảo chúng khớp với nhau
  • Xác minh dữ liệu chính xác đã được xuất ra.tracted và được tải vào đúng vị trí HDFS địa điểm thư viện nào

Công cụ như Tài năng và Datameer có thể được sử dụng để xác thực dữ liệu trong quá trình chuẩn bị.

Bước 2: Xác thực “MapReduce”

Bước thứ hai là xác thực “MapReduce”. Ở giai đoạn này, người kiểm thử Big Data sẽ xác minh tính hợp lệ của logic nghiệp vụ trên mỗi nút và sau đó xác thực lại sau khi chạy trên nhiều nút, đảm bảo rằng:

  • Quá trình MapReduce hoạt động chính xác.
  • Các quy tắc tổng hợp hoặc phân tách dữ liệu được thực hiện trên dữ liệu
  • Các cặp giá trị khóa được tạo
  • Xác thực dữ liệu sau quá trình MapReduce.

Bước 3: Giai đoạn xác thực đầu ra

Giai đoạn cuối cùng hoặc thứ ba của thử nghiệm Hadoop là quá trình xác thực đầu ra. Các tệp dữ liệu đầu ra được tạo và sẵn sàng để chuyển đến EDW (Kho dữ liệu doanh nghiệp) hoặc bất kỳ hệ thống nào khác dựa trên yêu cầu.

Các hoạt động trong giai đoạn thứ ba bao gồm:

  • Để kiểm tra các quy tắc chuyển đổi được áp dụng chính xác
  • Để kiểm tra tính toàn vẹn dữ liệu và tải dữ liệu thành công vào hệ thống đích
  • Để kiểm tra xem không có dữ liệu nào bị hỏng bằng cách so sánh dữ liệu đích với dữ liệu hệ thống tệp HDFS

Archikiểm tra kiến ​​trúc

Giờ đây, sự chú ý chuyển từ dữ liệu sang cụm máy chủ chứa dữ liệu đó.

Hadoop xử lý khối lượng dữ liệu rất lớn và tiêu tốn nhiều tài nguyên. Do đó, kiểm thử kiến ​​trúc là rất quan trọng để đảm bảo sự thành công của dự án Big Data của bạn. Một hệ thống được thiết kế kém hoặc không đúng cách có thể dẫn đến suy giảm hiệu suất và hệ thống có thể không đáp ứng được yêu cầu. Tối thiểu, hiệu suất và các dịch vụ kiểm thử chuyển đổi dự phòng nên được chạy trong môi trường Hadoop.

Kiểm thử hiệu năng bao gồm kiểm tra thời gian hoàn thành công việc, mức sử dụng bộ nhớ, thông lượng dữ liệu và các chỉ số hệ thống tương tự. Mục đích của dịch vụ kiểm thử chuyển đổi dự phòng là để xác minh rằng quá trình xử lý dữ liệu diễn ra liền mạch trong trường hợp các nút dữ liệu gặp sự cố.

Kiểm tra năng suất

Kiểm thử hiệu năng cho dữ liệu lớn bao gồm ba lĩnh vực chính.

  • Thu thập và xử lý dữ liệu: Ở giai đoạn này, người kiểm thử Big Data sẽ xác minh tốc độ hệ thống có thể xử lý dữ liệu từ nhiều nguồn dữ liệu khác nhau. Việc kiểm thử bao gồm xác định số lượng tin nhắn mà hàng đợi có thể xử lý trong một khung thời gian nhất định. Nó cũng bao gồm tốc độ dữ liệu có thể được chèn vào kho dữ liệu cơ bản, ví dụ như tốc độ chèn vào một hàng đợi. MongoDBCassandra cơ sở dữ liệu.
  • Xử lí dữ liệu: Việc này bao gồm xác minh tốc độ thực thi các truy vấn hoặc các tác vụ MapReduce. Nó cũng bao gồm việc kiểm tra quá trình xử lý dữ liệu một cách độc lập khi kho dữ liệu cơ bản được điền đầy đủ vào các tập dữ liệu. Ví dụ, chạy các tác vụ MapReduce trên HDFS cơ bản.
  • Hiệu năng của các thành phần phụ: Các hệ thống này được cấu thành từ nhiều thành phần, và việc kiểm tra từng thành phần một cách riêng biệt là rất cần thiết. Ví dụ: tốc độ lập chỉ mục và xử lý thông điệp, các tác vụ MapReduce, hiệu suất truy vấn, tìm kiếm, v.v.

Phương pháp kiểm tra hiệu suất

Kiểm thử hiệu năng cho ứng dụng Dữ liệu lớn bao gồm việc kiểm thử khối lượng dữ liệu khổng lồ, cả dữ liệu có cấu trúc và không có cấu trúc, và đòi hỏi một phương pháp kiểm thử cụ thể để kiểm thử lượng dữ liệu khổng lồ như vậy.

Quy trình làm việc bên dưới thể hiện trình tự thực hiện của một bài kiểm tra hiệu năng.

Quy trình kiểm thử hiệu năng từ thiết lập cụm máy chủ Big Data đến cấu hình tối ưu.

Kiểm thử hiệu năng được thực hiện theo thứ tự này.

  1. Quá trình bắt đầu bằng việc thiết lập cụm máy chủ Big Data, sau đó sẽ được kiểm tra hiệu năng.
  2. Xác định và thiết kế khối lượng công việc tương ứng
  3. Chuẩn bị cho từng khách hàng riêng lẻ (kịch bản tùy chỉnh được tạo ra)
  4. Tiến hành kiểm thử và phân tích kết quả (nếu không đạt được mục tiêu, hãy tinh chỉnh thành phần và thực hiện lại).
  5. Cấu hình tối ưu

Các thông số để kiểm tra hiệu suất

Các thông số khác nhau cần được kiểm tra trong quá trình thử nghiệm hiệu năng bao gồm:

  • Lưu trữ dữ liệu: Dữ liệu được lưu trữ như thế nào ở các nút khác nhau?
  • Nhật ký cam kết: Kích thước tối đa cho phép của nhật ký cam kết (commit log)
  • Đồng thời: Có bao nhiêu luồng có thể thực hiện các thao tác ghi và đọc?
  • Bộ nhớ đệm: Điều chỉnh cài đặt bộ nhớ đệm “bộ nhớ đệm hàng” và “bộ nhớ đệm khóa”.
  • Thời gian chờ: Các giá trị cho thời gian chờ kết nối, thời gian chờ truy vấn, v.v.
  • Các tham số JVM: Kích thước heap, thuật toán thu gom rác GC, v.v.
  • Hiệu năng của MapReduce: Sắp xếp, hợp nhất, v.v.
  • Hàng đợi tin nhắn: Tốc độ truyền tin nhắn, kích thước, v.v.

Nhu cầu về môi trường thử nghiệm

Môi trường thử nghiệm cần thiết phụ thuộc vào loại ứng dụng bạn đang thử nghiệm. Đối với thử nghiệm phần mềm Big Data, môi trường thử nghiệm nên bao gồm các yếu tố sau.

  • Nó cần có đủ không gian để lưu trữ và xử lý một lượng lớn dữ liệu.
  • Nó phải có một cụm với các nút và dữ liệu phân tán
  • Nó phải có mức sử dụng CPU và bộ nhớ tối thiểu để duy trì hiệu suất cao nhằm kiểm tra hiệu suất Dữ liệu lớn

Kiểm thử dữ liệu lớn so với kiểm thử cơ sở dữ liệu truyền thống

Bảng dưới đây so sánh hai lĩnh vực này dựa trên từng thuộc tính cụ thể.

Bất động sản Kiểm tra cơ sở dữ liệu truyền thống Kiểm tra dữ liệu lớn
Ngày Người kiểm thử làm việc với dữ liệu có cấu trúc. Trình kiểm tra hoạt động với cả dữ liệu có cấu trúc và không có cấu trúc
Phương pháp thử nghiệm Phương pháp thử nghiệm được xác định rõ ràng và được thử nghiệm theo thời gian Phương pháp thử nghiệm đòi hỏi nỗ lực R&D tập trung
Chiến lược thử nghiệm Người kiểm thử có thể lựa chọn chiến lược "Lấy mẫu" thực hiện thủ công hoặc chiến lược "Kiểm chứng toàn diện" bằng công cụ tự động hóa. Chiến lược “lấy mẫu” trong dữ liệu lớn là một thách thức.
Cơ sở hạ tầng Nó không yêu cầu môi trường thử nghiệm đặc biệt vì kích thước tệp bị giới hạn Nó yêu cầu một môi trường thử nghiệm đặc biệt do kích thước dữ liệu và tệp lớn (HDFS)
Công cụ xác thực Người kiểm thử sử dụng macro dựa trên Excel hoặc các công cụ tự động hóa dựa trên giao diện người dùng. Không có công cụ cụ thể nào được xác định; phạm vi rất rộng, từ các công cụ lập trình như MapReduce đến HiveQL.
Công cụ kiểm tra Các công cụ kiểm thử có thể được sử dụng với kiến ​​thức vận hành cơ bản và ít thời gian đào tạo. Việc vận hành một công cụ kiểm thử đòi hỏi một bộ kỹ năng và đào tạo chuyên biệt. Hơn nữa, các công cụ này vẫn đang trong giai đoạn phát triển ban đầu và theo thời gian, chúng có thể được bổ sung thêm các tính năng mới.

Các công cụ được sử dụng trong các kịch bản dữ liệu lớn

Bảng dưới đây phân loại các công cụ thông dụng theo lớp cụm.

Dữ Liệu Lớn. Cluster Công cụ dữ liệu lớn
Không có SQL: CouchDB, Cơ sở dữ liệu MongoDB, Cassandra, Redis, ZooKeeper, HBase
Giảm bản đồ: Hadoop, Tổ ong, Pig, Cascading, Oozie, Kafka, S4, MapR, Dòng chảy
Lưu trữ: S3, HDFS (Hệ thống tệp phân tán Hadoop)
May chủ: Đàn hồi, Heroku, Google App Engine, EC2
Chế biến: R, Yahoo! Ống, Turk cơ khí, BigSheets, Datameer

Những thách thức trong thử nghiệm dữ liệu lớn

Ba trở ngại thực tế này thường xuyên xuất hiện trong hầu hết các dự án Dữ liệu lớn.

  • Tự động hóa: kiểm thử tự động hóa Đối với Big Data, cần người có chuyên môn kỹ thuật. Hơn nữa, các công cụ tự động không đủ khả năng xử lý các vấn đề bất ngờ phát sinh trong quá trình thử nghiệm.
  • Ảo hóa: Đây là một trong những giai đoạn không thể thiếu của quá trình kiểm thử. Độ trễ của máy ảo tạo ra các vấn đề về thời gian trong kiểm thử hiệu năng dữ liệu lớn theo thời gian thực. Ngoài ra, việc quản lý hình ảnh trong dữ liệu lớn cũng rất phức tạp.
  • Tập dữ liệu lớn: Thể tích mang đến ba áp lực khác nhau.
    • Cần xác minh thêm dữ liệu và cần thực hiện nhanh hơn
    • Cần tự động hóa nỗ lực kiểm tra
    • Cần có khả năng kiểm thử trên nhiều nền tảng khác nhau.

Thử thách kiểm tra hiệu năng

  • Bộ công nghệ đa dạng: Mỗi thành phần phụ thuộc một công nghệ khác nhau và cần được kiểm tra riêng biệt.
  • Thiếu các công cụ cụ thể: Không có công cụ nào có thể thực hiện kiểm thử từ đầu đến cuối. Ví dụ, NoSQL có thể không phù hợp với hàng đợi tin nhắn.
  • Lập trình kịch bản kiểm thử: Việc thiết kế các kịch bản kiểm thử và các trường hợp kiểm thử đòi hỏi trình độ lập trình cao.
  • Môi trường thử nghiệm: Do dung lượng dữ liệu lớn nên cần một môi trường kiểm thử đặc biệt.
  • Giải pháp giám sát: Hiện nay có rất ít giải pháp có thể giám sát toàn bộ môi trường.
  • Giải pháp chẩn đoán: Cần có một giải pháp tùy chỉnh để phân tích sâu hơn các khu vực gây tắc nghẽn hiệu năng.

Câu Hỏi Thường Gặp

Chất lượng dữ liệu được kiểm tra như một phần của quá trình kiểm thử cơ sở dữ liệu, trước khi bắt đầu kiểm thử ứng dụng. Người kiểm thử xác minh tính phù hợp, độ chính xác, tính trùng lặp, tính nhất quán, tính hợp lệ và tính đầy đủ, đồng thời tìm kiếm các giá trị null, các vấn đề về mã hóa và sự dịch chuyển cột.

Trí tuệ nhân tạo (AI) tạo ra dữ liệu kiểm thử tổng hợp mô phỏng dữ liệu thực tế mà không làm lộ thông tin riêng tư, phát hiện các bất thường trong quy trình mà các quy tắc cố định bỏ sót, và ưu tiên các bước kiểm tra xác thực cần thực hiện. Việc xem xét lại logic nghiệp vụ bởi con người vẫn rất cần thiết.

Copilot và các trợ lý ảo tương tự giúp tăng tốc các đoạn mã lặp lại: Truy vấn so sánh HiveQL, PySpark Các kịch bản xác nhận và đối chiếu. Hãy chạy mã được tạo ra trên một tập dữ liệu đã được kiểm chứng là tốt trước, bởi vì một truy vấn hợp lý có thể xác thực các cột sai.

Việc xác thực lược đồ giúp đảm bảo các bản ghi đến có chứa các trường, kiểu dữ liệu và khả năng chấp nhận giá trị null như mong đợi trước khi chúng được chuyển đến HDFS hoặc kho lưu trữ NoSQL. Phát hiện sự sai lệch lược đồ trong quá trình nhập dữ liệu có chi phí thấp hơn nhiều so với việc kiểm tra tính hợp lệ của lược đồ. tracsau đó xuất ra kết quả bị lỗi.

Các nhóm kết hợp một tập hợp con được che giấu lấy mẫu từ môi trường sản xuất, các bản ghi được tạo ra nhằm kiểm tra các trường hợp ngoại lệ như giá trị rỗng và dữ liệu ngoại lai, và phát lại các luồng dữ liệu lịch sử. Chỉ lấy mẫu thôi đã tiềm ẩn rủi ro, bởi vì các bản ghi hiếm gặp lại chính là nguyên nhân gây ra những lỗi đáng để tìm ra.

Kiểm thử ETL xác thực các tải dữ liệu có cấu trúc vào kho dữ liệu bằng các công cụ được xác định và khối lượng có thể dự đoán được. Kiểm thử dữ liệu lớn bao gồm dữ liệu có cấu trúc và không có cấu trúc trên một cụm phân tán, trong đó việc xác thực được viết bằng MapReduce hoặc HiveQL.

Đo tốc độ tiếp nhận so với kích thước tin nhắn, chèn một lượng tin nhắn tồn đọng để xác nhận hàng đợi được phục hồi, và tắt một nút giữa chừng để kiểm tra xem có tin nhắn nào bị mất hay không. So sánh cửa sổ đếm được của các sự kiện nguồn với đích đến.

SQL và HiveQL, một ngôn ngữ duy nhất cho MapReduce hay Spark Cần có kiến ​​thức về HDFS và kho lưu trữ NoSQL, cùng với kỹ năng lập trình kịch bản cho các công cụ kiểm thử. Khả năng tư duy phân tích càng quan trọng hơn, bởi vì hiện chưa có công cụ nào thực hiện được tất cả các bước từ đầu đến cuối.

Tóm tắt bài viết này với: