Chương 1: Đưa ra vấn đế nghiên cứu của luận văn. Từ đó, mô tả khái quát nội dụng nghiên cứu của luận văn. Chương 2: Trình bày kiến thức tổng quan về kiểm thử phần mềm. Chương 3: Trình bày các kỹ thuật kiểm thử phần mềm áp dụng cho mức độ kiểm thử đơn vị.
Chương 4: Đưa bài toán thực tế, tiến hành phân tích, đánh giá, nhận xét và đưa ra chiến lược kiểm thử áp dụng cho bài toán. Chương 5: Kết luận đưa ra kết quả đạt được của luận văn và hướng nghiên cứu tiếp theo của luận văn. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 12 Chƣơng 2.Tổng quan về kiểm thử phần mềm Chương 2 trình bày tổng quan về kiểm thử phần mềm.1 Chất lƣợng phần mềm Chất lượng của phần mềm được nhìn theo những hướng khách nhau, khi đứng ở những vai trò khác nhau. Theo [2] thì chất lượng phần mềm được đánh giá theo năm góc nhìn như sau: 1.
Góc nhìn tiên nhiệm (Transcendental View): Chất lượng là một thứ gì đó dễ dàng thừa nhận qua kinh nghiệm, nhưng khó được định nghĩa. Góc nhìn tiên nhiệm không đặc tả riêng rẽ được chất lượng phần mềm, nhờ vào kinh nghiệm người ta có thể đưa ra chất lượng phần mềm là tốt và dễ được công nhận. Góc nhìn người dùng (User View): Chất lượng liên quan đến mức độ mà sản phẩm đáp ứng được nhu cầu, kỳ vọng của người dung, phù hợp cho việc sử dụng. Quan điểm này đánh giá cao cá nhân.
Một sản phẩm được coi là chất lượng tốt nếu có đủ một số lượng lớn người dùng. Quan điểm này rất hữu ích để xác định các thuộc tính sản phẩm mà người dùng cho là quan trọng bao gồm nhiều yêu tố như khả năng sử dụng, độ tin cậy và hiệu quả. Góc nhìn sản xuất (Manufacturing View): Ý tưởng chính của quan điểm này là sự đáp ứng được đặc tả yêu cầu. Chất lượng ở mức độ sản phẩm được xác định bởi việc là sản phẩm có gặp được đặc tả của nó hay không.
Bất kỳ một sai lệch nào với yêu cầu đặc tả cũng làm giảm chất lượng sản phẩm. Việc phù hợp với yêu cầu dẫn đến sự thống nhất của sản phẩm. Góc nhìn sản phẩm (Product View): Giả thuyết đặt ra là:”Nếu một sản phẩm được sản xuất với tính chất nội bộ tốt, thì nó sẽ có các thuộc tính bên ngoài tốt”. Người ta có thể khám phá những mối quan hệ nhân quả giữa các thuộc tính nội bộ và chất lượng bên ngoài.
Trong trường hợp này, chất lượng được xem như là một đặc tính vốn có của sản phẩm. Góc nhìn dựa vào giá trị (Value-Based View): Chất lượng, theo góc nhìn này phụ thuộc vào tổng giá trị mà khách hàng vui lòng trả cho nó. Chất lượng là vô nghĩa nếu một sản phẩm không có ý nghĩa kinh tế. Trong tài liệu về tiêu chuẩn ISO 9126 thì chất lượng phần mềm được định nghĩa trên sáu thuộc tính là: tính năng, tính đáp ứng, tính dễ dùng, tính hiệu quả, tính có thể bảo trì được và tính khả chuyển.2 Kiểm thử và vai trò của kiểm thử Kiểm thử phần mềm đóng một vai trò quan trọng trong việc đảm bảo sự thành công của một sản phẩm phần mềm.
Theo tài liệu [2], đảm bảo chất lượng của một sản phẩm phần mềm là cả quá trình cải tiến phầm mềm thông qua việc lặp đi lặp lại quá trình kiểm thử - tìm lỗi – sửa lỗi trong suốt quá trình phát triển phần mềm. Ứng với từng giai đoạn khác nhau trong quá trình phát triển phần mềm, phải có sự đánh giá LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 13 hoạt động cách hệ thống có thể hoạt động đúng khi thực hiện kiểm thử ở mức hệ thống trước khi bàn giao sản phẩm. Theo Friedman và Voas đã mô tả thì kiểm thử phần mềm là một quá trình thẩm định cho việc đánh giá và cải thiện chất lượng phần mềm. Thông thường, các hoạt động đánh giá phần mềm được chia làm hai loại: Phân tích tĩnh (static analysis): Là việc đánh giá chương trình mà không cần thực thi trên các mã lệnh của chương trình, nó có thể là các hoạt động xem xét (review) lại các tài liệu đặc tả, tài liệu thiết kế, tài liệu ca kiểm thử, hoặc là thanh tra mã nguồn (code inspection),.
Phân tích động (dynamic analysis): Là việc đánh giá chương trình mà cần thực thi trên các mã lệnh của chương trình, trong đó có kỹ thuật kiểm thử hộp đen và hộp trắng. Bằng việc thực hiện phân tích tĩnh và phân tích động thì người kiểm thử viên mong muốn tìm được nhiều lỗi nhất có thể, và đảm bảo các lỗi phát hiện sẽ được sửa trong các giai đoạn sớm của quy trình phát triển phần mềm. Xác minh (Verification) và thẩm định (Validation) là hai công việc xuyên suốt trong quá trình phát triển phần mềm ngay từ giai đoạn phân tích thiết kế phần mềm. Xác minh là việc kiểm tra xem phần mềm có gặp được yêu cầu đặc tả của hệ thống không? Nó trả lời cho câu hỏi “Hệ thống đã được xây dựng đúng theo tài liệu đặc tả hay chưa?”, mục tiêu của viêc xác minh là phát hiện các lỗi lập trình.
Thẩm định là sự kiểm tra xem phần mềm có thỏa mãn yêu cầu của người sử dụng không? Việc thẩm định chú trọng vào sản phẩm cuối cùng khi bàn giao cho khách hàng, mục tiêu là phát hiện các lỗi về thiết kế, về đặc tả. Một hệ thống xây dựng đúng đặc tả, nhưng chưa chắc đã đáp ứng được yêu cầu của khách hàng, vì đặc tả có thể sai, thiết kế có thể thiếu chi tiết, và quá trình sử dụng không thuận tiện cho khách hàng.3 Các mục tiêu của kiểm thử Theo tài liệu [6], các bên liên quan trong quy trình phát triển phần mềm sẽ bao gồm: lập trình viên, kiểm thử viên, quản trị dự án và khách hàng. Mỗi đối tượng này đều có những cái nhìn khác nhau về mục tiêu của kiểm thử như sau: Chƣơng trình hoạt động đƣợc: Các lập trình viên thường chỉ quan tâm đến việc làm thế nào để chương trình hoạt động được trong các điều kiện thông thường. Chƣơng trình không hoạt động đƣợc: Lập trình viên ít khi quan tâm đến vấn đề khác của chương trình là khi nào thì chương trình không hoạt động được, làm thế nào khi chương trình bị lỗi.
Giảm rủi ro của lỗi:Nhà quản trị phần mềm thường quan tâm đến khía cạnh là giảm rủi ro của lỗi gây ra. Hầu hết các hệ thống phần mềm phức tạp đều chứa lỗi - là nguyên nhân hệ thống thất bại. Bởi vậy nếu các lỗi được phát hiện và sửa trong khi thực hiện kiểm thử, tỷ lệ hệ thống gặp rủi ro sẽ giảm. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 14 Giảm chi phí của việc kiểm thử: Chi phí cho việc kiểm thử bao gồm chi phí thiết kế, bảo trì và thực thi các ca kiểm thử; chi phí phần tích kết quả thực hiện của mỗi ca kiểm thử; chi phí tài liệu hóa các ca kiểm thử và chi phí cho hệ thống hoạt động và tài liệu hóa các hoạt động đó.
Khách hàng thường mong muốn là giảm các chi phí của việc kiểm thử nhưng vẫn đảm bảo chất lượng. Mục tiêu chính của kiểm thử là có thể giám chi phí của việc kiểm thử bằng cách thiết kế các bộ ca kiểm thử hiệu quả bao phủ vùng kiểm thử tốt với số lượng ca kiểm thử ít hơn nhưng chất lượng vẫn được đảm bảo.4 Các hoạt động kiểm thử Theo [2], để kiểm thử một chương trình phần mềm kỹ sư kiểm thử phải thực hiện một chuỗi các hoạt động như sau: Xác định đối tượng cần kiểm thử: Đối tượng được xác định là mục đích để thiết kế một hay nhiều ca kiểm thử đảm bảo chương trình thỏa mãn đối tượng đó. Một đối tượng rõ ràng sẽ kết nối tới một ca kiểm thử. Lựa chọn các giá trị đầu vào: Việc lựa chọn này dựa vào đặc tả yêu cầu, mã nguồn hoặc mong muốn của chúng ta.
Tính toán giá trị đầu ra mong muốn: Tức là ứng với các giái trị đầu vào, cần tính toán giá trị đầu ra mong muốn của chương trình. Thiết lập môi trường kiểm thử của chương trình: Chuẩn bị môi trường kiểm thử của chương trình, ở bước này tất cả các giả định ngoài của chương trình phải được thỏa mãn. Ví dụ: các hệ thống mạng, các cơ sở dữ liệu cần được thiết lập một cách đúng đắn, máy tương tác. Tiến hành kiểm thử chương trình: Kỹ sư kiểm thử thực hiện chương trình với các tập giá trị đầu vào và quan sát giá trị đầu ra thực tế của chương trình.
Để thực hiện một ca kiểm thử, các giá trị đầu vào phải được cung cấp cho chương trình ở các thời điểm khác nhau. Phân tích kết quả kiểm thử: Phân tích các kết quả kiểm thử để so sánh kết quả đầu ra thực tế với kết quả đầu ra mong muốn. Độ phức tạp của phép so sánh này phụ thuộc vào độ phức tạp của dữ liệu quan sát. Cuối cùng là đưa ra quyết định về kết quả hoạt động của chương trình là thỏa mãn (pass), không thoải mãn (fail) yêu cầu của người dùng hay không đưa ra được quyết định.5 Các mức độ kiểm thử Theo mô hình phát triền phần mềm chữ V thì kiểm thử phần mềm là một chuỗi các hoạt động tiến hình song song cùng hoạt động phát triển phần mềm, từ lập kế hoạch và kiểm soát quá trình kiểm thử, phân tích yêu cầu và thiết kế ca kiểm thử, viết ca kiểm thử,tiến hành kiểm thử phần mềm, đánh giá các kết quả kiểm thử, báo cáo và tổng hợp các hoạt động kết thúc quá trình kiểm thử.
Chúng ta có thể nhìn thấy rõ mối LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 15 liên hệ giữa hoạt động phát triền phần mềm (lập trình) và hoạt động kiểm thử phần mềm (kiểm thử) theo hình 2.1 Mô hình phát triền phầm mềm chữ V Theo mô hình này, các hoạt động kiểm thử phần mềm bao gồm: 1. Kiểm thử đơn vị, 2. Kiểm thử tích hợp, 3. Kiểm thử hệ thống , 4.
Kiểm thử chấp nhận. Mỗi hoạt động này tương ứng với các pha trong phát triển phần mềm từ đặc tả yêu cầu của khách hàng đến hoạt động lập trình. Kiểm thử đơn vị Theo [2], đơn vị (unit) là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm thử được như hàm, thủ tục, lớp hay phương thức đều có thể được xem là đơn vị. Các thành phần đơn vị này sẽ được kiểm thử tại cấp độ kiểm thử mức đơn vị trong quy trình kiểm thử phần mềm.