Skip to main content

[Bài dịch] Độ phủ của test case bao nhiêu là đủ? Code Coverage ?



Trên một ngôi chùa nhỏ tên là Toàn Âm Tự trên núi Lỗ Tề (Lotte Tower)

Dự án kiểm thử phần mềm đếm số hạt bụi mịn 2.5pm ở kinh đô Hà Nộ đang bắt đầu triển khai phase Unit test.
Sáng sớm, một hòa thượng mới nhập chùa một năm hỏi đại sư Thích Đề Mô - trưởng dự án. 
Thưa đại sư, con sẵn sàng chạy Unit test cho chức năng đo bụi mịn, vậy chẳng hay đại sư muốn tỷ lệ phủ (code coverage) là bao nhiêu?

Đại sư nhìn chú với ánh mắt hiền từ và nói:
"Con ah, đừng lo lắng quá về tỷ lệ phủ, con hãy cố gắng viết thật nhiều những test case tốt."
Chú vâng lời, cúi chào và rời đi.

Ánh nắng cuối thu len lói qua những màn sương lờ mờ chiếu rọi khắp sân chùa. Mặt trời đã lên quá ngọn tre đằng ngà. Một hòa thượng khác đến hỏi câu hỏi tương tự cho chức năng hiển thị trên mobile app. Đại sư từ tốn chỉ vào nối nước đang sôi dưới bếp và hỏi:
"Con hãy cho ta biết, ta nên cho bao nhiêu gạo vào nồi nước đang sôi kia?"

Chú hòa thượng lúng túng đáp:
"Thưa đại sư, thầy hỏi khó quá. Điều này còn phụ thuộc vào số lượng người ăn, thức ăn kèm theo, số gạo còn lại... thậm chí là không biết những người được ăn nồi cơm này đã chịu đói bao lâu rồi".

"Chính xác" Đại sư mỉm cười.
Chú giường như nhận ra chân lý, cúi lạy và rời đi.

Sau bữa cơm trưa, nắng giòn hơn, trời quang gió thoảng đưa mùi hoa đại thơm mát. Một vị hòa thượng ngoài tam tuần đến gặp đại sư và đặt câu về độ phủ của chức năng kết xuất báo cáo. 

Đại sư cau mày, đập tay mạnh xuống bàn trà và nói lớn:
"Không thể ít hơn 80%"
Chú ấy cung kính đi giật lùi, cúi chào và rời đi. 

Chứng kiến toàn bộ câu chuyện, chú tiểu theo hầu đại sư cả ngày thắc mắc hỏi:
"Thưa đại sư, tại sao cùng một câu hỏi về độ phủ mà thầy lại có ba câu trả lời hoàn toàn khác nhau đến vậy?"

Đại sư ân cần nói: "Lại đây nào, hãy cùng ta thưởng trà, ta sẽ giải thích cho con hiểu".

"Với chú hòa thượng nhỏ tuổi mới tiếp xúc với testing. Hiện tại, còn quá nhiều code chưa được test. Nếu tập trung vào độ phủ sẽ tạo thêm áp lực không cần thiết cho chú ta. Chú ấy chỉ cần viết và chạy được một vài test case cơ bản là được rồi.

Chú thứ hai là người đã có kinh nghiệm về cả code và test rồi. Ta chỉ trả lời bằng một câu hỏi về số lượng test case cần tạo ra phụ thuộc vào nhiều yếu tố. Mà những yếu tố ấy, chú ấy nắm rõ hơn ta nhiều."

"Con đã hiểu rồi, vậy tại sao với hòa thượng thứ ba, đại sư chỉ trả lời ngắn gọn như vậy?". Chú tiểu ngơ ngác hỏi tiếp.

Đại sư cười lớn, nhấp một ngụm trà xanh và úp cốc vào khay một cách ngay ngắn.

