Menu

Phân tích sơ yếu lý lịch: dữ liệu kiểm thử

Phân tích sơ yếu lý lịch là bài toán biến tệp tự do thành trường có cấu trúc, và không có chuẩn định dạng chung. Bài này nói về biến thể bố cục cần phủ, cách tổ chức dữ liệu cố định, và lý do sinh ngẫu nhiên gây khó tái hiện.

Đăng ngày

  • dữ liệu thử
  • nghề nghiệp
  • kiểm thử

Phân tích sơ yếu lý lịch là khâu biến một tệp do người khác tạo ra thành các trường có cấu trúc: chức danh, công ty, khoảng thời gian, trường, bằng cấp, kỹ năng. Vì tệp đầu vào không theo một chuẩn chung nào, đây là bài toán chịu đựng sai khác chứ không phải bài toán kiểm tra định dạng cố định. Bài này bàn cách chọn biến thể bố cục để thử, cách đặt tên dữ liệu cố định, và những chỗ bộ dữ liệu thường mai một.

Vì sao phân tích sơ yếu lý lịch không có chuẩn định dạng chung?

Không tồn tại một định dạng tệp mà mọi công cụ tạo hồ sơ đều tuân theo. Mỗi công cụ soạn thảo có cách đặt tiêu đề, sắp xếp mục và trình bày ngày tháng riêng, và người viết thường tự điều chỉnh thêm. Ngay cả khi hai tệp cùng nói về một người, bố cục của chúng vẫn có thể khác nhau hoàn toàn.

Vì đầu vào đa dạng như vậy, mục tiêu của kiểm thử không phải là xác nhận bộ phân tích đọc đúng một mẫu cụ thể, mà là đo mức độ thu hồi trường trong điều kiện bố cục thay đổi. Nói cách khác, bạn muốn biết bộ phân tích còn tìm ra đúng chức danh và khoảng thời gian khi tiêu đề bị đổi tên, khi thông tin được chia hai cột, hay khi toàn bộ quá trình làm việc bị viết thành một đoạn văn.

Cách nhìn này thay đổi cả cách đánh giá. Một bộ phân tích đạt trên mẫu chuẩn nhưng hỏng khi gặp bố cục hai cột là bộ phân tích chưa sẵn sàng, dù mọi phép kiểm tra đơn vị đều xanh.

Nên phủ những biến thể bố cục nào khi kiểm thử?

Danh sách dưới đây không cần đầy đủ, nhưng nếu thiếu một trong những mục này thì bộ dữ liệu còn lỗ hổng lớn.

  • Tiêu đề mục bị đổi tên hoặc viết bằng ngôn ngữ khác với phần thân.
  • Bố cục hai cột, trong đó cột phụ chứa kỹ năng và cột chính chứa quá trình làm việc.
  • Quá trình làm việc bị viết thành một đoạn văn liền mạch thay vì gạch đầu dòng.
  • Kỹ năng được trình bày thành một dải nhãn nằm ngang, không có dấu phân cách rõ ràng.
  • Bảng kê khai có cột ngày tháng ở giữa, khiến thứ tự đọc khác thứ tự hiển thị.
  • Bố cục nhiều trang, trong đó tiêu đề mục bị lặp lại ở đầu mỗi trang.
  • Tệp chỉ có một trang nhưng dùng phông chữ và cỡ chữ khác thường để phân cấp.

Mỗi biến thể như vậy nên tương ứng với ít nhất một tệp thử, và tên tệp nên nói lên biến thể chứ không phải số thứ tự. Khi một bài thử hỏng, bạn cần biết ngay nó hỏng ở dạng bố cục nào.

Tổ chức dữ liệu cố định theo tình huống hay theo số thứ tự

Theo tình huống. Một tệp tên là hồ sơ số bảy không cho người đọc biết nó dùng để làm gì, và đến lúc nó hỏng thì không ai dám sửa vì sợ ảnh hưởng tới bài thử khác. Ngược lại, một tệp có tên mô tả tình huống, chẳng hạn hồ sơ chia hai cột hoặc hồ sơ viết thành đoạn văn, tự nói rõ nó đang bảo vệ điều gì.

Cách tổ chức theo tình huống còn giúp bạn phát hiện lỗ hổng. Khi liệt kê tên các tệp thử, bạn thấy ngay mình đã phủ những dạng bố cục nào và còn thiếu dạng nào, điều mà một dãy số thứ tự không thể hiện được.

Một điểm nữa là mỗi tệp thử nên đi kèm phần mong đợi rõ ràng: những trường nào phải được nhận ra, và trường nào được phép thiếu. Không có phần mong đợi thì bài thử chỉ kiểm tra được rằng chương trình không sập, chứ không kiểm tra được rằng nó đọc đúng.

