phần mở đầu. Chƣơng này trình bày tổng quan tình trạng phát triển phần mềm, đảm bảo chất lƣợng phần mềm hiện nay ở Việt Nam. Giới thiệu mục tiêu và nội dung trong luận văn. Chƣơng hai là cơ sở lý thuyết về kiểm thử.
Chƣơng này sẽ nêu lên các khái niệm về kiểm thử chấp nhận, kiểm thử chấp nhận tự động. Chƣơng sẽ trình bày các phƣơng pháp kiểm thử chấp nhận hiện nay. Đồng thời, cũng giới thiệu một số các công cụ hỗ trợ kiểm thử tự động. Chƣơng ba giới thiệu cơ bản Robot Framework.
Chƣơng sẽ đi tìm hiểu sâu về Robot Framework, các thƣ viện chuẩn cùng một số các thƣ viện mở rộng của Robot Framework. Chƣơng này cũng hƣớng dẫn cách tạo dữ liệu kiểm thử: cú pháp, kiểu định dạng tệp hỗ trợ, bảng dữ liệu kiểm thử, quy tắc phân tích dữ liệu, sinh các ca kiểm thử và các lƣu ý để tạo đƣợc ca kiểm thử tốt. Chƣơng cuối sẽ ứng dụng Robot Framework vào kiểm thử trang web để minh họa rõ hơn những tính năng mà Robot Framework cung cấp. Trang web đƣợc kiểm thử là truongnha.
Ứng dụng sẽ xây dựng các ca kiểm thử LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 để kiểm tra chức năng đăng nhập vào hệ thống. Các ca kiểm thử đƣợc xây dựng trong một tập tin hoặc trong một thƣ mục. Phần kết luận sẽ là một vài nhận xét về Robot Framework, các kết quả luận văn đạt đƣợc và hƣớng nghiên cứu tiếp của luận văn. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 CHƯƠNG 2.
Kiểm thử phần mềm Kiểm thử phần mềm là là một phần trong tiến trình đảm đảo chất lƣợng phần mềm. Kiểm thử phần mềm là việctiến hành kiểm tra để cung cấp cho các bên liên quan thông tin về chất lƣợng của sản phẩm phần mềm đƣợc kiểm thử. Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìn độc lập về phần mềm để từ đó cho phép đánh giá và thấu hiểu đƣợc những rủi ro trong quá trình triển khai phần mềm. Mục đích chính của kiểm thử là phát hiện ra các lỗi phần mềm để từ đó khắc phục và sửa chữa.
Việc kiểm thử không thể khẳng định đƣợc rằng các chức năng của sản phẩm đúng trong mọi điều kiện, mà chỉ có thể khẳng định rằng nó không hoạt động đúng trong những điều kiện cụ thể[4]. Phạm vi của kiểm thử phần mềm thƣờng bao gồm việc kiểm tra mã, thực hiện các mã trong môi trƣờng và điều kiện khác nhau, và việc kiểm thử các khía cạnh của mã: nó có làm đúng nhiệm vụ của nó hay không, và nó có làm những gì cần phải làm hay không. Trong môi trƣờng phát triển phần mềm hiện nay, một đội kiểm thử thƣờng tách biệt với đội phát triển. Các thành viên trong đội kiểm thử giữ các vai trò khác nhau.
Các thông tin thu đƣợc từ kiểm thử có thể đƣợc sử dụng để điều chỉnh quá trình phát triển phần mềm[5]. Kiểm thử phần mềm đƣợc phân làm kiểm thử tĩnh và kiểm thử động. Kiểm thử tĩnh liên quan đến việc kiểm chứng trong khi kiểm thử động liên quan đến việc xác nhận. Các phƣơng pháp kiểm thử nhƣ kiểm thử hộp trắng, kiểm thử hộp đen, kiểm thử hộp xám.
Kiểm thử phần mềm có các loại hình kiểm thử: Kiểm thử cài đặt, kiểm thử khả năng tƣơng thích, kiểm thử hồi quy, kiểm thử mức chấp nhận, kiểm thử chức năng hoặc kiểm thử phi chức năng v. Kiểm thử phần mềm cũng đƣợc chia ra các mức kiểm thử theo vị trí chúng đƣợc thêm vào trong quy trình phát triển phần mềm, hoặc theo mức độ đặc hiệu của kiểm thử. Có thể phân kiểm thử phần mềm theo các mức chính sau: kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.
Kiểm thử chấp nhận Một trong những vấn đề khó khăn nhất hiện nay trong phát triển phần mềm là giao tiếp. Một định nghĩa về mỗi yêu cầu sản phẩm là cần thiết để cải thiện giao tiếp giữa khách hàng, quản lý dự án, các nhà phân tích và phát triển phần mềm. Kiểm thử chấp nhận là một phần quan trọng trong kiểm thử để đảm bảo phần mềm đáp ứng đúng yêu cầu khách hàng. Kiểm thử chấp nhận là kiểm thử chính thức được tiến hành để xác định có hay không một hệ thống đáp ứng các tiêu chuẩn chấp nhận nó (các tiêu chuẩn hệ thống phải đáp ứng để được chấp nhận bởi khách hàng) và cho phép khách hàng xác định có hay không chấp nhận hệ thống[6].
Kiểm thử chấp nhận đƣợc dùng để xác minh một yêu cầu đã hoàn tất. Kiểm thử chấp nhận thƣờng đƣợc thực hiện bởi khách hàng, ngƣời dùng hệ thống hoặc các bên liên quan khác. Mục đích của kiểm thử chấp nhận không đặt nặng việc tìm kiếm lỗi mà nhằm xác nhận lại phần mềm thỏa mãn tất cả yêu cầu chức năng của khách hàng và khách hàng chấp nhận sản phẩm. Một yêu cầu ngƣời dùng đƣợc coi là hoàn thành khi nó vƣợt qua đƣợc bài kiểm thử chấp nhận.
Kiểm thử chấp nhận đƣợc thực hiện ở thời điểm trƣớc khi thực hiện kiểm thử tích hợp hoặc hồi quy, hoặc đƣợc thực hiện trong quá trình chuyển giao giữa hai pha của quy trình phát triển phần mềm. Mỗi một kiểm thử chấp nhận đại diện cho một số kết quả mong đợi từ hệ thống. Kiểm thử chấp nhận sử dụng kỹ thuật kiểm thử hộp đen và đƣợc tiến hành thông qua hai loại là kiểm thử Alpha và kiểm thử Beta. Kiểm thử Alpha là kiểm thử hoạt động chức năng thực tế hoặc giả lập do ngƣời dùng, khách hàng tiềm năng hoặc một nhóm kiểm thử viên độc lập thực hiện tại nơi sản xuất phần mềm.
Kiểm thử Alpha thƣờng đƣợc sử dụng cho phần mềm đại trà (đóng gói sẵn để bán) nhƣ là một hình thức kiểm thử mức chấp nhận nội bộ trƣớc khi phần mềm chính thức đi vào giai đoạn kiểm thử Beta. Kiểm thử Beta đƣợc đƣa ra sau khi kiểm thử Alpha và có thể đƣợc coi là một hình thức mở rộng của kiểm thử mức chấp nhận của ngƣời dùng. Các phiên bản của phần mềm, gọi là phiên bản beta, đƣợc phát hành cho một đối tƣợng hạn chế bên ngoài của nhóm lập trình. Phần mềm này đƣợc phát hành cho nhiều nhóm ngƣời dùng để kiểm thử nhiều hơn nữa và nó có thể đảm bảo sản phẩm có ít thiếu sót và lỗi.
Đôi khi, các phiên bản beta đƣợc phát hành LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 6 rộng rãi để tăng phạm vi phản hồi thông tin từ một số lƣợng tối ta ngƣời dùng trong tƣơng lai. Kiểm thử chấp nhận tự động Kiểm thử tự động là quá trình thực hiện một cách tự động các bƣớc trong một kịch bản kiểm thử. Kiểm thử tự động bằng một công cụ nhằm rút ngắn thời gian kiểm thử. Mục đích của kiểm thử tự động làm giảm thiểu thời gian, công sức và kinh phí, tăng độ tin cậy, tăng tính hiệu quả và giảm sự nhàm chán cho ngƣời kiểm thử trong quá trình kiểm thử sản phẩm phần mềm.
Với sự phức tạp ngày càng gia tăng của các phần mềm, kiểm thử chấp nhận càng trở lên quan trọng. Kiểm thử chấp nhận bằng tay tốn nhiều thời gian, dễ mắc lỗi và gây nhàm chán. Vì vậy, kiểm thử chấp nhận nên đƣợc tự động hóa[7]. Bằng tự động hóa các bài kiểm thử chấp nhận đƣợc viết dƣới dạng code.
Các bài kiểm thử sau đó đƣợc chạy lặp đi lặp lại nhiều lần mà ít tốn kém, đƣợc thực hiện vào bất kỳ thời gian nào và bởi bất kỳ ai [8]. Có ba ƣu điểm chính để tự động hoá kiểm thử chấp nhận: Một là, các ca kiểm thử đƣợc thực hiện lặp đi lặp lại nhiều lần mang đến sự tự tin rằng thành phần mới đƣợc tích hợp vào hệ thống đã không phá vỡ hoặc làm mất ổn định bất cứ điều gì mà hệ thống trƣớc đó đã thực hiện đƣợc. Nó chỉ thực hiện đúng chức năng nó phải làm. Hai là, chạy lặp đi lặp lại nhiều lần các ca kiểm thử giúp hiểu đƣợc phần nào các chức năng mong muốn của hệ thống đã đƣợc đáp ứng theo yêu cầu.
Thứ ba, các ca kiểm thử chấp nhận tự động có thể tập hợp thành một bộ kiểm thử hồi quy. Kiểm thử hồi quy là lựa chọn kiểm thử lại một hệ thống hay một thành phần của hệ thống để xác minh rằng thay đổi đã không gây ra tác dụng ngoài ý muốn và hệ thống hoặc một thành phần vẫn tuân thủ đúng với yêu cầu quy định của nó[6]. Tóm lại, kiểm thử chấp nhận tự động giúp tránh đƣợc một số lỗi khi thực hiện kiểm thử bằng tay, tiết kiệm chi phí, thời gian, không bị ảnh hƣởng của áp lực tiến độ dự án. Kiểm thử chấp nhận tự động mang lại nhiều lợi ích và đang rất đƣợc chú trọng trong các dự án phát triển phần mềm hiện nay đặc biệt là dự án Agile.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Một số kỹ thuật của khung kiểm thử chấp nhận tự động Một khung kiểm thử tự động [12] là một hệ thống tích hợp giúp ngƣời phát triển phần mềm dễ dàng tự động hóa các hoạt động kiểm thử. Hệ thống này tích hợp các thƣ viện chức năng, các nguồn dữ liệu kiểm thử, chi tiết đối tƣợng và các mô-đun tái sử dụng khác nhau. Các thành phần ở đây hoạt động nhƣ các khối xây dựng nhỏ mà cần phải đƣợc lắp ráp để đại diện cho một quy trình nghiệp vụ.
Các khungnày cung cấp các cơ sở của tự động hóa kiểm thử và đơn giản hóa các nỗ lực tự động. Một số kỹ thuật tự động hóa của các khung kiểm thử tự động đƣợc phân loại nhƣ sau. Kiểm thử tuyến tính Kiểm thử tuyến tính (Linear)[12]còn gọi là kiểm thử tuần tự là kiểm thử mà hành động kiểm thử đƣợc thực hiện tuần tự. Mã kiểm thử có thể đƣợc sinh ra bởi các công cụ ghi lại các hành động của ngƣời kiểm thử trên trình duyệt và lƣu chúng lại nhƣ một kịch bản kiểm thử.
Kiểm thử viên có thể sử dụng chính kịch bản này để kiểm thử hồi quy. Kiểm thử viên cũng có thể sửa trên chính kịch bản này để tạo ra các bài kiểm tra khác mà không tốn nhiều thời gian, công sức.1 dƣới đây là một minh họa. Hành động kiểm thử của việc đăng nhập vào trang http://truongnha.com/ đƣợc Selenium IDE tự động ghi lại và đƣợc đặt tên “Login”. Nhƣ vậy, kịch bản của một ca kiểm thử với tên “Login” đã đƣợc lƣu lại để dùng cho lần kiểm thử sau.