Đây là một chủ đề hay, mà JDVT muốn giới thiệu với các bạn. Ở Việt Nam, người làm test thường bị đánh giá thấp hơn developer. Sinh viên mới ra trường ít ai chịu làm test. Có 1 bạn hỏi ý kiến tôi khi được offer 2 jobs: lập trình viên ở 1 công ty nhỏ, tester ở 1 công ty lớn là liệu bạn nên chọn công ty nào. Tôi trả lời là tùy theo sở thích của em nhưng cuối cùng em đó chọn làm cho công ty lớn.
Vậy thì tầm quan trọng của Verification and Validation (SVV) như thế nào. Tôi trích ở đây một số thông tin từ GS Lion Brian, chuyên gia về SVV, từng tham gia kiểm thử phần mềm cho dự án tàu vũ trụ Ariane.
- Software ngày nay đã phổ biến (prevelant) và tràn lan (pervasive)
- Các đặc tính của phần mềm:
1. Người ta nói phần mềm được phát triển (development) chứ không phải được sản xuất (production). Không có khái niệm sản xuất phần mềm hàng loạt.
2. Sự tham gia của nhân tố con người
3. Là một kỹ nghệ nhưng cũng là 1 quá trình xã hội
4. Phần mềm ngày càng trở nên phức tạp
5. Lan tỏa đến ngày càng nhiều lĩnh vực
Lỗi (error) là gì?
- Lỗi lầm là 1 phần của cuộc sống
- Lỗi xảy ra trong suy nghĩ, hành động, và trong các sản phẩm do con người làm ra
- Lỗi chắc chắn sẽ xảy ra khi có sự tham gia của con người
Các lỗi phần mềm nổi tiếng và nguyên nhân:
- Nổ phi thuyền Ariane 5 năm 1996:
Chỉ sau 40s khi cất cánh, ở độ cao 3700m, phi thuyền mất lái và nổ tung
Nguyên nhân:
Đoạn chương trình chuyển đổi số thực sang số nguyên có dấu 16bit nhận vào dữ liệu ngoài tầm giá trị, dẫn tới shutdown cả 2 hệ thống máy chạy thực và backup, dẫn đến mất điều khiển phi thuyền và phát nổ.
- Vụ rơi máy bay F18: do có 1 đoạn chương trình thiếu điều kiện else vì nghĩ rằng điều kiện này không thể xảy ra.
- Vụ nổ phóng xạ Therac 25: một bệnh nhân nhận được 16500-25000 phóng xạ trong vòng 10s và trên 1 diện tích 1 cm. Bệnh nhân này mất 1 cánh tay, và chết sau đó 5 tháng.
Một số khái niệm về lỗi
- Incident
- Failure
- Error
- Bug
Như vậy, với vai trò cốt cát trong việc đảm bảo chất lượng phần mềm, software verification and validation buộc phải là một khâu quan trọng trong qui trình phát triển phần mềm
Bình luận của JDTC:
- Làm test không có gì là xấu, nhiều người nói nó nhàm chán đòi hỏi kỹ năng bậc thấp. Những người làm test hoặc tuyển dụng tester thì nói test là một nghệ thuật, đòi hỏi trí tuệ.
- Có những công ty làm outsourcing nhưng hầu như toàn bộ là làm test. Hiển nhiên với các hệ thống lớn, làm test cũng đã là vinh dự
- Đối với các bạn sắp ra trường: phần mềm là một chuỗi các qui trình, làm test là một khâu trong đó. Nếu bạn vì cơ duyên nào đó tham gia vào công đoạn này thì cũng đừng băn khoăn vì career path cũng rất sáng ví dụ như thăng chức lên Test manager, QA manager là bình thường.
- Đối với các nhóm hoặc công ty làm phần mềm nhỏ: đừng nghĩ nhỏ mà không cần test hoặc test sơ sài. Đừng nghĩ Unit Test là nhàm chán, unit test có thể giúp khu trú và phát hiện ra lỗi ngay từ đầu, nếu để sau này khi đã tích hợp vào ứng dụng mà phát sinh ra lỗi, khả năng tìm ra nguyên nhân gây lỗi cực kỳ khó - không biết bao giờ mới fix lỗi xong, trong công nghệ phần mềm gọi là "unpredictable".
Subscribe to:
Post Comments (Atom)
Cảm ơn bài viết hữu ích của tác giả.
ReplyDelete----------------
Những căn hộ đang Hot tại TPHCM
Giảm ngay 56 triệu khi mua căn hộ 73m2 Hoàng Anh Thanh Bình
Hồng Hà Riverside - Vị trí vàng cho Cơ hội vàng
Hoàng Anh Thanh Bình ưu đãi lớn trong đợt bán hàng cuối cùng