"Với chú thứ ba sắp được promotion lên làm trưởng nhóm, thực ra đó không hẳn là một câu hỏi. Thậm chí là chú ấy không cần câu trả lời nào từ ta cả. Chú ấy chỉ cần một sự xác nhận từ cấp trên."

Hai thầy trò lặng nhìn về phía cuối chân trời đỏ xám ngoạch. Làn gió cuối thu mang hơi lạnh từ phương bắc ùa về cuốn bụi mù mịt quấn quanh những dãy núi bằng kính loang loáng, lặng lẽ mọc lên từng ngày giữa lõi kinh đô văn hiến xứ Vệ Nạ.

Tham khảo:

Comments

Popular posts from this blog

[Git] Handle trailing space when patching with git

After complete coding one module in development branch. Next phase is merging. Obviously, you can merge source code automatically without no errors happen. However, life is not dream. Create a patch git diff HEAD > newTariff.patch Apply patch git apply newTariff.patch then problem happens Problem git apply newTariff.patch:106: trailing whitespace. patch does not apply Route cause: Nguyên nhân: Do trong source code có những dấu space thừa (ô vuông màu đỏ hình dưới) Some whitespaces is existed in your patch. (red area in below pictures) Fix Clean white space and patch again. Cách khắc phục Xóa những dấu space này đi và thực hiện patch lại Make up after complete coding. Find and clean whitespace before create patch file. Sửa sau khi code xong Kiểm tra sau khi code xong có lỗi này không git diff HEAD --check Prevent whitespace by manually when typing source code Sửa ngay khi đang code =>Bật chức năng hiển thị các dấu whitespace, hoặc remove trailing ...

How to test frame buffer in linux

The intended goal of this article is to provide the user with enough information so they can display an image onto a screen of their choosing. How to re-build frame buffer testing application. Base knowledge http://trac.gateworks.com/wiki/OpenEmbedded/Video_Out Frame buffer test application - rebuild fb-test-app step 1: Download soure code ( git installed on your machine and account in git-hub is required) https://github.com/prpplague/fb-test-app Command in git: git init git clone https://github.com/prpplague/fb-test-app.git step 2: Change makefile vi Makefile //open Makefile by vim editor :set nu //show line number replace from line 6 to line 12 by folow code: CC=arm-linux-gnueabi-gcc CFLAGS=-02 -Wall Save change command :wq step 3: Rebuid Type “make” command step 4: Copy execute file to target system by filezilla or something like that step 5: Remote target by root account, change mode of execute file (what copied from host) ...

[Vi] Công nghệ phát triển ngược đời - How is AI harming my world

Tiếng cười khanh khách của mấy cậu sinh viên quốc tế người Bắc Ấn sau bài kiểm tra cuối khóa (a final exam) làm gã thấy buồn một góc tâm hồn. Sự trống rỗng ngay lập tức xâm chiếm lấy tâm trí gã sau khi nộp bài môn thi cuối cùng của kỳ học. Gã hiểu gã quá mà, gã đang cố gắng giải thích cho nỗi nhục của chính bản thân ở bên trong. Đầu gã thoáng nghĩ về cái lần thi cuối kỳ một môn học ở bậc thạc sỹ nơi quê nhà hơn mười năm về trước, cái ánh mắt khinh bỉ đến ám ảnh của một anh dọn vệ sinh dành cho những học viên cao học đang quay cóp trong giờ thi của một trường đại học hàng đầu quốc gia như vết dao khứa vào lòng tự trọng của gã. Vết thương vẫn nhói đau lại khi những mùa thi đến. Một lão già sinh viên quốc tế ranh ma. Gã đang học lại cái thứ mà gã đã học từ hai mươi năm về trước với một thứ ngôn ngữ không mới và cái tâm bằng sắt nung. Kinh nghiệm làm việc chuyên môn lâu năm cộng với việc vừa được trang bị thứ vũ khí khoa học tối tân AI (Trí truệ nhân tạo) khiến lão trở thành sát thủ trong ...