Nghiên cứu kiểm thử các ứng dụng web và xây dựng công cụ hỗ trợ Tạ Vũ Nhân Trường Đại học Công nghệ Luận văn Thạc sĩ ngành: Công Nghệ Phần Mềm; Mã số: 60 48 10 Người hướng dẫn: TS.Trư
Trang 1Nghiên cứu kiểm thử các ứng dụng web và
xây dựng công cụ hỗ trợ
Tạ Vũ Nhân
Trường Đại học Công nghệ Luận văn Thạc sĩ ngành: Công Nghệ Phần Mềm; Mã số: 60 48 10
Người hướng dẫn: TS.Trương Ninh Thuận
Năm bảo vệ: 2010
Abstract: Đưa ra một số kỹ thuật kiểm thử phần mềm, tìm hiểu một số ưu nhược
điểm của mỗi kỹ thuật kiểm thử Lựa chọn các kỹ thuật kiểm thử phần mềm Đưa ra cái nhìn tổng quát về công nghệ Web Service, tìm hiểu về các thành phần chuẩn được
sử dụng trong công nghệ Web Service, kiến trúc Web Service và quy trình hoạt động của một Web Service Tìm hiểu về ứng dụng web và xu hướng phát triển các ứng dụng Đưa ra một số vấn đề và cách giải quyết các vấn đề trong việc viết một công cụ
hỗ trợ kiểm thử trong Net của các ứng dụng web Nghiên cứu các phương pháp kiểm thử web services Giới thiệu một bài toán Travel-Agent, mục tiêu, yêu cầu của bài
toán Xây dựng công cụ hỗ trợ kiểm thử cho bài toán
Keywords: Công nghệ phần mềm; Kỹ thuật kiểm thử phần mềm; Trang Web; Web
Service
Content
MỞ ĐẦU
Vào khoảng đầu những năm 60 nhu cầu sử dụng các hệ thống phần mềm, giải phóng sức lao động trí tuệ trong các hoạt động kinh doanh, quản lý, giải trí và một số lĩnh vực khoa học
xã hội tăng cao Tuy nhiên các yêu cầu về nghiệp vụ phức tạp trong các hệ thống này dẫn đến các hệ thống phần mềm tương ứng cũng ngày càng trở nên phức tạp, cồng kềnh và khó kiểm soát Rất nhiều yêu cầu nghiệp vụ đòi hỏi xử lý các vấn đề liên quan đến dữ liệu phân tán, xử
lý các thông tin khác nhau do nhiều tổ chức nắm giữ Đã có nhiều kiến trúc phần mềm được đưa ra nhưng chưa đủ mạnh để đáp ứng được nhu cầu thực tế dẫn đến sự khủng hoảng phần mềm
Trong thời kỳ này, một số dự án phần mềm điển hình đã thất bại như: Hệ thống điều khiển hàng không; Các hệ thống phần mềm phục vụ cho ngành viễn thông, y tế, Theo sự phân tích thực tế, các hệ thống phần mềm rơi vào tình trạng này bởi các nguyên nhân khác nhau như[19]:
Trang 2 Khả năng xây dựng phần mềm cho phần cứng không theo kịp sự phát triển của phần cứng
Khả năng xây dựng phần mềm chưa đáp ứng được nhu cầu thực tế
Sự cạnh tranh giữa các hệ thống phần mềm về chất lượng và độ tin cậy ngày càng cao
Nguồn nhân lực không đủ so với nhu cầu thực tế
Ngoài những nguyên nhân cơ bản trên, còn có những nguyên nhân xuất phát từ điểm yếu của hệ thống phầm mềm như:
Không có đơn vị dữ liệu chuẩn để đánh giá hệ thống
Không xác định chính xác được chi phí xây dựng hệ thống
Các công cụ hỗ trợ lập kế hoạch và đánh giá tự động không phù hợp
Kế hoạch phát triển hệ thống không hợp lý tạo sức ép lớn cho người thực hiện
Quá trình quản lý tiến trình thực hiện và sự cố phát sinh không phù hợp
Thiếu khả năng kiểm duyệt thiết kế và quản lý mã lệnh của hệ thống phần mềm
Để khắc phục và hạn chế được những điểm yếu này đòi hỏi dự án phần mềm phải có những quy trình nhất định, giúp chúng ta kiểm soát được tiến trình thực hiện dự án cũng như hiệu quả công việc, kết quả và hướng phát triển của dự án Sau khi hoàn thành hệ thống phần mềm của dự án và trước khi đưa vào ứng dụng trong thực tế, hệ thống này cần phải được kiểm tra, đánh giá tính chính xác và khả năng đáp ứng yêu cầu thực tế - thuật ngữ “Kiểm thử phần mềm” bắt nguồn từ đây[9,18]
Kiểm thử phần mềm là một phương pháp kiểm soát quá trình thử nghiệm, thực hiện các chức năng trong hệ thống phần mềm theo một tập hợp các điều kiện đặt ra với mục đích tìm
ra lỗi của hệ thống Kết quả của kiểm thử phần mềm là tư liệu chứng minh hệ thống có thể đáp ứng được các yêu cầu đặt ra và ứng dụng được trong thực tế hay không?
Kiểm thử phần mềm có thể nói là một phần không thể thiếu trong việc xây dựng và phát triển phần mềm Nó cho chúng ta biết một phần mềm khi xây dựng và sử dụng có đúng với các yêu cầu mà chúng ta đặt ra hay không
Trang 3Ở nước ta hiện nay ngành Công nghệ phần mềm đang phát triển mạnh mẽ, việc kiểm thử phần mềm chưa thực sự được quan tâm nhiều hoặc quan tâm nhưng không đúng cách Việc áp dụng các công cụ tự động cho việc kiểm thử hầu như không có Trong khi đó theo thống kê chúng ta có thể tốn 40% đến 60% thời gian dành cho việc kiểm thử
Phần lớn các công ty thường không có các tester thực sự, một số công ty có những người chuyên về kiểm thử nhưng thường làm thủ công Vì vậy việc xây dựng các công cụ hỗ trợ kiểm thử cho chúng ta các lợi ích sau
Mất ít thời gian hơn
Chính xác hơn
Hiệu quả hơn
Tránh được các lỗi do con người gây ra do kiểm thử thủ công
Với thực tế và các lợi ích trên tôi nhận thấy việc nghiên cứu và xây dựng đề tài này là cần thiết, phù hợp với tình hình hiện tại
Cấu trúc của luận văn bao gồm:
Chương 1 Đưa ra một số kỹ thuật kiểm thử phần mềm, tìm hiểu một số ưu nhược điểm
của mỗi kỹ thuật kiểm thử Lựa chọn các kỹ thuật kiểm thử phần mềm
Chương 2 Đưa ra cái nhìn tổng quát về công nghệ Web Service, tìm hiểu về các thành
phần chuẩn được sử dụng trong công nghệ Web Service, kiến trúc Web Service và quy trình hoạt động của một Web Service Tìm hiểu về ứng dụng web và xu hướng phát triển các ứng dụng
Chương 3 Đưa ra một số vấn đề và cách giải quyết các vấn đề trong việc viết một công
cụ hỗ trợ kiểm thử trong Net của các ứng dụng web Nghiên cứu các phương pháp kiểm thử web services
Chương 4 Giới thiệu một bài toán Travel-Agent, mục tiêu, yêu cầu của bài toán Xây
dựng công cụ hỗ trợ kiểm thử cho bài toán
References
[1] Doug Tidwell, James Snell, Paval Kulchelko Programing Web Services With Soap O’ reilly, january 2002
Trang 4[2] Prentice Hall PTR Web Service Platform Architechture: SOAP, WSDL, Policy,
WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More Prentice Hall, Apr 2005
[3] Robert Englander Java and Soap O’ reilly, May 2002
[4] Ethan Cerami Web Service Essentials Distributed Application with RPC, SOAP, UDDI
&WSDL O’ reilly, Feb 2002
[5] Gerhard Wiehler Web Service and Service Oriented Architecture John wiley & Son, Feb
2004
[6] James D McCaffrey .NET Test Automation Recipes, A Problem - Solution Approach
Apress, 2006
[7] Hmark Feuster, Dorothy Graham - Software Test Automation, Effective use of test
execution tools Addison wesley, 1999
[8] William E Perry - Effective Methods of Software Testing John Wiley& Sons, 2000
[9] Roger Pressman - Software Engineering A Practitioners Approach Wiley, 2005
[10] Dustin, Elfriede, Jeff Rashka, and John Paul Automated Software Testing: Introduction,
Management, and Performance Addison-Wesley, 1999
[11] Dustin, Elfriede Effective Software Testing: 50 Specific Ways to Improve Your Testing
Addison-Wesley , 2002
[12] Kaner, Cem Testing Computer Software, 2nd ed John Wiley & Sons, 1999
[13] Kit, Edward Software Testing in the Real World: Improving the Process
Addison-Wesley, 1995
[14] Myers, Glenford, et al The Art of Software Testing, 2nd ed John Wiley & Sons, 2004 [15] Sweeney, Mary Romero Visual Basic for Testers Apress, 2001
[16] B Beizer Black Box Testing John Wiley & Sons, 1995
[17] B Beizer Software Testing Techniques Computer Press, 1990
[18] R Pressman Software Engineering: A Practitioner's Approach Boston: McGraw Hill,
2001
[19] Software Engineering Body of Knowledge http://www.sei.cmu.edu/publications
[20] Software Testing Guide Book http://www.SofTReL.org