Tự động hóa hoạt động hoàn hảo (cho đến khi nó gặp sự cố)
Trong bài học trước, chúng ta đã tìm hiểu về xử lý lỗi và các trường hợp ngoại lệ. Bây giờ, hãy xây dựng trên nền tảng đó. Bạn đã xây dựng hệ thống tự động hóa của mình. Nó chạy hoàn hảo trong quá trình thử nghiệm. Bạn đã triển khai nó vào thứ Hai. Đến thứ Tư, mọi thứ vẫn tuyệt vời. Đến tháng thứ hai, bạn đã hoàn toàn quên mất nó - nó cứ hoạt động tốt.
Rồi, 4 tháng sau: nguồn dữ liệu thay đổi định dạng API. Hệ thống tự động hóa của bạn bắt đầu âm thầm làm mất 30% bản ghi. Không ai nhận ra trong hai tuần.
Kiểm thử, giám sát và cải tiến liên tục không phải là những phần hào nhoáng của tự động hóa. Nhưng chúng là sự khác biệt giữa một hệ thống tự động hóa hoạt động tốt hôm nay và một hệ thống hoạt động đáng tin cậy trong nhiều năm.
Những gì bạn sẽ học được
Đến cuối bài học này, bạn sẽ kiểm thử các hệ thống tự động hóa một cách có hệ thống trước khi triển khai, thiết lập giám sát để phát hiện sự cố sớm, tối ưu hóa hiệu suất theo thời gian và duy trì những hệ thống tự động hóa khi doanh nghiệp và công cụ của bạn phát triển.
Từ xây dựng đến vận hành
Các bài học 3-6 đã đề cập đến việc thiết kế, xây dựng và chống lỗi cho những hệ thống tự động hóa. Bài học này bao gồm mọi thứ xảy ra sau đó: Kiểm thử, triển khai, giám sát và cải tiến. Thiết kế là khởi đầu của vòng đời tự động hóa, chứ không phải là kết thúc.
Kiểm thử trước khi triển khai
Các cấp độ kiểm thử
Hãy hình dung việc kiểm thử như một kim tự tháp với ba cấp độ:
Cấp độ 1: Kiểm thử từng bước
Đối với mỗi bước trong quy trình tự động hóa của bạn:
Nó có chấp nhận đầu vào mong đợi không?
Nó có tạo ra đầu ra mong đợi không?
Nó có xử lý đầu vào không hợp lệ một cách khéo léo không?
Việc xử lý lỗi có hoạt động không?
📍 Nơi dán: Mở ChatGPT (chat.openai.com), Claude (claude.ai) hoặc Gemini (gemini.google.com) và bắt đầu một cuộc trò chuyện mới.
📋 Cách sao chép prompt này: Nhấp vào bất kỳ đâu bên trong khối màu xám, nhấn Cmd+A sau đó Cmd+C (Mac) hoặc Ctrl+A sau đó Ctrl+C (Windows). Hoặc sử dụng biểu tượng sao chép xuất hiện.
Kế hoạch kiểm thử cho Bước 3: Tạo hồ sơ khách hàng
Test 1: Nhập liệu hợp lệ → Dự kiến: hồ sơ được tạo, ID được trả về
Test 2: Thiếu trường email → Dự kiến: lỗi xác thực, được ghi lại
Test 3: Khách hàng trùng lặp → Dự kiến: sử dụng hồ sơ hiện có, cảnh báo được ghi lại
Test 4: API không khả dụng → Dự kiến: thử lại 3 lần, sau đó thông báo cho quản trị viên
Test 5: Ký tự đặc biệt trong tên → Dự kiến: được xử lý chính xác
✏️ Cách điền thông tin chi tiết của bạn: Thay thế mỗi [] và trình giữ chỗ trong ngoặc vuông bằng thông tin cụ thể từ tình huống thực tế của bạn. Đầu vào mơ hồ sẽ tạo ra đầu ra mơ hồ — hãy cụ thể.
👀 Những gì bạn sẽ thấy: Trong vòng vài giây, AI sẽ trả về phản hồi có cấu trúc dựa trên prompt ở trên. Hãy đọc kỹ và coi đó là bản nháp, không phải câu trả lời cuối cùng.
📌 Nên làm gì với kết quả: Lưu phản hồi vào file Notes. Chọn đề xuất có tác động cao nhất và thực hiện nó trong tuần này — đừng cố gắng làm tất cả cùng một lúc.
⚠️ Nếu thấy không ổn: Nếu các đề xuất có vẻ chung chung, hãy dán nội dung sau: "Hãy cụ thể hơn với ngữ cảnh thực tế của tôi. Bỏ những lời khuyên chung chung đi." Nếu bỏ qua các chi tiết quan trọng bạn đã cung cấp, hãy hỏi: "Bạn đã bỏ sót [X] trong ngữ cảnh của tôi — hãy thực hiện lại với đó là ràng buộc chính."
Cấp độ 2: Kiểm thử luồng (kiểm thử toàn bộ quy trình làm việc)
Chạy toàn bộ quy trình tự động hóa từ đầu đến cuối với các kịch bản khác nhau:
Trường hợp thành công: mọi thứ hoạt động hoàn hảo
Trường hợp lỗi: một bước giữa chừng bị lỗi, quá trình phục hồi có hoạt động không?
Trường hợp ngoại lệ: dữ liệu bất thường nhưng hợp lệ
Trường hợp khối lượng lớn: điều gì xảy ra với khối lượng lớn?
Cấp độ 3: Kiểm thử tích hợp (kiểm thử với hệ thống thực)
Kết nối với các phiên bản thực (hoặc phiên bản thử nghiệm) của mỗi hệ thống và xác minh:
Xác thực hoạt động
Định dạng dữ liệu chính xác
Không vượt quá giới hạn tỷ lệ
Quyền hạn đủ
Thời gian hoạt động như mong đợi
Kiểm thử với dữ liệu đại diện
Không kiểm thử với dữ liệu mẫu hoàn hảo. Tạo dữ liệu kiểm thử thể hiện sự lộn xộn trong thế giới thực:
Tạo dữ liệu kiểm thử cho quy trình tự động hóa của tôi bao gồm:
1. Một bản ghi "hoàn hảo" (tất cả các trường được điền chính xác)
2. Một bản ghi thiếu các trường tùy chọn
3. Một bản ghi có các ký tự đặc biệt (O'Brien, Garcia-Lopez)
4. Một bản ghi có giá trị trường độ dài tối đa
5. Một bản ghi có giá trị tối thiểu (chuỗi rỗng, số tiền bằng không)
6. Một bản ghi kích hoạt mọi nhánh điều kiện
7. Một bản ghi trùng lặp với bản ghi số 1 (kiểm thử xử lý bản ghi trùng lặp)
8. Một bản ghi có các biến thể định dạng (những định dạng ngày khác nhau, định dạng số điện thoại)
Kiểm tra nhanh
Bạn đã tạo các trường hợp kiểm thử cho mọi nhánh điều kiện trong quy trình tự động hóa của mình chưa? Nếu quy trình tự động hóa của bạn có câu lệnh "if/else" gửi khách hàng VIP đến một đường dẫn và khách hàng thông thường đến một đường dẫn khác, bạn cần ít nhất một trường hợp kiểm thử cho mỗi đường dẫn. Các đường dẫn chưa được kiểm thử là những đường dẫn bị lỗi tiềm ẩn rủi ro.
Triển khai theo từng giai đoạn
Đừng triển khai cho 100% mục tiêu ngay trong ngày đầu tiên. Sử dụng phương pháp triển khai theo từng giai đoạn:
Giai đoạn 1: Chế độ thử nghiệm (1 tuần)
Hệ thống tự động chạy nhưng không thực hiện hành động thực tế
Ghi lại những gì nó SẼ làm
So sánh với kết quả của quy trình thủ công
Mục tiêu: Xác minh logic khớp với hành vi mong đợi
Giai đoạn 2: Triển khai giới hạn (1-2 tuần)
Chạy trên 5-10% số bản ghi (một khách hàng, một phòng ban, một danh mục)
Thực hiện hành động thực tế, nhưng phạm vi tác động giới hạn
Giám sát chặt chẽ các lỗi
Mục tiêu: Xác thực trong điều kiện sản xuất
Giai đoạn 3: Triển khai mở rộng (1 tuần)
Mở rộng lên 50% số bản ghi
Tiếp tục giám sát
Giải quyết mọi sự cố được tìm thấy ở mức 5-10%
Mục tiêu: Xác nhận hiệu suất ở quy mô lớn
Giai đoạn 4: Triển khai đầy đủ
100% số bản ghi
Giám sát được thiết lập
Xử lý lỗi được xác thực
Sổ tay hướng dẫn được lập thành văn bản cho các sự cố thường gặp
Tại sao phương pháp này hiệu quả: Nếu hệ thống tự động của bạn có lỗi gửi hóa đơn trùng lặp, thì việc gửi 3 hóa đơn trùng lặp (5% của 60 khách hàng) sẽ tốt hơn nhiều so với 60 hóa đơn. Phương pháp theo từng giai đoạn giúp hạn chế thiệt hại trong quá trình học hỏi.
Giám sát sau triển khai
Sau khi hệ thống tự động hóa hoạt động, bạn cần biết khi nào xảy ra sự cố -- lý tưởng nhất là trước khi người dùng nhận thấy.
Bảng điều khiển giám sát
Theo dõi các chỉ số sau:
Số liệu
Điều đó cho bạn biết
Chu kỳ đánh giá
Số lần chạy mỗi ngày/tuần
Quá trình tự động hóa có hoạt động như mong đợi không?
Hằng ngày
Tỷ lệ thành công
% số lần chạy hoàn tất mà không có lỗi
Hằng ngày
Thời gian thực thi trung bình
Hiệu năng có bị suy giảm không?
Hàng tuần
Lỗi theo loại
Những lỗi nào thường gặp nhất?
Hàng tuần
Hồ sơ đã được xử lý
Khối lượng giao dịch có đáp ứng kỳ vọng không?
Hàng tuần
Điểm chất lượng dữ liệu
Kết quả đầu ra sạch đến mức nào?
Hàng tháng
Quy tắc cảnh báo
Thiết lập cảnh báo cho:
Cảnh báo tức thì (khắc phục ngay):
Tỷ lệ thành công giảm xuống dưới 90%
Bất kỳ bước nào tạo ra lỗi nghiêm trọng
Thời gian thực thi vượt quá 5 lần bình thường
Lỗi xác thực (thông tin đăng nhập hết hạn)
Cảnh báo tóm tắt hàng ngày (xem xét hôm nay):
Bất kỳ lỗi nào trong 24 giờ qua
Các mẫu bất thường (tăng hoặc giảm đột ngột về khối lượng)
Các vấn đề ở mức cảnh báo từ việc xử lý lỗi
Xem xét hàng tuần (phân tích xu hướng):
Xu hướng tỷ lệ thành công theo thời gian
Các lỗi phổ biến nhất
Xu hướng hiệu suất
Xu hướng khối lượng
Giám sát hỗ trợ bởi AI
Sử dụng AI để phân tích nhật ký tự động hóa của bạn:
Đây là nhật ký lỗi từ quá trình tự động hóa của tôi trong tuần này:
[dán nhật ký]
Phân tích:
1. Các lỗi phổ biến nhất là gì?
2. Có mẫu nào không (thời điểm nhất định, loại dữ liệu nhất định)?
3. Lỗi nào là nghiêm trọng so với lỗi thông tin?
4. Bạn đề xuất các biện pháp khắc phục cụ thể nào?
5. Có vấn đề nào đang có xu hướng có thể trở nên
nghiêm trọng nếu không được giải quyết?
Tối ưu hóa
Tối ưu hóa tốc độ
Nếu quy trình tự động hóa của bạn chậm:
Song song hóa các bước độc lập. Các bước không phụ thuộc vào nhau có thể chạy đồng thời.
Gộp các lệnh gọi API. Thay vì 100 lệnh gọi API riêng lẻ, hãy gộp chúng thành 10 lệnh gọi, mỗi lệnh gồm 10 mục.
Lưu trữ các tra cứu lặp lại. Nếu bạn tra cứu cùng một dữ liệu tham chiếu nhiều lần, hãy lưu trữ nó.
Chuyển các tác vụ xử lý nặng sang giờ thấp điểm. Lên lịch các quy trình tự động hóa tốn nhiều tài nguyên vào thời gian lưu lượng truy cập thấp.
Tối ưu hóa độ tin cậy
Nếu quy trình tự động hóa của bạn thường xuyên gặp lỗi:
Thêm xác thực trước khi xử lý. Kiểm tra chất lượng dữ liệu ngay từ đầu, không phải ở giữa.
Cải thiện logic thử lại. Bạn có đang thử lại đúng các lỗi không? Thời gian chờ có phù hợp không?
Thêm chức năng ngắt. Nếu một thành phần phụ thuộc liên tục gặp lỗi, hãy ngừng truy cập vào nó và cảnh báo cho ai đó.
Tạo các đường dẫn dự phòng. Nếu phương pháp chính thất bại, liệu có phương pháp thay thế nào không?
Tối ưu hóa bảo trì
Nếu quy trình tự động hóa của bạn khó bảo trì:
Ghi chép lại mọi thứ. Nó làm gì, tại sao mỗi bước tồn tại, dữ liệu nó sử dụng, ai sở hữu nó.
Phân chia thành các mô-đun. Chia nhỏ những quy trình tự động hóa phức tạp thành các thành phần nhỏ hơn, có thể tái sử dụng.
Kiểm soát phiên bản. Theo dõi các thay đổi đối với quy trình tự động hóa của bạn theo thời gian.
Tạo sổ tay hướng dẫn vận hành. Ghi lại các sự cố thường gặp và cách khắc phục để bất kỳ ai trong nhóm của bạn cũng có thể xử lý sự cố.
Kiểm tra nhanh
Lần cuối bạn xem xét lại một quy trình tự động hóa hiện có là khi nào? Nếu đã hơn một tháng, đã đến lúc rồi. Kiểm tra nhật ký lỗi, xem xét các chỉ số hiệu suất và xác minh rằng quy trình nghiệp vụ mà nó hỗ trợ không thay đổi.
Sổ tay vận hành tự động hóa
Tạo sổ tay vận hành cho mỗi quy trình tự động hóa:
Tạo sổ tay vận hành cho quy trình tự động hóa [tên quy trình tự động hóa] của tôi.
Bao gồm:
1. Tổng quan
- Chức năng (1-2 câu)
- Thời gian hoạt động
- Kết nối với các hệ thống nào
2. Các sự cố thường gặp và cách khắc phục
- [Sự cố 1]: Cách chẩn đoán, cách khắc phục
- [Sự cố 2]: Cách chẩn đoán, cách khắc phục
- [Sự cố 3]: Cách chẩn đoán, cách khắc phục
3. Cách tạm dừng/khởi động lại
- Quy trình dừng khẩn cấp
- Cách khởi động lại sau khi khắc phục sự cố
- Cách xử lý lại các bản ghi bị lỗi
4. Quy trình chuyển giao
- Liên hệ với ai đối với các loại sự cố khác nhau
- Khi nào cần chuyển giao so với tự khắc phục
5. Lịch trình bảo trì
- Cần kiểm tra những gì hàng tháng
- Cần cập nhật những gì hàng quý
- Các mục đánh giá hàng năm
Chu trình cải tiến liên tục
Tự động hóa không phải là "cài đặt một lần rồi quên đi". Xây dựng chu kỳ cải tiến thường xuyên:
Hàng tháng:
Xem xét nhật ký lỗi và giải quyết các sự cố lặp lại
Kiểm tra xem tất cả các chỉ số được giám sát có nằm trong phạm vi dự kiến hay không
Xác minh các tích hợp vẫn hoạt động (API có thể thay đổi)
Hàng quý:
Đánh giá xem quy trình kinh doanh có thay đổi hay không (tự động hóa có còn phù hợp với thực tế không?)
Xem xét và cập nhật các trường hợp kiểm thử
Tối ưu hóa các bước chậm hoặc không đáng tin cậy
Cập nhật tài liệu
Hàng năm:
Xem xét toàn diện tất cả các quy trình tự động hóa
Loại bỏ các quy trình tự động hóa không còn cần thiết
Đánh giá các công cụ và khả năng mới
Đánh giá tổng thời gian tiết kiệm và ROI
Bài tập: Tạo kế hoạch kiểm thử và giám sát
Đối với một trong những quy trình tự động hóa bạn đã thiết kế trong khóa học này:
Viết 5 trường hợp kiểm thử bao gồm trường hợp thành công, trường hợp lỗi và các trường hợp ngoại lệ
Xác định kế hoạch triển khai theo từng giai đoạn (4 giai đoạn với tiêu chí để chuyển tiếp)
Liệt kê 5 chỉ số bạn sẽ giám sát sau khi triển khai
Đặt ngưỡng cảnh báo cho mỗi chỉ số
Soạn thảo phần "Các sự cố thường gặp" của sổ tay vận hành
Những điểm chính cần ghi nhớ
Kiểm thử ở ba cấp độ: các bước riêng lẻ, toàn bộ luồng và tích hợp hệ thống
Sử dụng dữ liệu đại diện (không hoàn hảo) để thử nghiệm, không phải mẫu hoàn hảo
Triển khai theo từng giai đoạn: chế độ ẩn, triển khai hạn chế, mở rộng, sau đó đầy đủ
Liên tục giám sát tỷ lệ thành công, thời gian thực thi, loại lỗi và khối lượng
Thiết lập cảnh báo ngay lập tức cho các lỗi nghiêm trọng, tóm tắt hàng ngày cho các cảnh báo, xem xét hàng tuần để theo dõi xu hướng
Xây dựng sổ tay hướng dẫn để bất kỳ ai cũng có thể khắc phục sự cố thường gặp
Lên lịch đánh giá định kỳ: hàng tháng cho lỗi, hàng quý cho mức độ phù hợp, hàng năm để đánh giá toàn diện
Câu 1:
Làm thế nào để biết một hệ thống tự động hóa cần tối ưu hóa?
GIẢI THÍCH:
Việc giám sát thường xuyên sẽ tiết lộ các cơ hội tối ưu hóa: Những bước chậm có thể được thực hiện song song, tỷ lệ lỗi tăng lên ở các bước cụ thể hoặc những quy trình đã thay đổi kể từ khi hệ thống tự động hóa được xây dựng. Tối ưu hóa chủ động ngăn chặn sự suy giảm dần dần trở thành sự cố đột ngột.
Câu 2:
"Triển khai theo giai đoạn" có nghĩa là gì đối với tự động hóa?
GIẢI THÍCH:
Triển khai theo giai đoạn có nghĩa là bắt đầu nhỏ: Chạy tự động hóa cho 5% số bản ghi, một phòng ban hoặc một khách hàng trước. Theo dõi chặt chẽ. Nếu mọi thứ hoạt động tốt, hãy mở rộng lên 25%, sau đó 50%, rồi 100%. Điều này giúp hạn chế phạm vi ảnh hưởng nếu có sự cố xảy ra.
Câu 3:
Tại sao bạn nên kiểm thử tự động hóa bằng dữ liệu gần đúng thay vì dữ liệu mẫu hoàn hảo?
GIẢI THÍCH:
Dữ liệu mẫu thường sạch và được định dạng hoàn hảo. Dữ liệu thực tế có các trường bị thiếu, định dạng không nhất quán, ký tự đặc biệt và những giá trị không mong muốn. Kiểm thử với dữ liệu đại diện sẽ phát hiện ra các vấn đề thực sự sẽ xảy ra khi tự động hóa được đưa vào hoạt động.
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây: