Mở đầu Chương một nêu lên sự cần thiết, ý nghĩa thực tiễn, mục tiêu của đề tài “Sinh ca kiểm thử từ các biểu đồ UML” mà cụ thể là từ biểu đồ trạng thái và biểu đồ tuần tự UML. Chương 2: Kiến thức chung 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương hai sẽ trình bày về các khái niệm cơ bản của kiểm thử phần mềm, các mức độ kiểm thử, kỹ thuật kiểm thử tĩnh và động. Chương hai cũng đưa ra các kiến thức cơ bản về UML, tìm hiểu biểu đồ tuần tự và biểu đồ trạng thái trong UML. Chương 3: Phương pháp sinh ca kiểm thử từ biểu đồ tuần tự và biểu đồ trạng thái Chương ba trình bày phương pháp sinh ca kiểm thử từ biểu đồ tuần tự và biểu đồ trạng thái UML, đưa ra ví dụ minh họa từng bước thực hiện cho phương pháp.
Chương này cũng trình bày về ý tưởng, phân tích và xây dựng công cụ sinh ca kiểm thử tự động từ biểu đồ tuần tự và biểu đồ trạng thái UML, trình bày các thuật toán đã áp dụng trong việc xây dựng công cụ. Chương 4: Kết luận Chương bốn đưa kết luận về các nội dung đã đạt được trong luận văn, các mặt hạn chế và hướng phát triển trong tương lai của luận văn. 4 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG 2: KIẾN THỨC CHUNG 2.1 Kiểm thử phần mềm 2.1 Các khái niệm kiểm thử phần mềm Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được triển khai, nhằm cung cấp những thông tin về chất lượng của sản phẩm hay dịch vụ phần mềm đó. Hoạt động kiểm thử phần mềm nhằm đánh giá chất lượng hoặc tính chấp nhận được của sản phẩm.
Kiểm thử với mục đích phát hiện lỗi hoặc bất cứ vấn đề gì của sản phẩm. Có thể định nghĩa một cách dễ hiểu: Kiểm thử phần mềm là một tiến trình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy tính thực hiện theo cái mà chúng đã được thiết kế để làm, không thực hiện bất cứ thứ gì không mong muốn. Trong kiểm thử phần mềm các thuật ngữ hay sử dụng như lỗi, sai, thất bại, sự cố, chúng ta sẽ phân biệt các khái niệm này. · Lỗi (Error): Là các vấn đề lập trình viên phạm phải trong quá trình lập trình, phát triển phần mềm.
· Sai (Fault): Là kết quả của lỗi, từ lỗi sẽ dẫn đến sai, có thể phân thành 2 loại như sau: o Sai sót do đưa ra thừa: Đưa các thông tin không chính xác vào mô tả yêu cầu phần mềm. o Sai do bỏ sót: Khi người thiết kế thiếu một số phần đáng ra phải có trong mô tả yêu cầu phần mềm. · Thất bại (Failure): Thất bại xảy ra khi một lỗi được thực thi, khi đó chức năng phần mềm không thực hiện đúng như mong đợi. · Sự cố (Incident): Là những kết quả do sai sót mang đến, khi thất bại xuất hiện, nó có thể hiển thị hoặc không hiển thị đối với người dùng, tức là rõ ràng hay không rõ ràng đối với người dùng hoặc kiểm thử viên.
Sự cố thể hiện bên ngoài cho người dùng biết về sự tồn tại của thất bại. Việc kiểm thử phần mềm được thực hiện lần lượt các bước theo quy trình, hình vẽ dưới đây mô mả mô hình chung của quá trình kiểm thử. 5 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.1: Quy trình kiểm thử phần mềm Một quy trình kiểm thử phần mềm được bắt đầu từ bước lập kế hoạch kiểm thử. Dựa vào đặc tả phần mềm để thiết kế các ca kiểm thử.
Dựa vào các ca kiểm thử đã viết tiến hành tạo ra các dữ liệu kiểm tra, sau đó chạy chương trình theo kịch bản kèm theo dữ liệu kiểm tra. Kết quả kiểm tra sẽ được so sánh với đầu ra mong muốn trong kịch bản đã tạo. Lần lượt các thực hiện các ca kiểm thử, kết quả của mỗi ca kiểm thử là pass hoặc fail, kết quả cuối cùng ta có là báo cáo kết quả kiểm thử (test report). Quá trình thực hiện kiểm thử phần mềm sẽ sử dụng quy trình kiểm chứng và thẩm định chất lượng phần mềm.
Quy trình kiểm chứng đảm bảo phần mềm được xây dựng theo đúng đặc tả ban đầu, quy trình thẩm định đảm bảo phần mềm đáp ứng được yêu cầu của khách hàng. Trong thực tế, quy trình kiểm chứng phần mềm được áp dụng trước quy trình thẩm định để đảm bảo phần mềm sau khi xây dựng đúng với thiết kế ban đầu và thỏa mãn được yêu cầu của người dùng. Kiểm thử phần mềm có thể chia làm 2 nhóm kỹ thuật chính: Kỹ thuật kiểm thử tĩnh và kỹ thuật kiểm thử động [1]. · Kiểm thử tĩnh không đòi hỏi phải chạy chương trình.
Kỹ thuật kiểm thử tĩnh được tiến hành dựa trên việc khảo sát các tài liệu được xây dựng trong quá trình phát triển như tài liệu đặc tả nhu cầu người dùng, mô hình phần mềm, mã nguồn phần mềm để tìm ra lỗi. Ngoài ra ta có thể sử dụng các kỹ thuật phân tích hình thức như kiểm chứng mô hình, chứng minh định lý để chứng minh tính đúng 6 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com đắn của thiết kế và mã nguồn. Trong quy trình kiểm chứng và thẩm định chất lượng phần mềm thì kỹ thuật kiểm thử tĩnh được sử dụng trong quy trình kiểm chứng. · Kiểm thử động là kỹ thuật kiểm thử được thực hiện thông qua việc chạy chương trình để kiểm tra các tác động của chương trình.
Trong kỹ thuật này phần mềm phải được biên dịch và chạy, mục đích để thẩm định chương trình phần mềm đã hoạt động đúng và đầy đủ các chức năng theo mong muốn của người dùng hay không.2 Mức kiểm thử Dựa trên các công đoạn phát triển phần mềm mà người ta chia thành các mức độ kiểm thử khác nhau: Kiểm thử mức đơn vị, kiểm thử mức tích hợp, kiểm thử mức hệ thống, kiểm thử mức chấp nhận. Kiểm thử mức đơn vị (Unit test): Là kiểm thử ở mức độ thấp nhất. Việc kiểm thử được thực hiện đối với các đơn vị chương trình (các phương thức, hàm, lớp trong mã nguồn) một cách độc lập. 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 đơn vị 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 đơn vị đều phải được kiểm tra để phát 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 đơn vị (Ví dụ: Chuỗi các lệnh sau điều kiện If và nằm giữa then. else là một nhánh) nhằm đảm bảo các thành phần trên hoạt động đúng như yêu cầu. Kiểm thử đơn vị thường được làm bởi chính các lập trình viên viết chương trình.
Cùng với các mức kiểm thử khác, kiểm thử đơn vị cũng đòi hỏi phải chuẩn bị trước các ca 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. Ưu điểm của kiểm thử mức đơn vị là giúp người thực hiện dễ xác định và sửa lỗi do phạm vi kiểm thử nhỏ. Việc phát hiện lỗi sớm làm giảm chi phí kiểm thử so với việc phát hiện lỗi muộn ở các giai đoạn phát triển sau. Tuy nhiên, kiểm thử mức đơn vị có nhược điểm là tốn thời gian, công sức thực hiện và không phát hiện các lỗi xảy ra khi các đơn vị được tích hợp với nhau.
Kiểm thử mức tích hợp: 7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mức kế tiếp với kiểm thử đơn vị là kiểm thử tích hợp. Sau khi các đơn vị chương trình để cấu thành hệ thống đã được kiểm thử, chúng cần được kết nối với nhau để tạo thành hệ thống đầy đủ và có thể làm việc. Kiểm thử tích hợp nhằm xem xét các vấn đề có thể xảy ra khi hai hoặc nhiều thành phần (component, module) của hệ thống tương tác với nhau. Hai mục tiêu chính của kiểm thử tích hợp là: Phát hiện lỗi giao tiếp xảy ra giữa các đơn vị.
Tích hợp các thành phần đơn lẻ thành các hệ thống nhỏ (Subsystem) và hệ thống hoàn chỉnh (System) chuẩn bị cho kiểm thử ở mức hệ thống. Có 4 loại kiểm thử trong kiểm thử tích hợp: · Kiểm thử cấu trúc: Kiểm thử cấu trúc nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng và chú trọng đến hoạt động của các thành phần cấu trúc nội tại của chương trình chẳng hạn các câu lệnh và nhánh bên trong. · Kiểm thử chức năng: Kiểm thử chức năng chú trọng đến chức năng của chương trình và không quan tâm đến cấu trúc bên trong, chỉ khảo sát chức năng của chương trình theo yêu cầu kỹ thuật. · Kiểm thử hiệu năng: Kiểm thử việc vận hành của hệ thống, đánh giá hiệu năng của hệ thống ở các mức chịu tải khác nhau.
Kiểm thử hiệu năng được dùng để kiểm tra các thuộc tính chất lượng của hệ thống như khả năng mở rộng, độ tin cậy, mức độ sử dụng tài nguyên. · Kiểm thử khả năng chịu tải của hệ thống: Là hình thức kiểm thử được sử dụng để xác định tính ổn định của một hệ thống, kiểm thử các giới hạn của hệ thống, đánh giá hiệu năng của hệ thống với một mức tải được định nghĩa trước. Các chiến lược được áp dụng trong kiểm thử tích hợp: · Tích hợp từ trên xuống dưới (top – down). · Tích hợp từ dưới lên trên (bottom – up).
· Tích hợp kẹp (sandwich). · Tích hợp Big Bang. Kiểm thử mức hệ thống: Là mức độ kiểm thử toàn bộ các chức năng của hệ thống phần mềm, bao gồm tất cả các thành phần tương tác với nhau, hoạt động trong môi trường giống như môi 8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com trường thực tế (hệ điều hành, cơ sở dữ liệu, kết nối mạng, khả năng tương thích với các phần mềm khác). Kiểm thử hệ thống thực hiện kiểm tra 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 đích của kiểm thử hệ thống là đảm bảo việc cài đặt tuân thủ đầy đủ các yêu cầu được đặc tả của người dùng. Công việc này tốn nhiều công sức, vì có nhiều khía cạnh về yêu cầu người dùng cần được kiểm thử.