Chương 1.1 Tổng quan về kiểm thử phần mềm 1.1 Kiếm thử phần mềm là gì? Kiểm thử là quá trình thực hiện hoặc đánh giá một hệ thống hoặc thành phần hệ thông bằng phương tiện thủ công hoặc tự động để xác minh rằng nó đáp ứng các yêu cầu được chỉ định. Quá trình bao gồm tất cả các hoạt động vòng đời, cá hoạt động tĩnh và năng động, quan tâm đến việc lập kế hoạch, chuẩn bị và đánh giá các sản phẩm phần mềm và các sản phẩm công việc liên quan để xác định rằng chúng đáp ứng các yêu cầu cụ thẻ, để chứng minh rằng chúng phù hợp với mục đích và để phát hiện ra lỗi.2 Mục tiêu của kiểm thử phần mềm: Kiểm thử phần mềm thực hiện một chương trình với mục đích tìm lỗi. Đẻ: (1 Xác định xem hệ thông có đáp ứng các thông sô kỹ thuật hay không. (1 Xác định xem hệ thông có đáp ứng được nhu cầu của người dùng hay không.
E1 Có được sự tự tin và cung cấp thông tin về mức độ chất lượng. Ì Ngăn ngừa lỗi.2 Quy trình kiếm thử phần mềm: gồm có 5 bước 1.1 Lập kết hoạch Nhằm chỉ định và mô tả các loại kiêm thử sẽ được triển khai và thực hiện. Kết quả là bản kế hoạch kiểm thử phần mềm bao gồm chỉ tiết từ các loại kiểm thử, chiến lược kiểm thử, cho đến thời gian và phân định lực lượng kiểm thử viên. Các bước lập kế hoạch kiểm thử: EÌ Xác định yêu cầu kiểm thử: Xác định những gi cần phái kiểm thử dựa theo yêu cầu từ khách hàng, đặc tả yêu cầu người sử dụng.
(1 Xác định các chiến lược kiểm thử: Xác định phương thức, loại kiểm thử cần thực hiện và tiêu chí đầu ra. (| Xác đmh tài nguyên, môi trường: Xác định nguồn nhân lực và môi trường thực hiện kiểm thử (số lượng người, yêu cầu về phần cứng, phần mềm, công cụ hỗ trợ. Lập thời gian cho các giai đoạn kiểm thử: Đánh giá kế hoạch: Trưởng dự án sẽ cùng những người liên quan tham gia đánh giá xem bán kế hoạch kiểm thử có phù hợp với yêu cầu dự án chưa. Nếu chưa thì sẽ phải thực hiện sửa lại theo yêu cầu.
LK Thông báo tới các bên liên quan: Trưởng dự án sẽ gửi thông báo toàn bộ những người trong dự án có liên quan đến kế hoạch kiêm thử.2 Thiết kế test case (thiết kế trường hợp kiểm thử) Nhằm chỉ định các test case và các bước kiêm tra chỉ tiết cho mỗi phần mềm. Giai đoạn thiết kế test case là hết sức quan trọng, nó đám báo các tình huống kiểm thử bao phủ tất cả các yêu cầu. Phát triển test script Bước này thường không bắt buộc trong các loại và mức kiêm thử, chí yêu cầu trong những trường hợp đặc thù cần thiết kế, tạo ra các test script có khá năng chạy trên máy tính giúp tự động hóa việc thực thi các bước kiểm tra đã định nghĩa ở các bước thiết kế kiểm thử.4 Thực hiện kiếm thử Mục đích thực hiện kiểm tra các bước đã thiết kế và ghi nhận kết quả. Các bước thực hiện kiểm thử: :J Thiết lập môi trường và cài đặt: Dé thực hiện kiểm thử, thao tác đầu tiên cần làm là xác lập và khởi động môi trường kiêm thử.
Việc này nhằm dam bao tat ca các bộ phận liên quan (phần cứng, phan mém, máy chủ, mạng, dữ liệu. ) đã được cài đặt và sẵn sàng trước khi chính thức bắt đầu thực hiện kiêm thử. E1 Tiên hành kiêm thử theo các trường hợp kiêm thử đã chuẩn bị. O Thâm định kết quá kiêm thử: Sau khi tiễn hành kiểm thử, kết quá kiểm thử cần được xem xét đê đảm bảo kết quả nhận được là đáng tin cậy.
Nhận biết được 4 những lỗi không phải do phần mềm mà do dữ liệu dùng đề kiểm thử, môi trường kiêm thử, hoặc các bước kiêm thử gây ra. Nếu thực sự lỗi xáy ra do quá trình kiêm thử, cần phải sửa chữa và kiểm tra lại từ đầu.5 Đánh giá quá trình kiếm thử Bao gồm xem xét và đánh giá kết quá kiêm thử lỗi, chỉ định các yêu cầu thay đôi và tính toán số liệu liên quan đến quá trình kiểm thử (chăng hạn số giờ, thời gian kiểm tra, số lượng lỗi.) Các bước đánh giá quá trình kiểm thử: C1 Thống kê số lượng lỗi. O Phân tích kết quả kiểm thử và yêu cầu sửa chữa: Chỉ định và đánh giá sự khác biệt giữa kết quả mong đợi và kết quả thực tế, tống hợp và gửi thông tin yêu cầu sửa chữa đến những người có trách nhiệm trong dự án, lưu trữ để kiểm tra sau đó. O Đánh giá chất lượng sản phẩm kiêm thử: Từ những kết quả kiểm thử, nhóm kiêm thử sẽ xem xét, đánh giá chất lượng sản phẩm.
LÌ Thông báo tới các bên liên quan: Trưởng dự án sẽ thông báo cho các bên liên quan về kết quá kiểm thử đạt được.3 Các cấp độ kiểm thứ phần mềm Kiểm thử phần mềm gồm có 4 cấp độ: Unit test (Kiểm thử đơn vị), Integration Tests (Kiém thir tich hop), System Tests (Kiém thir hé thong) va Acceptance Tests (Kiém thir chấp nhận). Tùy theo yêu cầu và đặc trưng của từng hệ thống, khá năng và thời gian cho phép của dự án, khi lập kế hoạch, người quản lý dự án sẽ quyết định những loại kiểm thử được sử dụng.1 Unit Test (Kiểm thử đơn vị) Unit (Đơn vị) là một thành phần phần mềm nhỏ nhất có thê kiêm thử được. Các hàm (Function), thủ tục (Procedure), lớp (Class) hay phương thức (Method) đều có thể được xem là Unit. Unit được chọn để kiểm tra thường có kích thước nhỏ và chức năng hoạt động đơn giản, vi vậy thường không khó khăn gì trong việc tổ chức kiểm thử, ghi nhận và phân tích kết quả kiêm thử.
Nếu phát hiện lỗi, việc xác định nguyên nhân và khắc 5 phục cũng tương đổi đễ dàng vì chỉ khoanh vùng trong một đơn vị đang kiêm tra. Một nguyên lý đúc kết từ thực tiễn: thời gian tốn cho Unit Test sẽ được đền bù bằng việc tiết kiệm rất nhiều thời gian và chỉ phí cho việc kiểm thử và sửa lỗi ở các mức kiểm thử sau đó. Unit Test thường do lập trình viên thực hiện. Công đoạn này cần được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳ phát triển phần mềm.
Thông thường, Unit Test đòi hỏi kiêm thử viên có kiến thức về thiết kế và code của chương trình. Mục đích của kiêm thử đơn vị là bảo đảm thông tin được xử lý và xuất (khỏi Unit) là chính xác, trong mối tương quan với dữ liệu nhập và chức năng của đơn vị. Điều này thường đòi hỏi tất cả các nhánh bên trong unit đều phải được kiêm tra dé phat hiện nhánh phát sinh lỗi. Một nhánh thường là một chuỗi các lệnh được thực thi trong một unit.
Thực tế việc chọn lựa các nhánh đề đơn giản hóa việc kiêm thử và bao phủ hết unit đòi hỏi phải có kỹ thuật, đôi khi phải dùng thuật toán đề chọn lựa. Cùng với các mục kiêm thử khác, unit test cũng đòi hỏi phái chuẩn bị trước test case (ca kiêm thử) hoặc test seript (kịch bán kiêm thử), trong đó chí định rõ dữ liệu đầu vào, các bước thực hiện và dữ liệu đầu ra mong muốn. Các test case và test script này nên được giữ lại đề tái sử dụng. (Nguồn: https://timoday.vn/tong-quan-ve-kiem-thu-phan-mem-2/, 2020) 1.2 Integration Test (Kiém thir tich hop) Integration test là kết hợp các thành phần của một ứng dụng và kiểm thử như một ứng dụng đã hoàn thiện.
Trong khi unit test kiêm tra các thành phần và đơn vị riêng lẻ thì integration test kết hợp chúng lại với nhau và kiểm tra sự giao tiếp giữa chúng. Hai muc tiéu chinh cua integration test: CO Phát hiện lỗi giao tiếp xảy ra giữa các unit. L1 Tích hợp các unit đơn lẻ thành các hệ thông nhỏ và cuối cùng là nguyên hệ thông hoàn chỉnh chuẩn bị cho kiêm thử ở mức hệ thống. Trong unit test, lập trình viên cố gắng phát hiện lỗi liên quan đến chức năng và cầu trúc nội tại của unit.
Có một số phép kiểm thử đơn giản trên giao tiếp giữa unit với các thành phần liên quan khác, tuy nhiên mọi giao tiếp liên quan đến Unit chỉ thật sự được kiểm tra đầy đủ khi các unit tích hợp với nhau trong khi thực hiện kiêm thử tích hợp. Trừ một số ít ngoại lệ, integration test chỉ nên thực hiện trên những umt đã được kiểm tra cân thận trước đó bằng unit test, va tat cả các lỗi mức unit đã được sửa chữa. (Nguồn: https://timoday.vn/tong-quan-ve-kiem-thu-phan-mem-2/, 2020) 1. System Test (Kiểm thử hệ thống) System test là một phương pháp theo dõi và đánh giá hành vi của sản phẩm hoặc hệ thống phần mềm hoàn chính và đã được tích hợp đầy đủ, dựa vào đặc tả và các yêu cầu chức năng đã được xác định trước.
System test bắt đầu khi tất cá các bộ phận của phần mềm đã được tích hợp thành công. Thông thường loại kiểm thử này tốn rất nhiều công sức và thời gian. Trong nhiều trường hợp, việc kiểm thử đòi hỏi một số thiết bị phụ trợ, phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng, hệ thống phân bố, hoặc hệ thống nhúng. Ở mức độ hệ thông, người kiểm thử cũng tìm kiếm các lỗi, nhưng trọng tâm là đánh giá về hoạt động, thao tác, sự tin cậy và các yêu cầu khác liên quan đến chất lượng của toàn hệ thông.
Điểm khác nhau then chốt giữa integration test và system test là system test chú trọng các hành vi và lỗi trên toàn hệ thống, còn integration test chú trọng sự giao tiếp giữa các unit hoặc đối tượng khi chúng làm việc cùng nhau. Thông thường, unit test và integration test cần phải thực hiện trước để bảo đảm mọi unit và sự tương tác giữa chúng hoạt động chính xác trước khi thực hiện system test. Sau khi hoàn thành integration test, mdt hé thong phan mềm đã được hình thành cùng với các thành phần đã được kiểm tra đầy đủ. Tại thời điểm này, lập trình viên hoặc kiêm thử viên bắt đầu kiểm thử phần mềm như một hệ thông hoàn chỉnh.
Việc lên kế hoạch cho system test nên bắt đầu từ giai đoạn hình thành và phân tích các yêu cầu. System test thực hiện kiểm thử cá các hành vi chức năng của phần mềm lẫn các yêu cầu về chất lượng như độ tin cậy, tính tiện lợi khi sử dụng, hiệu năng và bảo mật. Mức kiêm thử này đặc biệt thích hợp cho việc phát hiện lỗi giao tiếp với phần mềm hoặc phần cứng bên ngoài, chăng hạn các lỗi “tắc nghẽn” hoặc chiếm dụng bộ nhớ.