Thuật Ngữ Testing

Non-printing character là gì?

Non-printing characters là những ký tự được tạo ra do một phím hoặc một tổ hợp phím trên bàn phím máy tính, điện thoại, hay máy tính bảng. Dịch ra Tiếng Việt, thì non-printing characters có nghĩa là “ký tự in ra không thấy.” Ví dụ như khi bạn mở MS Word lên rồi nhấn phím Tab và Enter sau đó in ra giấy, bạn sẽ không thấy gì cả. Tuy nhiên, nếu các hành động này trên một màn hình nhập liệu của các ứng khác trên web hay điện thoại (mobile application) thì có thể làm xảy ra một số lỗi không đoán trước được. Bên cạnh các phím chức năng như Tab, Space, Shift, Enter, F1,… F12 thì các tổ hợp phím cũng có thể tạo ra những ký tự non-printing character (không hiển thị khi in).

Theo định nghĩa của https://en.wikipedia.org/ thì 

Non-printing characters or formatting marks are characters for content designing in word processors, which are not displayed at printing. It is also possible to customize their display on the monitor. The most common non-printable characters in word processors are pilcrow, space, non-breaking space, tab character etc.

Dịch nôm na ra tiếng Việt là

Các “ký tự không in” (in ra giấy sẽ không thấy) hoặc dấu định dạng (formatting marks) là các ký tự để thiết kế nội dung trong trình xử lý văn bản, không được hiển thị khi in. Cũng có thể tùy chỉnh hiển thị của chúng trên màn hình. Các ký tự không thể in được phổ biến nhất trong trình xử lý văn bản là dấu cách, khoảng trắng, dấu cách không ngắt, ký tự tab, v.v.

Cách tạo non-printing characters

Hôm nay, mình sẽ hướng dẫn bạn làm sao để nhập được ký tự xóa (backspace) vào một textbox nhé. Trong quá trình tìm cách tái hiện lại lỗi <0x08> thì lại phát hiện được thêm 2 ký tự khác là <0x1c> và <0x1d>. Những ký tự này thường tạo ra edge case (Trường hợp lắc léo và phức tạp).

Mời xem thêm giải thích chi tiết và ví dụ edge case ở đây nhé.

Trong video này mình sẽ hướng dẫn chi tiết cách tạo ra một vài non-printing characters.

Áp dụng non-printing characters vào kiểm thử

Như đã đề cập ở đầu bài viết, khi bạn bấm các tổ hợp phím chức năng thì có thể nó tạo ra các ký tự đặc biệt và lạ. Tuy nhiên, các trường nhập vào (input field) trên màn hình các ứng dụng phần mềm trên web và điện thoại, thì nó là NHẬP VÀO, nên mình chỉ quan tâm đến hai thứ sau:

  1. Tổ hợp phím tạo ra các ký tự đặc biệt (bao gồm emoji)
  2. Tổ hợp phím Ctrl+V (hoặc CMD+V trên macbook) để dán giá trị từ bộ nhớ tạm

Bạn thử nhấn giữ phím ALT (hoặc phím option trên macbook) và gõ các ký tự khác như 1-0 hoặc asdf. Đây là một ví dụ mình nhấm phím option và gõ một số ký tự khác trên bàn phím.

Để kiểm thử hiệu quả, các bạn đặc biệt chú ý trường hợp dán giá trị từ bộ nhớ tạm (RAM). Bạn phải nhớ kiểm thử cả hai trường hợp là dán giá trị hợp lệ (mong muốn: nên cho phép) và dán giá trị không hợp lệ thì sẽ không cho phép hoặc cho phép dán nhưng khi bấm nút xử lý sẽ báo lỗi.

Những câu hỏi thường gặp

Dưới đây là những câu hỏi thường gặp liên quan đến non-printing character.

Bug liên quan đến non-printing character có nghiêm trọng không?

Mức độ nghiêm trọng của bug được tính dựa trên mức độ thiệt hại do bug đó gây ra. Nên nếu lỗi do non-printing character gây ra mà ít nghiêm trọng, chỉ hiển thị bị xấu trên UI (như rớt dòng, hoặc hiển thị ngoài khung qui định, v.v…) thì chắc không nghiêm trọng.

Non-printing character hay gây ra lỗi gì?

Lỗi do non-printing character gây ra sẽ khác nhau tuỳ thể loại sản phẩm mà team bạn đang phát triển như websites, Windows hay mobile applications. Thường thì non-printing character hay gây ra những lỗi liên quan đến dữ liệu do người dùng nhập vào. Có thể là gây ra NullPointerException hoặc lỗi liên quan đến UI như “bể font” hoặc hiển thị trang trắng. Nguy hiểm hơn, có thể liên quan đến lỗi bảo mật (security).

Non-printing characters gây ra bug có nên fix gấp không?

Một con bug được xem là có nên fix gấp hay không, hay còn gọi là priority để fix, thì liên quan đến nhiều yếu tố. Những yếu tố thường gặp như: chức năng bị lỗi là quan trọng, khách hàng cần chức năng đó sớm, v.v… Vì thế, có thể nói bug do non-printing character gây ra cũng hay được fix sớm nếu bug đó nghiêm trọng, còn không thì từ từ fix cũng được. Fix là sửa lỗi.

Happy testing!

You Might Also Like

Leave a Reply

Your email address will not be published.