CHAPTER 9 SOFTWARE TESTING 1
CHAPTER 9: SOFTWARE TESTING Testing level Component/unit testing Kiểm tra component ứng dụng Thường thực component developer Các kiểm tra lấy từ kinh nghiệm developer System testing Kiểm tra nhóm component Từng phần thực nhiều nhóm độc lập khác Bài kiểm tra dự yêu cầu thông số hệ thống Acceptance testing Thực khách hàng Kiểm tra toàn hệ thống xem hệ thống thiết kế có chấp nhận hay khơng CHAPTER 9: SOFTWARE TESTING Types of testing Functional testing: Login, Logout, Remove user out of the system,… Performance testing: How fast the system can performance? Load testing: Give a whole punch of user and data to test Stress testing: Test if the system can work over the limits Security testing: Check if the application can Usability/interface testing: If the application is easy to use or not API and service testing: Privacy testing: User data privacy can be protected or not Testing phases Testing goals Validation testing Thể cho lập trình viên khác hàng hệ thống phần mềm đáp ứng yêu cầu đề CHAPTER 9: SOFTWARE TESTING Các kiểm tra thực thành công cho thấy hệ thống vận hành dự định ban đầu Defect testing Tìm kiếm lỗi phần mềm, chỗ chưa chạy đúng, chưa phù hợp với thông số đề Một test thành công test khiến cho hệ thống chạy sai Các test cho thấy diện lỗi 💡 Trong dự án lớn cần người tester độc lập, mục tiêu họ thiết kế test case mà làm xuất lỗi nhiều tốt The software testing process Sơ đồ trình kiểm tra phần mềm Sau thiết kế test case, tester thực chương trình đối chiếu với kết requirment có lỗi phải cap hình viết report lại Testing policies Chỉ có hình thức exhaustive testing đảm bảo phần mềm khơng có lỗi ⇒ Điều khơng thể khơng thể có đủ thời gian để test hết lỗi CHAPTER 9: SOFTWARE TESTING ❓ Làm để kiểm tra thời gian ngắn mà cho nhiều lỗi Đưa sách thực menu cần để kiểm thử Kết hợp hàm chức truy cập thông qua menu nên kiểm tra Khi u cầu nhập thơng tin chức nên kiểm thử thơng tin xác khơng xác System testing Liên quan đến việc tích hợp thành phần để tạo hệ thống hệ thống Có thể liên quan đến việc kiểm thử gia tăng để giao cho khách hàng Bao gồm giai đoạn: Integration testing Release testing Intergration testing Bao gồm việc xây dựng hệ thống từ component kiểm tra lỗi xuất trình tương tác thành phần Top-down integration Tích hợp gói phần mềm nhỏ test Dùng cho ứng dụng nhỏ Bottom-up integration Gom nhiều thành phần lại kiểm thử Áp dụng cho dự án lớn có nhiều thành phần 💡 Các hệ thống nên tích hợp thường xuyên bước để tránh tình trạng “big bang” integration CHAPTER 9: SOFTWARE TESTING Incremental integration testing Testing approaches Architectural validation: Top-down integration testing (Kiểm thử tích hợp từ xuống) tốt việc phát lỗi kiến trúc hệ thống System demonstration: Top-down integration testing cho phép giới hạn Test implementation: Thường dễ với buttom-up integration testing Test observation: Đều gặp vấn đề với hai cách tiếp cận Extra code cần cho việc quan sát test Release testing Là quy trình kiểm thử phát hành hệ thống để phân phối cho khách hàng Mục tiêu chính: mang lại độ tin cậy cho nhà cung cấp phần mềm đáp ứng yêu cầu họ CHAPTER 9: SOFTWARE TESTING Thường phải làm thêm black-box testing để đánh giá xem phần mềm có chạy theo u cầu hay khơng Some testing guidelines Một số chiến lược: Tạo test-case sinh error messages (cố tình nhập sai để báo lỗi, xem báo lỗi hay khơng, có báo lỗi hay không) Thiết kế đâu vào tạo buffers để bị overflow Lặp lặp lại đầu vào nhiều lần Cố tình tạo đầu sai Cố tình nhập số nhỏ lớn Black-box testing Some testing guidelines Chọn input mà khiến hệ thống tạo tất thông báo lỗi CHAPTER 9: SOFTWARE TESTING Thiết kế input khiến buffer bị tràn Lặp lại input input chuỗi nhiều lần Cố tình làm cho output khơng hợp lệ Khiến cho kết tính tốn nhỏ lớn From use cases to test cases Test case tạo từ use case có Test case thiết kế sở cho hệ thống thử nghiệm Sử dụng test case luồng kiện, hoạt động, inputs outputs Component Testing Là trình kiểm thử components cách riêng biệt với Component là: Các chức phương thức riêng lẻ đối tượng Các lớp đối tượng với nhiều thuộc tính phương thức Các composite components giao diện xác định được sử dụng để truy cập chức chúng Interface testing CHAPTER 9: SOFTWARE TESTING Some interface types Parameter interfaces Shared memory interfaces Procedural interfaces Message passing interfaces Test-case design Thiết kế để thi hành lại test case nhiều lần Các cách tiếp cận: Requirements-based testing Partition testing Structural testing CHAPTER 9: SOFTWARE TESTING Requirements based testing Ảnh hưởng đến thời gian q trình kiểm thử Tạo test-case có nhiều khác biệt phát sinh nhiều lỗi Partition testing Data nhập xuất chia thành class khác Các lớp phân vùng tương đương, chương trình hoạt động cách tương đương cho phần tử class Test case lựa chọn từ phân vùng Equivalence partitioning Chia thành phân vùng để trị Ví dụ: Chức login: (4 phân vùng password) CHAPTER 9: SOFTWARE TESTING Valid username(available)/password Invalid username/password Valid username/Invalid password Invalid username/Valid password Invalid username/Invalid password Testing guidelines (sequences) Test software with sequences which have only a single value Use sequences of different sizes Chia test mà phần đầu, giữa, cuối sequences liên kết với Test with sequences of zero length Structural testing Đôi gọi kiểm thử white-box Xuất phát từ trường hợp kiểm thử theo cấu trúc chương trình CHAPTER 9: SOFTWARE TESTING 10 Path testing Mục tiêu đảm bảo path suốt chương trình thực lần Nó bao gồm: Starting point Node thể định chương trình Các đường (Arc) thể luồng điều khiển (flow of control) Các câu lệnh có điều kiện node biểu đồ luồng (flow graph) Test automation Đa số trình kiểm thử thực cách thủ cơng tốn Q trình kiểm thử thực tự động thông qua công cụ CHAPTER 9: SOFTWARE TESTING 11 Gợi ý test chức login (Sử dụng Katalon Studio để kiểm thử tự động) CHAPTER 9: SOFTWARE TESTING 12