Giữ yêu cầu có thể truy vết khi phần mềm thay đổi
Đã hoàn tấtKết nối kết quả người dùng với quyết định, tiêu chí nghiệm thu, mã và bằng chứng. Cập nhật các liên kết khi giả định thay đổi.
Xuất bản bởi TaigaCách chúng tôi viết
Kiểm tra mức hiểuĐặc tả thay đổi sau khi kiến trúc và test đã được chuẩn bị. Cần làm gì?Làm bài tập
Bạn sẽ học gì
- Viết yêu cầu có thể quan sát với ranh giới rõ ràng.
- Truy vết yêu cầu qua thay đổi và các kiểm tra.
- Xác định tài liệu phía sau bị ảnh hưởng khi giả định thay đổi.
Mô tả hành vi có thể xác minh
“Tạo tính năng xuất khách hàng hiện đại” để ngỏ quyết định quan trọng. Nó không xác định người dùng, bản ghi, trường hoặc hành vi khi lỗi. Agent phải hỏi hoặc tự giả định. Giả định không được ghi lại khó review về sau.
Dùng yêu cầu giả định có ranh giới rõ: quản lý đã xác thực có thể xuất khách hàng đang hoạt động của chính tổ chức mình. Bản xuất chứa ID khách hàng và tên hiển thị. Nó không gồm thông tin liên hệ và bản ghi ở trạng thái đã lưu trữ. Người dùng không có vai trò quản lý không nhận được bản xuất.
Vẫn cần quyết định về định dạng, khối lượng, thời gian phản hồi và xử lý lỗi. Đánh dấu rõ điều chưa biết. Đặc tả hữu ích bộc lộ sự chưa chắc chắn thay vì giấu trong văn phong tự tin.
Phân biệt yêu cầu với lựa chọn hiện thực hóa
Người dùng cần tập bản ghi được phép ở định dạng sử dụng được. Truy vấn cơ sở dữ liệu, thư viện và cấu trúc endpoint là lựa chọn hiện thực hóa. Kết nối chúng với yêu cầu mà không xem mọi lựa chọn hiện tại là nhu cầu kinh doanh vĩnh viễn.
Ghi quyết định có hậu quả đáng kể cùng bối cảnh, phương án thay thế và lý do. Ví dụ, xuất đồng bộ có thể phù hợp với khối lượng nhỏ. Khối lượng lớn hơn có thể cần background job và kiểm tra phân quyền tải xuống riêng.
Giữ yêu cầu ổn định khi có thể, đồng thời quản lý phiên bản quyết định đã đổi. Điều này giúp người review phân biệt cách hiện thực hóa khác với cam kết khác cho người dùng.
Tạo chuỗi bằng chứng ngắn
Dùng định danh vẫn dễ hiểu khi review. Trong ví dụ, EXPORT-01 có thể định danh ranh giới tổ chức. Tên chỉ để minh họa, không phải hệ thống đánh số bắt buộc.
| Liên kết | Ví dụ |
|---|---|
| Yêu cầu | EXPORT-01: chỉ bản ghi trong tổ chức của quản lý |
| Quyết định thiết kế | Áp dụng kiểm soát tư cách thành viên trên server, không phải trình duyệt |
| Hiện thực hóa | PR thay đổi truy vấn và luồng phân quyền |
| Xác minh | Request lấy bản ghi tổ chức khác bị từ chối |
| Bằng chứng phát hành | Kết quả kiểm tra xác định commit và artifact được chấp nhận |
Chuỗi phải trỏ tới bằng chứng thật. Tên test chứa ID yêu cầu không chứng minh assertion kiểm tra yêu cầu đó. Kiểm tra test và luồng mã production mà nó thực thi.
SSDF của NIST cung cấp bối cảnh về yêu cầu và xác minh trong phát triển an toàn. Dùng truy vết để có thể kiểm tra những hoạt động đó, thay vì tạo tài liệu chỉ để có tài liệu. Đọc framework.
Review tác động của giả định thay đổi
Giả sử doanh nghiệp giờ cần khách hàng ở trạng thái đã lưu trữ. Thay đổi này ảnh hưởng nhiều hơn một cờ truy vấn. Kiểm tra quy tắc lưu giữ, phân quyền, khối lượng dự kiến, giải thích cho người dùng và ý nghĩa báo cáo hiện có.
Đánh dấu tài liệu và kiểm tra bị ảnh hưởng để review. Giữ quyết định trước để người vận hành giải thích được bản phát hành cũ. Không âm thầm viết lại lịch sử để thiết kế mới nhất có vẻ là điều tất yếu.
Agent có thể giúp tìm tham chiếu và đề xuất cập nhật. Người chịu trách nhiệm phải giải quyết yêu cầu xung đột và chấp nhận hành vi thay đổi. Danh sách tệp khớp là điểm khởi đầu, không phải đánh giá tác động đầy đủ.
Giữ hồ sơ đủ nhỏ để dùng
Ghi quyết định ảnh hưởng đến viết mã, xác minh và vận hành. Tránh lặp cùng yêu cầu trong nhiều tài liệu rời rạc. Ưu tiên liên kết đến một nguồn được duy trì.
Trước khi chấp nhận thay đổi, hỏi người review có theo được mục đích đến bằng chứng thực tế không. Trước vận hành, hỏi người phụ trách dịch vụ có tìm được ranh giới và quyết định khôi phục liên quan không. Đó là các kiểm tra thực tế về khả năng truy vết hữu ích.
Làm bài tập
Viết yêu cầu cho quản lý xuất khách hàng đang hoạt động. Bao gồm người dùng được phép, ranh giới tổ chức, trường dữ liệu, hành vi khi lỗi và điều kiện hoàn tất đo được. Liên kết với test và bản phát hành giả định. Sau đó đổi yêu cầu để gồm khách hàng đã lưu trữ và liệt kê quyết định bị ảnh hưởng.
Tải worksheet (Markdown)Bỏ chọn sẽ xóa toàn bộ tiến độ đã lưu trong trình duyệt này.
Tiến độ ở trong trình duyệt này. Không tài khoản, không theo dõi.
Nguồn và đọc thêm
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