Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
3,66 MB
Nội dung
TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN ---------------------- KHÓA LUẬN TỐT NGHIỆP Đề tài : ỨNGDỤNGPHẦNMỀMWEBLOADTRONGKIỂMTRAHIỆUNĂNGWEBSITE Sinh viên thực hiện : Nguyễn Thị Uyên Lớp : 46A- CNTT Vinh, 5/2009 1 LỜI CẢM ƠN Trước hết em xin cảm ơn các Thầy, Cô giáo khoa CNTT- trường Đại học Vinh đã truyền thụ cho em các kiến thức quý báu trong 4 năm học. Em xin chân thành cảm ơn cô giáo TS.Phan Lê Na là người trực tiếp hướng dẫn khóa luận. Trong suốt thời gian thực hiện đề tài, Cô luôn giúp đỡ và hướng dẫn tận tình để em hoàn thành đề tài. Qua đây em cũng xin chân thành cảm ơn các bạn trong lớp 46A - khoa CNTT đã giúp đỡ và đóng góp ý kiến trong quá trình thực hiện đề tài. Và cuối cùng em muốn gửi lời cảm ơn sâu sắc nhất tới những người thân yêu trong gia đình em. Con xin cảm ơn bố mẹ, anh chị và người chồng yêu quý đã luôn động viên, giúp đỡ em trong suốt thời gian qua để em hoàn thành được khóa luận tốt nghiệp. Vinh, 10 tháng 5 năm 2009 Sinh viên thực hiện Nguyễn Thị Uyên 2 LỜI MỞ ĐẦU Hiện nay trên thế giới cùng với sự phát triển rất nhanh chóng trong lĩnh vực khoa học và công nghệ thì ngành Công nghệ thông tin ở Việt Nam cũng đang từng bước phát triển mạnh mẽ và có nhiều thành tựu nổi bật, trong đó phải kể đến xu hướng phát triển của ngành kiểm định phầnmềm (software testing) ở Việt Nam đã góp phần thúc đẩy sự phát triển chung của ngành sản xuất phầm mềm trên thế giới. Software testing đã phát triển từ lâu trên thế giới nhưng ở Việt Nam chưa được chú trọng và đầu tư phát triển. Tuy nhiên hiện nay, công việc kiểm định phầnmềm đang có xu hướng chuyển về các quốc gia đang phát triển, trong đó có Việt Nam. Hiện nay các doanh nghiệp phầnmềmtrong nước đã và đang thực hiện thành công nhiều dự án gia công và kiểm định phầnmềm với các đối tác nước ngoài như Nhật Bản, Mỹ vv Chính vì thế bất kỳ một sản phẩm nào, trước khi đưa đến tay người dùng đều cần phải trải qua một quá trình kiểm thử để đảm bảo chất lượng và sự ổn định của sản phẩm. Một sản phẩm phầnmềm cũng không ngoại lệ. Một phầnmềm trước khi đưa ra sử dụng thì cũng cần phải trải qua quá trình kiểm thử - gọi là kiểmtrahiệunăngphầnmềm (Performance Test – PT). Hiệu suất hoạt động của phầnmềm sẽ ảnh hưởng rất lớn đến tốc độ và hiệu suất của toàn bộ hệ thống. Việc kiểmtrahiệu suất phầnmềm cần được thực hiện liên tục ngay mỗi khi một modun nào đó được hoàn thành để nếu phát hiện thấy hiệu suất không đảm bảo thì có biện pháp điều chỉnh hợp lý. Ngoài ra, các kết quả từ các hoạt động kiểmtra và phân tích có thể giúp cho việc đưa ra cấu hình phần cứng cần thiết để triển khai ứng dụng. Trong việc lĩnh vực công nghệ phần mềm, việc kiểmtrahiệunăngphầnmềm là hoạt động thử nghiệm nhằm đánh giá tốc độ thực thi của 3 ứngdụng và nó cũng có thể phục vụ cho việc kiểmtra các thuộc tính của hệ thống, chẳng hạn như quy mô, độ tin cậy và mức độ sử dụng tài nguyên. Kiểmtrahiệunăng có thể phục vụ cho những mục đích khác nhau. Nó có thể chứng minh rằng hệ thống đáp ứng được các tiêu chí hiệu suất nào đó. Nó có thể dùng để so sánh hai hệ thống để tìm ra hệ thống nào thực hiện tốt hơn khi cùng được cài đặt cùng một ứng dụng. Trong quá trình kiểm thử hiệunăngphần mềm, các nhà phát triển phầnmềm phải thiết kế được các kịch bản cho việc kiểm thử và sử dụng các phầnmềm tự động kiểmtrahiệunăng chuyên dụng như: LoadRunner, WebLoad, Open SATA vv để thực hiện các kịch bản đó. Từ kết quả thực hiện các kịch bản đó, nhà phát triển ứngdụng sẽ có được những đánh giá cơ bản về sản phẩm phầnmềm mà họ đang xây dựng. Giai đoạn kiểm thử phầnmềm là một giai đoạn đòi hỏi tốn thời gian, công sức và kinh nghiệm. Chính vì thế việc kiểmtraphầnmềm nói chung và kiểmtrahiệunăng nói riêng chưa thật sự thông dụng và phổ biến đối với các công ty phát triển phầnmềm ở nước ta. Công việc này đang gặp những khó khăn về kinh nghiệm và trình độ Test của các nhà kiểmtraphần mềm. Hiện nay ở Việt Nam chưa có một đội ngũ chuyên nghiệp về lĩnh vực Test phầnmềm mà việc Test phầnmềm đang được xem là một khâu nhỏ quá trình xây dựngphần mềm. Một vấn đề tương đối khó khăn đối với những người bắt đầu với công việc kiểmtraphầnmềm là không có nhiều người biết về nghề này, nên khó có thể học hỏi từ những người đi trước. Một người kiểmtraphầnmềm không chỉ đơn giản là kiểmtra sản phẩm có đạt chất lượng hay không mà cần phải đứng ở góc độ của người sử dụng cuối để tìm hiểu các chức năng và kiểmtrahiệunăng của sản phẩm. Người kiểmtraphầnmềm không chỉ hiểu biết và nắm vững kỹ thuật kiểmtra mà cần 4 phải cập nhật kiến thức mới để áp dụng vào quy trình kiểmtra ngày một tốt hơn và hiệu quả hơn. Qua những tìm hiểu về việc kiểmtrahiệunăngphần mềm, chúng ta có thể thấy được tầm quan trọng và vai trò của công việc này trong quy trình phát triển phần mềm, nhất là đối với những phầnmềmứngdụng lớn, có nhiều người sử dụng cùng một thời điểm như những ứngdụng Website, phầnmềm quản lý tài chính, ngân hàng vv. Chính vì thế, chúng tôi đã chọn đề tài: “Ứng dụngphầnmềmWebLOADtrongkiểmtrahiệunăng WebSite”. Mục đích chính của đề tài: • Tìm hiểu về quy trình kiểmtrahiệunăngphần mềm. • Tìm hiểu về cách sử dụngphầnmềm mã nguồn mở WebLOAD. • Xây dựng kịch bản kiểmtrahiệunăng cho Website đăng ký học tín chỉ của trường Đại học Vinh. Đề tài bao gồm các nội dung sau: • Lời mở đầu. • Chương I: Quy trình kiểmtrahiệunăngphần mềm. • Chương II: Sử dụngphầnmềm WebLOAD. • Chương III: ỨngdụngphầnmềmWebLOADtrongkiểmtrahiệunăng Website. • Kết luận. Trong khuôn khổ một khóa luận tốt nghiệp, chúng tôi chỉ tìm hiểu một cách tổng quan về kiểmtrahiệunăngphần mềm, các bước trong quy trình kiểmtrahiệunăngphầnmềm và giới thiệu phầnmềmWebLOAD để thực thi các kịch bản trong quá trình kiểm thử hiệunăng 5 phần mềm. Cụ thể là kiểmtrahiệunăng của WebSite đăng ký học tín chỉ của trường Đại học Vinh. Tuy nhiên với kiến thức còn hạn chế của bản thân và không có nhiều tài liệu tiếng Việt về lĩnh vực này (hầu hết các tài liệu đều ở dạng tiếng Anh) nên đề tài chưa nghiên cứu được hết các khía cạnh trong qui trình kiểmtrahiệunăngphần mềm. Chúng tôi hy vọng sẽ nhận được những ý kiến đóng góp quý báu từ phía các thầy cô và bạn bè để khóa luận được hoàn thiện hơn. Hy vọng Performance Test sẽ phát triển mạnh trong tương lai ở Việt Nam, góp phần mang lại cho nền công nghệ phầnmềm nước nhà những sản phẩm phầnmềm đạt tiêu chuẩn và đáp ứng được nhu cầu ứngdụng công nghệ thông tin vào cuộc sống. 6 CHƯƠNG I QUY TRÌNH KIỂMTRAHIỆUNĂNGPHẦNMỀM 1.1. Tổng quan Kiểmtrahiệunăngphầnmềm (Performmance Test-PT) là một dạng kiểmtra tự động, để tìm ra điểm chưa hoàn thiện của phầnmềm cần kiểm tra, qua đó giúp cho người làm phầnmềm có sự thay đổi thích hợp để tăng khả năng thực thi của phần mềm. Bên cạnh đó cũng giúp người kiểmtra biết được những thông số ngưỡng của phần mềm, để đưa ra các tiêu chuẩn cho những lần kiểmtra sau. Khi thực hiện Performmance Test, người kiểmtra phải đề ra kết quả mong đợi một cách rõ ràng. Ví dụ: đối với ứngdụng website, chúng ta cần biết thông số quan trọng là: số lượng kết nối (session) đồng thời mà server có thể phục vụ, thời gian mà trình duyệt nhận được kết quả từ server (response time). Khi thực hiện Performmance Test người ta thường chọn thời điểm mà chương trình tương đối ổn định. Thông thường chức năng nằm trong tình huống cần kiểmtrahiệunăng đã được đảm bảo tính đúng đắn. Điều này sẽ giúp cho việc phân tích đánh giá kết quả của Performmance Test dễ dàng và đúng đắn. Thực hiện kiểm thử của phầnmềm sẽ cho phép: • Dự đoán trước hoặc đánh giá trước những đặc trưng của một ứng dụng, đánh giá ứngdụng đó có thực hiện được hay không thực hiện đựợc. Những dự đoán này có ý nghĩa rất quan trọng tới người phát triển ứng dụng, họ sẽ quyết định xem ứngdụng đó có phát triển được trong 7 tương lai hay không, yêu cầu phần cứng để phát triển ứngdụng đó là như thế nào. • Cung cấp dữ liệu nhằm giúp dự đoán trước những rủi ro của hệ thống khi không đáp ứng được những yêu cầu của người dùng. • Đánh giá được khả năng của ứngdụng tại thời điểm thử nghiệm. Xác định được hiệunăng có thể chấp nhận được của ứng dụng: Để đảm bảo phầnmềm có chất lượng thì người kiểmtra viên phải có những kịch bản giả lập gần giống với môi trường thực tế nhất. Trong thực tế có rất nhiều phầnmềm theo mô hình client-server đáp ứng nhiều người dùng cùng một lúc. Một số yêu cầu thực tế rất hay đặt ra là: • Xác định thời gian đáp ứng khi có nhiều người dùng như: số yêu cầu trên giây, số giao dịch thành công trên giây, số gói tin trên giây. • Xác định biểu đồ tài nguyên chiếm giữ của phầnmềm khi có nhiều người dùngtrong thời gian dài như: CPU, bộ nhớ, thông tin dữ liệu vào/ra của đĩa cứng, thông tin dữ liệu vào/ra của mạng. • Xác định khả năngphân tải, khả năng phục hồi dữ liệu khi có sự cố vì quá nhiều người dùng cùng một lúc. • Đề ra cấu hình phần cứng tối thiểu để phầnmềm có thể hoạt động. • Kiểmtra việc thực hiện giao dịch có bị sai lệch khi có nhiều người cùng sử dụng một chức năng của phần mềm. Ví dụ: Có ứngdụng web, yêu cầu cần tìm thông số về hiệunăng thực thi của ứng dụng. Dùngphầnmềmkiểmtrahiệunăng tạo tình huống khởi đầu có 10 người dùng, cứ 2 phút tăng thêm 10 người, tăng tối đa là 2000 người. Quan sát: Biểu đồ thời gian đáp ứng với kết quả xử lý đúng và kết quả sai, có bao nhiêu yêu cầu không được xử lý, tài nguyên sử dụng như 8 RAM, CPU, .Thông qua đó giúp xác định ứngdụng hoạt động tốt nhất trong điều kiện nào. Thông thường, việc kiểmtra các chức năng trên thường được thực hiện một cách tự động thông qua các phầnmềm chuyên dùng cho công việc này. Nhưng một điều quan trọng là: các nhà kiểm thử phầnmềm phải xây dựng được các kịch bản và các kết quả phản hồi theo mong muốn. Nếu kết quả phản hồi không như mong muốn thì phầnmềm cần được xem xét lại. Việc kiểmtra tự động là một phương pháp được dùng phổ biến hiện nay đối với các công ty phát triển phầnmềm chuyên nghiệp trên thế giới. 1.2. Các mức độ trongkiểmtraphầnmềmKiểmtraphầnmềm là công việc mà bất cứ người nào từng tham gia phát triển phầnmềm đều biết và từng làm. Theo nghĩa thông thường nhất, kiểmtraphầnmềm bao gồm việc "chạy thử" phầnmềm hay một chức năng của phần mềm, xem nó "chạy" đúng như mong muốn hay không. Việc kiểmtra này có thể thực hiện từng chặng, sau mỗi chức năng hoặc module được phát triển, hoặc thực hiện sau cùng, khi phầnmềm đã được phát triển hoàn tất. Thực tế, kiểmtraphầnmềm không đơn giản như nhiều người thường nghĩ công việc này có nhiều mức độ khác nhau và có mối tương quan với các chặng phát triển trong dự án phát triển phần mềm. Kiểmtraphầnmềm nói chung có 4 mức độ sau đây: 9 1.2.1. Kiểmtra mức đơn vị (Unit Test) Một đơn vị phầnmềm (Unit) là thành phần nhỏ nhất mà ta có thể kiểmtra được. Nó có thể là: các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức (Method) đều có thể được xem là Unit. Unit Test thường do lập trình viên thực hiện. Công đoạn này cần được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳ phát triển phần mềm. Thông thường, Unit Test đòi hỏi kiểmtra viên có kiến thức về thiết kế và code của chương trình. Mục đích của Unit Test là bảo đảm thông tin được xử lý và xuất ra 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 Unit. Điều này thường đòi hỏi tất cả các nhánh bên trong Unit đều phải được kiểmtra để phát hiện nhánh phát sinh lỗi. Unit Test cũng đòi hỏi phải chuẩn bị trước các tình huống (test case) hoặc kịch bản (script), trong đó xác định rõ dữ liệu vào, các bước thực hiện và dữ liệu mong chờ sẽ xuất ra. Các test case và script này nên được giữ lại để tái sử dụng. Hình 1.1. Các mức độ cơ bản của kiểmtraphầnmềm 10 Kiểmtra mức tích hợp các đơn vị (Integration Test) Kiểmtra mức đơn vị lập trình (Unit Test) Kiểmtra mức hệ thống sau khi tích hợp(System Test) Kiểmtra để chấp nhận sản phầm (Acceptance Test) Các bộ phận đơn lẻ Các nhóm bộ phận Toàn bộ hệ thống Toàn bộ hệ thống nhìn từ khách hàng