Vụ Nổ Hạt Nhân Trên Cao (HANES) đã xảy ra với độ chính xác tuyệt đối. Tướng quân MacArthur gật đầu hài lòng một cách hài lòng khi nhận được báo cáo về vụ nổ. Hơn nữa, các bản báo cáo của điệp viên nằm vùng xác nhận rằng việc chuẩn bị cho cuộc xâm lăng đã dần ngưng lại. MacArthur háo hức trông chờ ảnh vệ tinh trong các ngày kế tiếp. Ông hi vọng chúng sẽ cho thấy quân phe Trục đang rút lui theo quy mô lớn và biến mất về doanh trại của chúng.
“Hơi? Tôi đã nói thẳng hai hoặc ba lần, nhưng hắn vẫn thích trên phân. Như kiểu hắn muốn làm anh tôi vậy.”
“Jasper là một lập trình viên tốt, Alphonse. Có rất nhiều thứ mày có thể học được từ nó. Nên cố bỏ qua tính cách của nó. Được chứ?”
“Nếu anh đã nói vậy. Tôi vẫn chưa thấy ấn tượng. Hắn làm tôi điên lên!”
“Chà, nếu mày đã làm việc với nó mấy tiếng trong hôm nay rồi. Có lẽ đã đến lúc đổi bạn. Nếu mày thích, tao sẽ bảo nó giúp Avery, và tao làm việc với mày.”
Nghe có vẻ là ý tưởng hay. Tránh xa khỏi Jasper, kể cả chỉ trong vài tiếng, bỗng trở nên cần thiết. “Tôi sẽ biết ơn anh!”
“Được rồi, để tao xử lý. Hơn nữa, sẽ khá vui khi xem hai tên đó làm cùng nhau.” Jerry nháy mắt với tôi; và tôi nhận ra rằng để Avery và Jasper cùng nhau có thể thật sự như đang châm pháo.
Tôi rảo bước qua chỗ cửa sổ để xem vầng sao quay vòng một cách lười biếng quạnh tàu bọn tôi. Vầng sao là một vòng các ngôi sao đủ màu bao quanh vầng tàu, ở vị trí như thể con tàu đang cố đâm qua nó. Quầng ngoài có màu xanh lục nhạt với sắc trắng đậm dần vào trung tâm và nhạt dần qua màu đỏ. Ở tốc độ chậm hơn, màu sắc pha dần vào vầng sao rộng hơn và trở thành sao của trời đêm. Tôi biết hiệu ứng đó được gây ra bởi hiệu ứng Doppler và quang sai, nhưng nó không làm tôi khỏi bị thôi miên bởi vẻ đẹp chắc chắn của nó.
Jerry đến sau vài phút và nói: “Được rồi, xong hết rồi. Đây thực ra cũng là lúc thích hợp để Avery và tao nghỉ, do bọn tao đã hoàn thành phần story của bọn tao. Tao đã bảo Jasper làm tiếp với Avery phần story bọn mày đang làm dở. Mày có thể giúp tao viết thêm mấy bài kiểm thử chấp thuận.”
Đây đúng là tin tốt. Tôi cũng cần nghỉ viết mã; và tôi cũng chán phần story của Đăng ký Đồ rồi. Nhưng tôi băn khoăn.
“Không phải là Carole sẽ viết mấy bài kiểm thử sao, Jerry? Suy cho cùng, cô ấy là khách hàng, có phải không?”
“À, cô ấy vẫn đang viết chúng. Mày sẽ thấy cô ấy làm cùng Jean và tao. Nhưng cô ấy không thể viết hết, nên tao giúp cô ấy.”
Chúng tôi bắt đầu đi dần về phòng máy trong lúc nói chuyện. Jerry có vẻ chu đáo một lúc và nói:
“Quy trình thông thường là để cho khách hàng, hoặc bên phân tích với nhiệm vụ báo cáo lại cho khách, viết các bài kiểm thử chính, và bên QA sẽ viết các bài kiểm thử chấp thuận phụ.”
“Bài kiểm thử chấp thuận chính là như nào?”
“À, ừ, mày vẫn chưa gặp Ivar. Đó là thuật ngữ mà Ivar dùng để miêu tả bài kiểm thử dùng cho ‘con đường hạnh phúc’ của một chức năng.”
“Con đường hạnh phúc?”
“Ừ, lúc mà mọi thứ hoạt động đúng. Mày biết đấy, không có dữ liệu không hợp lý, không có thất bại, không có exception, không có lỗi cockpit.”
“À, được rồi, vậy bài kiểm thử chấp thuận Đăng ký Đồ đầu tiện mà ta làm là “Chính” vì nó kiểm tra xem bộ đồ có được đăng ký không nếu mọi thử hoạt động ổn. Nhưng bài thứ hai ta làm cho thấy đăng ký sẽ thất bại nếu như bộ đồ đã được đăng ký, vậy nó sẽ là – à – Phụ?”
“Ừ, mày hiểu rồi đấy. Nhận tiện, QA là những người được đào tạo để nghĩ ra tất cả những thứ có thể bị sai. Họ khám phá giới hạn của các điều kiện và những trường hợp thất bại. Nên họ thường sẽ viết các bài kiểm thử chấp thuận “Phụ”.”
“Thường?”
“Ừ. Mày có thấy ai làm QA ở phòng máy chưa?”
“Không, chỉ có anh, tôi, Avery, Jasper, Carole, và Jean. Thỉnh thoảng thấy Jasmine và Adelade, nhưng họ đang làm dự án SMC.”
Jerry gật đầu. “Đúng. Chúng ta chưa có đội QA. Jean đang cố tìm hai người QA để phân công. Cho đến lúc đó, nó phụ thuộc vào ta.”
“Được rồi, tôi hiểu. Vậy anh và tôi sẽ biết mấy bài kiểm thử chấp thuận phụ?”
“Ừ, kế hoạch là vậy. Chúng ta sẽ xem phần kiểm thử chính mà Carole đã biết, và từ đó hình dung ra những thứ có thể bị sai và viết bài kiểm thử cho những trường hợp đó.”
Bọn tôi đi tiếp trong im lặng đến phòng máy, và ngồi xuống chỗ Jerry và Avery ngồi để làm việc. Jerry mở trang FitNesse và di chuyển đến trang StoryDescriptions. Nó trông như này:
“Chà!” Tôi nói. “Ai đó có vẻ đã bận rộn.”
“Ừ, Carole và Jean đã nhập vào các bài kiểm thử chấp thuận chính từ hôm qua. Họ đã hoàn thành khá nhiều. Thử xem phần UnRegisterSuit xem.”
Jerry ấn vào đường dẫn, và màn hình hiện ra phần sau:
“Được rồi, tao cá trang đầu chỉ hủy đăng ký một bộ đồ đã được đăng ký.”
Đây là trò đùa sao? Tôi tặng Jerry một nụ cười kiểu Jasper và nói; “Theo như tên gọi, tôi nghĩ có vẻ thế.”
Jerry cười khẩy và ấn vào đường dẫn
Hủy đăng ký đồ.Người dùng có thể hủy đăng ký một bộ đồ được đăng ký một cách chính thống. Phần này sẽ bỏ bộ đồ ra khỏi kho. |
Bọn tôi xem trang này trong vài giây. Và Jerry nói: “Được rồi, đúng như tao nghĩ. Cô ấy đưa bài bộ đồ đã được đăng ký vào cơ sở dữ liệu và hủy đăng ký chúng. Rồi cô ấy đảm bảo rằng số lượng bộ đồ bị giảm đi, và tin nhắn phù hợp được hiển thị.”
“Đợi đã!” Tôi nói. “Jasper và tôi mới viết vài phần fixture chức năng vào khoảng một tiếng trước, Sao Carole và Jean lại biết để sử dụng chúng?”
“Mày không bảo họ hả?”
“Không, bọn tôi nên làm vậy hả?”
“À, như thế thì lịch sự hơn. Họ có rất nhiều bài kiểm thử chấp thuận cần phải viết, tao chắc họ sẽ rất trân trọng nếu có trợ giúp.”
“À…”
“Đằng nào thì, mấy bài kiểm thử đã có trên wiki. Họ chắc là đã thấy những gì mày và Jasper làm, và tận dụng ý tưởng của bọn mày.”
“Thât sao?”
“Sao? Mày không nghĩ ý tưởng của mày đáng để sử dụng?”
“Tao, à…”
“Chúng ta là một đội, Alphonse. Chúng ta không phải một nhóm các nhà phát triển tách rời. Chúng ta nhìn vào công việc của nhau và học hỏi từ nó.”
“Được rồi, chắc chắn, tao không nghĩ nó lại sớm vậy, chỉ thế thôi.”
“Vậy, thử xem phần kiểm thử chấp thuận của UnRegisterCheckedOutSuit. Tao cá là nó sẽ cố hủy đăng ký một bộ đồ đã đã được xuất ra và đảm bảo việc hủy đăng ký thất bại.”
“Xuất ra?”
“Ừ… được mặc bởi ai đó ngoài tàu.”
“À! Ừ, sẽ không phải là ý hay nếu hủy đăng ký một bồ đồ ai đó đang dùng.”
Jerry nhăn mặt đồng tình và ấn vào đường dẫn.
Bạn không thể hủy đăng ký một bộ đồ đã được xuất.Nếu một người dùng đã xuất một bồ đồ ra, chúng ta sẽ không cho phép bộ đồ bị hủy đăng ký. |
Tôi nhìn qua và nhanh miệng trước Jerry. “Ừ, cô ấy chỉ ép chuyển bộ đồ thành đã được xuất, và hiện kết quả hủy đăng ký thất bại.”
“Đúng. Được rồi, vậy cô ấy thiếu cái gì?”
“Ý anh là trong trang này?”
“Không, ý tao là, cô ấy còn thiếu bài kiểm thử nào. Nghĩ theo kiểu quái quỷ vào!”
“Tôi, à…” Như nào là nghĩ theo kiểu quái quỷ?
“Ví dụ, chuyện gì sẽ xảy ra, Alphonse, nếu như mày cố hủy đăng ký một bộ đồ đã được hủy đăng ký? Cái gì sẽ xảy ra?”
“À! Tôi hiểu ý anh rồi. À, rõ ràng là ta muốn việc hủy đăng ký sẽ thất bại, và hiện lên tin nhắn phù hợp”
“Tốt. Thế thì biết bài kiểm thử cho cái đấy!”
“Tôi nghĩ về nó vài giây và tạo trang mới tên là ‘UnRegisterUnRegisteredSuit. Tôi cười khi viết cái tên đó. Tôi nghĩ là nó thông minh. Jerry đảo mắt, nhưng không nói gì. Và tôi viết phần sau.
Bạn không thể hủy đăng ký một bộ đồ không được đăng ký.Bất kỳ lần thử nào cũng sẽ bị phớt lờ với một tin nhắn phù hợp. |
Jerry nhìn lại và nói: “Ừ, có vẻ đúng.” Rồi hắn nhìn lên và gọi sang bên Carole: “Này Carole, nhìn thử trang UnregisterUnregisteredSuit. Xem nó trông có đúng không?”
Carole gật đầu và dành vài giây di chuyển quanh trang. Rồi cô ấy cười với bọn tôi và giơ ngón cái đồng ý và quay trở lại với công việc ngay lập tức.
“Tuyệt.” Jerry nói. “Giờ, Alphonse, còn ý nghĩ quái quỷ nào nữa không?”
Tôi nghĩ một lúc và nói: “Không, tôi không nghĩ ra bất kỳ bài kiểm thử phụ nào nữa.”
“Được rồi, tiếp, thử xem phần story tiếp theo.”