Vì sao sinh ngẫu nhiên làm lỗi khó tái hiện

Khi dữ liệu đầu vào được sinh ngẫu nhiên mỗi lần chạy, một bài thử hỏng sẽ không để lại dấu vết nào tái hiện được. Lần chạy sau cho ra đầu vào khác, lỗi biến mất, và người sửa buộc phải đoán. Đây là kiểu lỗi tốn thời gian nhất trong loại bài toán này.

Cách xử lý là cố định đầu vào cho mọi bài thử tự động, và chỉ dùng sinh ngẫu nhiên cho những lần khảo sát thủ công. Nếu cần cả hai, hãy tách hẳn hai chế độ: một chế độ chạy trên bộ tệp cố định dùng trong tích hợp liên tục, và một chế độ khảo sát dùng ngoài luồng.

Sinh ngẫu nhiên vẫn có chỗ dùng, chẳng hạn khi bạn muốn ước lượng mức độ thu hồi trên một lượng lớn hồ sơ. Nhưng khi đó, hãy ghi lại hạt giống hoặc lưu lại chính tệp đã sinh, để lần sau bạn quay lại đúng tình huống đó.

Dữ liệu cố định xuống cấp theo thời gian

Bộ tệp thử không phải tài sản viết một lần rồi để yên. Theo thời gian, mẫu tệp mà người dùng thật tạo ra thay đổi, các công cụ soạn thảo cập nhật cách trình bày, và ngôn ngữ được hỗ trợ có thể tăng hoặc giảm. Một tệp thử cũ có thể vẫn chạy xanh nhưng không còn đại diện cho đầu vào thật.

Vì vậy, hãy đặt lịch rà soát định kỳ cho bộ tệp thử, và gắn cho mỗi tệp một ghi chú về việc nó mô phỏng dạng đầu vào nào. Khi một dạng bố cục không còn xuất hiện trong thực tế, bạn có thể bỏ tệp đó một cách có ý thức thay vì giữ mãi vì không ai dám xóa.

Phần dành cho nhà phát triển

Hãy tách phần đọc tệp khỏi phần suy luận trường, để hai phần có thể được kiểm tra riêng. Phần đọc tệp trả về văn bản và vị trí; phần suy luận biến văn bản thành trường. Khi một bài thử hỏng, bạn biết ngay lỗi nằm ở tầng nào.

Vài điểm thực tế:

  • Đặt tên tệp thử theo tình huống bố cục, và giữ phần mong đợi ngay cạnh tệp đó.
  • Ghi lại những trường được phép thiếu, vì một hồ sơ không có phần kỹ năng vẫn là hồ sơ hợp lệ.
  • Cố định đầu vào trong luồng tích hợp liên tục, và tách chế độ khảo sát ngẫu nhiên ra ngoài.
  • Đo mức độ thu hồi theo từng trường thay vì một điểm số tổng, để biết trường nào đang yếu.
  • Rà soát định kỳ và loại bỏ những tệp mô phỏng dạng bố cục đã biến mất khỏi thực tế.

Khi cần thêm tệp đầu vào để thử, trình tạo CV và dữ liệu việc làm giả sinh ra hồ sơ có cấu trúc đầy đủ theo quốc gia bạn chọn, phù hợp để dựng phần mong đợi cho từng bài thử. Hai bài nên đọc cùng là biểu mẫu tuyển dụng và các ca kiểm thử cho phía biểu mẫu nhận dữ liệu, và dữ liệu hồ sơ kiểm thử nghề nghiệp cho cấu trúc bản ghi đích. Phần nguyên tắc chung về dữ liệu thử trong luồng nhập liệu quốc tế được bàn ở bài kiểm thử địa chỉ và số điện thoại quốc tế.

Các tệp và trường mong đợi dùng làm ví dụ trong bài đều là mẫu do chúng tôi tự dựng cho mục đích thử nghiệm; chúng không chứa nội dung hồ sơ của người thật, không dùng để luyện hệ thống nhận diện một cá nhân cụ thể, và không thay thế bất kỳ khâu xác minh nào.

Bước tiếp theo

Hãy liệt kê những dạng bố cục mà tệp đầu vào của bạn thực sự gặp, dựng một tệp thử cho mỗi dạng, và viết phần mong đợi theo từng trường. Sau đó chạy lại toàn bộ trên luồng tích hợp liên tục với đầu vào cố định, để mỗi lần hỏng đều tái hiện được. Khi cần thêm dữ liệu nền, mở trình tạo CV và dữ liệu việc làm giả để tạo hồ sơ mẫu theo quốc gia bạn đang phục vụ.

Đọc tiếp

Bài viết về Trình tạo CV và dữ liệu việc làm giả