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.

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., Hadoop và Bả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.
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.
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. MongoDB và Cassandra 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.
Kiểm thử hiệu năng được thực hiện theo thứ tự này.
- 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.
- Xác định và thiết kế khối lượng công việc tương ứng
- 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)
- 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).
- 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.



