#31. Lỗi thường xuất hiện ở giai đoạn nào là chủ yếu trong chu kỳ phát triển phần mềm?
Ở giai đoạn sau khi code xong và bàn giao sang cho tester bắt đầu giai đoạn testing. Một bên test và 1 bên fix bug, đây là giai đoạn nhiều lỗi nhất trong chu kỳ phát triển phần mềm.
#35. Kiểm thử chịu tải, test hiệu năng (Load testing) là gì?
Load testing là đo tải khả năng của 1 hệ thống và cách cư xử trong điều kiện hoạt động bình thường. Nó tìm ra điểm ngưỡng tối đa chịu tải của hệ thống
Ví dụ:
Kiểm tra hiệu năng của 1 trang Login với số lượng user đăng nhập tăng dần là 100, 200, 300, 400, 1000… và xem response time trả về là bao nhiêu ms, tức là 1000 user đăng nhập cùng 1 lúc thì thời gian hoàn thành sẽ làm bao nhiêu. Ngoài ra cũng tăng dần số lượng user truy cập cùng 1 lúc để tìm điểm ngưỡng chết (peak) của hệ thống
#28. Vì sao chúng ta nên tiến hành kiểm thử tự động cho một bộ test?
- Chúng ta nên tiến hành kiểm thử tự động cho 1 bộ phận test mà không phải toàn bộ vì:
- Kiểm thử tự động rất hiệu quả khi áp dụng cho giai đoạn re-test và test hồi quy. Hoặc cần chạy 1 số lượng testcases trong 1 thời gian ngắn.
- Việc phải test đi test lại nhiều không những gây tốn nguồn lực kiểm thử mà còn tạo cảm giác nhàm chán.
- Trong trường hợp mà nghiệp vụ sửa đổi thay đổi nhiều thì không nên sử dụng auto test do việc sửa script liên tục cũng mất nhiều thời gian. Chỉ nên áp dụng auto test khi có tính ổn định, và không có sự thay đổi về mặt chức năng/ nghiệp vụ.
- Không phải cái gì cũng đều test tự động được hết cả mà vẫn cần đến test manual đóng vai trò quan trọng trong dự án.
- Khi thực hiện performance testing/ load testing thì test tự động là sự lựa chọn duy nhất.
#30. Một báo cáo công việc kiểm thử (test report) gồm những gì? Và ích lợi của bảng báo cáo này?
- Test Report thường chứa các nội dung như:
Số lượng test cases đã viết/ số lượng testcase đã test
Số lượng test cases passed/failed
Số lượng defects tìm ra và status, severity của defects
Số lượng defects trên từng module
Các vấn đề liên quan đến testing, bản build, tiến độ sửa lỗi…
- Báo cáo test cũng thể hiện tiến độ kiểm thử, tiến độ sửa lỗi và số lượng lỗi được tìm thấy hay còn tồn của dự án. Báo cáo kiểm thử cũng là công cụ để phục vụ cho đánh giá hay giám sát dự án có kịp tiến độ hay không, có thể bàn giao hay release cho khách hàng hay không và các vấn đề cần giải quyết khi mà số lượng lỗi còn nhiều, gây ra các rủi ro về tiến độ hoàn thành của dự án để có những điều chỉnh kịp thời
#25. Lợi ích chính của kiểm thử sớm trong chu kỳ phát triển phần mềm là gì?
- Hoạt động kiểm thử nên bắt đầu càng sớm càng tốt trong chu trình phát triển mềm và cần được tập trung vào các mục tiêu xác định.
- Kiểm thử sớm, phát hiện lỗi sớm, lỗi được sửa sớm sẽ đảm bảo được dự án hoàn thành đúng tiến độ và chất lượng sản phẩm cũng được đảm bảo. Chi phí của dự án cũng sẽ không bị phát sinh.
- Lỗi phát hiện muộn, sửa muộn, nhất là dồn vào giai đoạn thời gian cuối dự án, sẽ dẫn đến sửa vội, test vội, code vội, chất lượng ko được đảm bảo, tiến độ không hoàn thành được dẫn đến phải overtime, tăng chi phí của dự án.
#26. Vì sao lỗi càng phát hiện muộn thì chi phí sửa lỗi càng cao?
- Kiểm thử và sửa lỗi có thể được thực hiện tại bất kỳ giai đoạn nào của vòng đời phát triển sản phẩm. Từ giai đoạn Phân tích đặc tả nghiệp vụ, Thiết kế, Coding chứ không chỉ riêng giai đoạn test hay tập trung cho tất cả giai đoạn test.
- Lỗi được phát hiện càng muộn thì chi phí cho việc sửa lỗi càng lớn, bởi vì có những lỗi sẽ phải thực hiện lại từ khâu Thiết kế, rồi coding lại và mới thực hiện test được. Nên lỗi được phát hiện càng sớm, càng ở những giai đoạn đầu dự án, thậm chí ngay từ giai đoạn làm Yêu cầu/ Nghiệp vụ giúp cho các giai đoạn sau thực hiện được chính xác, giảm được số lượng lỗi và sản phẩm hoàn thành đúng tiến độ theo kế hoạch.
- Bug phát sinh ở giai đoạn release là nghiêm trọng và tốn kém nhất. Không chỉ bị ảnh hưởng về mặt uy tín chất lượng sản phẩm, mà còn dẫn đến việc phải coding và testing lại, phát sinh chi phí về nhân lực dự án, chậm trễ tiến độ.
- Bug được phát hiện càng muộn thì chi phí sửa càng lớn. Đôi khi không chỉ tỷ lệ với thời gian mà có thể là tỷ lệ bình phương thời gian.
#27. Kiểm thử hệ thống là gì? (System testing)
- System Test là kiểm toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không.
- Kiểm thử hệ thống là thuần kiểm thử hộp đen, không liên quan gì đến coding
- Kiểm thử hệ thống bao gồm kiểm thử chức năng và phi chức năng
- Kiểm thử hệ thống tập trung nhiều hơn vào các chức năng của toàn bộ hệ thống.
- Các trường hợp kiểm thử hệ thống bao gồm các chức năng của sản phẩm hoàn chỉnh và được thực hiện các trường hợp kiểm thử mức độ cao.
- Kiểm thử hệ thống do tester của dự án thực hiện
- Có các kỹ thuật kiểm thử phổ biến được sử dụng trong kiểm thử hệ thống:
o Kiểm thử chức năng
o Kiểm thử giao diện
o Kiểm thử bảo mật
o Kiểm thử hiệu năng
#29. Theo bạn thì kiểm thử là gì?
- Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm, phát hiện các lỗi của phần mềm
- Kiểm thử phần mềm đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy đủ và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đề đã đặt ra.
- Kiểm thử phần mềm tạo điều kiện cho bạn tận dụng tối đa tư duy đánh giá và sáng tạo để bạn có thể phát hiện ra những điểm mà người khác chưa nhìn thấy.
(còn tiếp)
Trung tâm Đào tạo Tester TOP biên soạn!