Kiểm thử hiệu năng được thực hiện trong quá trình thực hiện dự án, là một trong những phần kiểm tra quan trong nhất trong kiểm thử kỹ thuật của hệ thống.. Các thuật ngữ trong kiểm thử
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN KHÁNH DUY
KIỂM THỬ HIỆU NĂNG VÀ THỬ NGHIỆM TRÊN CÁC ỨNG DỤNG
TRIỂN KHAI CHO DOANH NGHIỆP
LUẬN VĂN THẠC SĨ KỸ THUẬT
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
- NGUYỄN KHÁNH DUY
KIỂM THỬ HIỆU NĂNG VÀ THỬ NGHIỆM TRÊN CÁC ỨNG
DỤNG TRIỂN KHAI CHO DOANH NGHIỆP
Chuyên ngành : Công nghệ thông tin
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS HUỲNH QUYẾT THẮNG
Hà Nội – 2014
Trang 3MỤC LỤC
LỜI CAM ĐOAN 5
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 6
DANH MỤC BẢNG 7
DANH MỤC HÌNH VẼ, ĐỒ THỊ 8
MỞ ĐẦU 9
1 Lý do chọn đề tài 9
2 Mục đích của đề tài 11
3 Đối tượng và phạm vi nghiên cứu 11
4 Phương pháp nghiên cứu 11
5 Bố cục luận văn 12
CHƯƠNG I: KIỂM THỬ PHẦN MỀM 13
1.1 Kiểm thử phần mềm 13
1.2 Kiểm thử hiệu năng phần mềm 14
1.3 Mô hình kiểm thử cho dự án SAP 18
1.4 Kết luận 21
CHƯƠNG II: PHƯƠNG PHÁP KIỂM THỬ HIỆU NĂNG CHO SAP 23
2.1 Quy trình kiểm thử hiệu năng trên SAP 23
2.1.1 Load Test – Stress Test – Volume Test 24
2.1.2 Vai trò các thành phần tham gia dự án kiểm thử hiệu năng 25
2.1.3 Mô hình tổng quát 27
2.1.4 Lập kế hoạch 28
2.1.4.1 Phân tích quy trình (Process Analysis) 29
2.1.4.2 Phân tích dữ liệu (Data Analysis) 34
Trang 42.1.4.3 Lựa chọn công cụ kiểm thử tải (Tool Selection) 35
2.1.4.4 Hồ sơ tải (Load Profile) 36
2.1.5 Thực hiện kiểm thử tải (Load Test) 36
2.1.5.1 Chuẩn bị dữ liệu và hệ thống 37
2.1.5.2 Kiểm thử đơn người dùng (Single-user) 38
2.1.5.3 Kiểm thử đa người dùng (Multi-user) 39
2.1.5.4 Phân tích kết quả 40
2.1.5.5 Tối ưu hóa (Optimation) 40
2.1.6 Thực hiện kiểm thử tính ổn định (Stress Test) 41
2.1.7 Hoàn thành 42
2.1.7.1 Báo cáo tóm tắt 42
2.1.7.2 Kế hoạch thực hiện 43
2.1.7.3 Mô tả cấu trúc kiểm thử 43
2.1.7.4 Mô tả các mục tiêu kiểm thử 44
2.1.7.5 Tài liệu các kiểm thử được thực hiện 44
2.1.7.6 Bài học thu được 44
2.1.8 Tóm tắt 44
2.2 Áp dụng quy trình kiểm thử hiệu năng SAP bằng HP LoadRunner 46
2.2.1 Đặc điểm 46
2.2.2 Các bước thực hiện 47
1 Ghi nhận (Recording): 47
2 Phát lại (Replay): 48
3 Nâng cao (Enhancements): 48
4 Chuẩn bị thực thi (Prepare For Load): 48
Trang 55 Kết thúc (Finish): 49
2.3 Theo dõi, giám sát quá trình kiểm thử hiệu năng 49
2.3.1 Địa phương hóa tắc nghẽn hiệu năng 51
2.3.2 Các giao dịch phục vụ kỹ thuật giám sát 55
2.3.2.1 AL08 – Danh sách các người dùng đang đăng nhập 55
2.3.2.2 SM04 – Danh sách người dùng 56
2.3.2.3 SM21 – System Log 56
2.3.2.4 SM66 – Tổng quan quy trình làm việc toàn cục 57
2.3.2.5 STAD – Phân tích giao dịch (Transaction Analysis) 58
2.3.2.6 ST02 – Tổng quan về bộ đệm của SAP (SAP Buffer) 59
2.3.2.7 ST03N – Phân tích khối lượng công việc 60
2.3.2.8 ST04 – Tổng quan cơ sở dữ liệu (Database Overview) 62
2.3.2.9 ST05 – Phân tích vết SQL (SQL Trace) 62
2.3.2.10 ST06 – Giám sát hệ điều hành 63
2.3.2.11 ST22 – Lỗi thời gian chạy ABAP 64
2.4 Kết luận 65
CHƯƠNG III: ÁP DỤNG THỬ NGHIỆM PHƯƠNG PHÁP KIỂM THỬ HIỆU NĂNG TRÊN CÁC ỨNG DỤNG TẠI CÔNG TY VICOSTONE 66
3.1 Các ứng dụng hiện tại đang sử dụng tại VICOSTONE 66
3.1.1 Giới thiệu Công ty VICOSTONE 66
3.1.2 Hệ thống các ứng dụng của SAP 67
3.2 Đề xuất áp dụng công cụ kiểm thử hiệu năng HP LoadRunner cho hệ thống SAP 70
3.2.1 Hiện trạng hiện tại 70
Trang 63.2.2 Đề xuất quy trình kiểm thử hiệu năng và áp dụng cho hệ thống SAP 71
3.3 Ứng dụng quy trình kiểm thử hiệu năng 73
3.3.1 Lập kế hoạch 73
3.3.1.1 Các bước thực thi nghiệp vụ: 74
3.3.1.2 Môi trường kiểm thử 75
3.3.1.3 Công cụ kiểm thử: 77
3.3.2 Tạo kịch bản kiểm thử hiệu năng 78
3.3.2.1 Thay đổi cài đặt trên máy chủ SAP 78
3.3.2.2 Thay đổi cài đặt trên máy client 79
3.3.3 Thực hiện kiểm thử hiệu năng 80
3.3.4 Phân tích và đánh giá kết quả 81
3.3.4.1 Tóm tắt phân tích 81
3.3.4.2 Trạng thái thực hiện của các giao dịch 82
3.3.4.3 Hiệu năng của các giao dịch 83
3.3.4.4 Trung bình thời gian trả lời của mỗi giao dịch 84
3.3.4.5 Tài nguyên UNIX 86
3.4 Kết luận 86
KẾT LUẬN VÀ KIẾN NGHỊ 88
TÀI LIỆU THAM KHẢO 90
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả
Nguyễn Khánh Duy
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
(Systems Applications Products in Data Processing)
(Enterprise resource planning)
(International Organization for Standardization)
API :
Giao diện lập trình ứng dụng (Application Programming Interface)
(International Electrotechnical Commission)
(Graphical User Interface)
(Average Response Time)
Min : Tối thiểu (Minimum)
Avg : Trung bình (Average)
Max : Tối đa (Maximum)
SD : Tiêu chuẩn (Standard)
CNTT : Công nghệ thông tin
Trang 9SRM : Supplier Relationship Management
PLM : Product Lifecycle Management
SCM : Supply Chain Management
DANH MỤC BẢNG
Bảng 1 1 Sự khác nhau giữa kiểm thử chức năng và kiểm thử hiệu năng 14
Bảng 2 1 Các thành phần của LoadRunner 47
Bảng 2 2 Danh sách các giao dịch giám sát và phân tích 50
Bảng 2 3 Ma trận quyết định kết quả phân tích máy chủ cơ sở dữ liệu 53
Bảng 2 4 Ma trận quyết định kết quả phân tích máy chủ ứng dụng 54
Bảng 2 5 Các yêu cầu của bộ đệm SAP 60
Bảng 2 6 Các yêu cầu phân tích tải 61
Bảng 2 7 Các yêu cầu cơ sở dữ liệu 62
Bảng 3 1 Danh sách các phân hệ được của SAP được triển khai tại VICOSTONE 67
Bảng 3 2 Đề xuất quy trình kiểm thử hiệu năng 72
Bảng 3 3 Danh sách các giao dịch được thực hiện kiểm thử 74
Bảng 3 4 Các bước thực thi nghiệp vụ 74
Bảng 3 5 Danh sách các script kiểm thử được thực hiện 78
Bảng 3 6 Thời gian phản hồi trung bình 82
Bảng 3 7 Diễn giải Hình 3 9 83
Bảng 3 8 Diễn giải Hình 3 10 84
Bảng 3 9 Diễn giải Hình 3 11 85
Bảng 3 10 Diễn giải Hình 3 12 86
Trang 10DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 1 1 Các nhà cung cấp giải pháp ERP trên thế giới 10
Hình 1 2 Bottom-Up Model của sự tích hợp các giai đoạn trong phương thức thực hiện của dự án SAP 19
Hình 2 1 Các bước thực hiện dự án kiểm thử hiệu năng 28
Hình 2 2 Các bước thực hiện của Lập kế hoạch (Planning) 29
Hình 2 3 Các bước thực hiện kiểm thử tải 37
Hình 2 4 Mô hình client - server 51
Hình 2 5 Danh sách hoạt động người dùng đang đăng nhập 56
Hình 2 6 Danh sách người dùng đang đăng nhập 56
Hình 2 7 Hiển thị danh sách thông báo trong Syslog 56
Hình 2 8 Cài đặt điều kiện lọc của giao dịch SM21 57
Hình 2 9 Giám sát sử dụng và trạng thái của các xử lý trong SM66 58
Hình 2 10 Giao diện khởi tạo STAD 59
Hình 2 11 Màn hình giao dịch ST05 63
Hình 2 12 Các thông tin được cung cấp bởi ST06 64
Hình 2 13 Màn hình khởi tạo giao dịch ST22 65
Hình 3 1 Mô hình triển khai kiểm thử 73
Hình 3 2 Thông tin ứng dụng SAP 75
Hình 3 3 Thông tin phiên bản cơ sở dữ liệu 76
Hình 3 4 Thông tin máy chủ ứng dụng 76
Hình 3 5 Thông tin SAP GUI 77
Hình 3 6 Cài đặt cấu hình SAP GUI cho tại client 79
Hình 3 7 Cài đặt cấu hình máy chủ SAP cho tài khoản thực hiện kiểm thử 80
Hình 3 8 Cấu hình chạy kiểm thử trên Load Controller 81
Hình 3 9 Tóm tắt thực hiện các giao dịch 83
Hình 3 10 Tóm tắt hiệu năng các giao dịch 84
Hình 3 11 Thời gian đáp ứng trung bình của giao dịch 85
Hình 3 12 Tài nguyên UNIX 86
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Trong những năm gần đây Việt Nam đang mở cửa ra thế giới và nhu cầu bức thiết phải hội nhập với kinh tế toàn cầu Các ứng dụng của Công nghệ thông tin giúp quản trị doanh nghiệp hoạt động hiệu quả hơn, một số ứng dụng thường được triển khai trong doanh nghiệp như:
- Phần mềm hải quan VNACCS
- Phần mềm kế toán (FAST, MISA, …)
- Phần mềm quản lý Nhân sự, chấm công, tiền lương
- Hệ thống Hoạch định nguồn lực doanh nghiệp (ERP)
- Hệ thống Quản lý nhân lực (HRM)
- …
Trong khuôn khổ của luận văn, tác giả nghiên cứu về kiểm thử hiệu năng cho
hệ thống Hoạch định nguồn lực doanh nghiệp (ERP)
Có nhiều Công ty cung cấp các phần mềm cho doanh nghiệp như SAP, Microsoft, Oracle, … Theo [13] số liệu thống kê năm 2013 cho thấy ERP do SAP cung cấp hiện tại được sử dụng nhiều nhất trên thế giới
Trang 12Hình 1 1 Các nhà cung cấp giải pháp ERP trên thế giới
SAP là tập đoàn cung cấp các giải pháp CNTT lớn nhất thế giới, SAP có nhiều giải pháp cho doanh nghiệp như ERP, CRM, SCM, SRM, PLM
Các ứng dụng lõi của SAP ERP bao gồm các thành phần:
Hậu cần (Logistics)
Bán hàng và phân phối (Sales & Distribution)
Quản lý vật tư (Materials Management)
Kế hoạch sản xuất (Production Planning)
Bảo trì nhà máy (Plant Maintenance)
Quản lý chất lượng (Quality Management)
Tài chính (Finance)
Kế toán tài chính (Financial Accounting)
Trang 13Kế toán quản lý (Managerial Accounting)
Quản lý tài sản (Asset Management)
Kho bạc (Treasury)
Quản lý nguồn nhân lực (Human Capital Management)
Quản lý con người (Personnel Management)
Các lợi ích (Benefits)
Tiền lương (Payroll)
SAP ERP đã trở thành công cụ quản lý để điều hành doanh nghiệp Con người là nhân tố chính dẫn tới thành công trong một dự án ERP Đây cũng là nơi xảy ra nhiều rủi ro nhất khi quản trị dự án trong nền kinh tế phát triển nhanh như hiện nay.Việc đảm bảo hệ thống hoạt động ổn định, đáp ứng được nhu cầu sử dụng của người dùng là vấn đề thiết yếu của ứng dụng
2 Mục đích của đề tài
Mục đích nghiên cứu của Luận văn này gồm: nghiên cứu phương pháp kiểm thử hiệu năng một cách tự động cho hệ thống SAP ERP được triển khai tại doanh nghiệp, từ đó đưa ra các giải pháp giúp doanh nghiệp có các biện pháp cải thiện hiệu năng của hệ thống nhằm hạn chế thấp nhất rủi ro khi sử dụng ứng dụng
3 Đối tượng và phạm vi nghiên cứu
- Hệ thống SAP, ngôn ngữ lập trình ABAP
- Kỹ thuật kiểm thử hiệu năng cho SAP ERP
- Đặc tả thiết kế kiểm thử hiệu năng
4 Phương pháp nghiên cứu
- Nghiên cứu, tìm hiểu kỹ thuật lập trình trên hệ thống SAP ERP sử dụng ngôn ngữ lập trình ABAP và quy trình kiểm thử hiệu năng cho dự án SAP ERP
- Sử dụng phương pháp kiểm thử hiệu năng đã nghiên cứu, thiết kế bộ kiểm thử cho các chức năng cụ thể Đưa ra tài liệu kế hoạch, đặc tả và xây dựng chương trình thực thi kiểm thử
Trang 145 Bố cục luận văn
CHƯƠNG I: KIỂM THỬ PHẦN MỀM
CHƯƠNG II: PHƯƠNG PHÁP KIỂM THỬ HIỆU NĂNG CHO SAP
CHƯƠNG III: ÁP DỤNG THỬ NGHIỆM PHƯƠNG PHÁP KIỂM THỬ HIỆU NĂNG TRÊN CÁC ỨNG DỤNG TẠI CÔNG TY VICOSTONE
Trang 15CHƯƠNG I: KIỂM THỬ PHẦN MỀM
1.1 Kiểm thử phần mềm
Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để 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 hoặc dịch vụ đượ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 [1]
Mục tiêu của kiểm thử phần mềm
Mục tiêu của kiểm thử phần mềm là để kiểm tra hoặc nâng cao chất lượng phần mềm nhằm đảm bảo rằng giải pháp đưa ra phù hợp với yêu cầu của khách hàng Các trường hợp và yêu cầu thử nghiệm dựa trên các đặc điểm cơ sở chất lượng đã được quy định Các tiêu chuẩn và định mức, như tiêu chuẩn ISO/IEC
25000 được sử dụng để xác định tiêu chí tương ứng [4] Các tiêu chí dựa trên các đăc điểm sau:
Một trong những câu hỏi quan trọng được đưa ra trong bối cảnh kiểm thử
phần mềm là “liệu các thử nghiệm thực thi có chạy đúng như yêu cầu?”
Trang 16 Kiểm thử chức năng
Kiểm thử chức năng tập trung kiểm tra chức năng của ứng dụng đó có hoạt động đúng như khách hàng mong đợi không? Khi thực hiện kiểm tra dựa vào các tài liệu yêu cầu hoặc tài liệu mô tả chi tiết để kiểm tra
Kiểm thử hiệu năng
Kiểm thử hiệu năng được thực hiện để xác định hệ thống thực hiện một khối lượng công việc cụ thể nhanh thế nào Kiểm thử hiệu năng có thể dùng để xác nhận
và xác minh những thuộc tính chất lượng khác của hệ thống như khả năng mở rộng,
độ tin cậy và sử dụng tài nguyên [10]
Kiểm thử hiệu năng được thực hiện trong quá trình thực hiện dự án, là một trong những phần kiểm tra quan trong nhất trong kiểm thử kỹ thuật của hệ thống
mềm
Kiểm thử chức
năng
Kiểm thử hiệu năng Trả về kết quả trong thời gian dự kiến Tính hiệu quả
Bảng 1 1 Sự khác nhau giữa kiểm thử chức năng và kiểm thử hiệu năng
Trong Bảng 1.1 chúng ta thấy có hai loại kiểm thử khác nhau ở các khía cạnh
lý thuyết của chính nó, các yêu cầu kiểm thử khác nhau cũng ảnh hưởng đến các khía cạnh thực tế của các phần kiểm thử Các thủ tục, phương pháp, và các công cụ được sử dụng để kiểm thử hiệu năng khác so với kiểm thử chức năng Trong phạm
vi của luận văn tôi sẽ nói chủ yếu về kiểm thử hiệu năng
1.2 Kiểm thử hiệu năng phần mềm
Khái niệm kiểm thử hiệu năng
Trang 17Có nhiều định nghĩa về kiểm thử hiệu năng Theo [12], kiểm thử hiệu năng là hành động kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó
Tầm quan trọng của kiểm thử hiệu năng
Kiểm thử hiệu năng là hoạt động cần thiết cho việc phát triển những giải pháp tối ưu hóa hiệu năng cho phần mềm Kiểm thử hiệu năng giúp chúng ta tránh được các trường hợp không lường trước được khi triển khai ứng dụng trong môi trường thực tế
Các thuật ngữ trong kiểm thử hiệu năng
Theo [11], một số thuật ngữ hay được sử dụng trong kiểm thử hiệu năng:
Thời gian nghĩ (think time): là khoảng thời gian người sử dụng nắm bắt nội
dung của ứng dụng (web hoặc application) hoặc là thời gian người dùng thực hiện hành động tương tác với hệ thống như nhấp vào một đường dẫn, nút, gọi hoặc thực hiện một giao dịch, v.v…
Tải người sử dụng đồng thời (simultaneous user load): là tải nhiều người
đồng thời cùng sử dụng ứng dụng, tại cùng một thời điểm bất kỳ mỗi người thực hiện một tương tác khác nhau
Tải người dùng sử dụng đồng thời thực hiện một hành động (concurrent
user load): là tải nhiều người đồng thời cùng một thời điểm bất kỳ mỗi người thực hiện một tương tác khác nhau
Yêu cầu/mục đích hiệu năng (performance requirements/goals): là định
lượng đưa ra tiêu chí cho rằng hiệu năng của hệ thống là tốt Yêu cầu hiệu năng của một ứng dụng được thể hiện trong thời gian phản hồi, số lượt truy cập của hệ thống
là tốt Yêu cầu hiệu năng của một ứng dụng được thể hiện trong thời gian phản hồi,
số lượt truy cập trong 1 giây (hits), số giao dịch được thực hiện torng 1 giây, v.v…
Trang 18Tải công việc (workload): là tải người sử dụng hệ thống trong thời gian thực
khi người sử dụng đang truy cập hoặc trong khi thực hiện kiểm thử hiệu năng
Hit: là yêu cầu gửi về máy chủ để truy cập vào một trang web hoặc một tập
tin hoặc một ảnh từ máy chủ web hoặc ứng dụng
Thông lượng (throughput): là tổng dữ liệu (bytes) được chuyển từ máy chủ
tới máy khách để phục vụ yêu cầu người dùng
Các loại kiểm thử hiệu năng
Kiểm thử cơ sở (baseline test): là kiểm thử được xây dựng đánh giá hiệu
năng ứng dụng với tải một người sử dụng [11] Kịch bản kiểm thử có thể được tạo
ra với thời gian nghĩ (think time) trong thực tế và những cài đặt khác giống sử dụng trong thời gian thực
Kiểm thử chuẩn (benchmark test): kiểm thử chuẩn là kiểm thử được tiến
hành để đo lường hiệu năng của ứng dụng trong một điều kiện tải thấp Thông thường kiểm thử chuẩn chiếm 15-20% mức tải mục tiêu [11]
Kiểm thử tải (load test): được thực hiện xác định hiệu năng hệ thống với
điều kiện tải nhiều người sử dụng đồng hệ thống như trong thực tế Nó được xây dựng với mục đích tìm ra hiệu năng hệ thống trong điều kiện tải xác định [11]
Kiểm thử áp lực (stress test): là kiểm thử được tiến hành bằng cách kiểm
thử hệ thống trong điều kiện tải bất hợp lý để xác định điểm dừng (breakpoint) của
hệ thống [11]
Kiểm thử Spike (Spike test): kiểm thử này rất giống kiểm thử áp lực (stress
test) nhưng hệ thống được đặt trong một thời gian ngắn [11] Kiểm thử giúp xác nhận hiệu năng hệ thống trong điều kiện tải cao đột ngột trong giờ giao dịch cao điểm của ứng dụng
Trang 19Kiểm thử chịu đựng (endurance test): kiểm thử này tập trung vào đánh giá
hiệu năng của hệ thống với mức tải sử dụng được định mức trong khoảng thời gian kéo dài Kiểm thử chịu đựng chạy với 70-80% của tại mục tiêu, trong kịch bản có cài đặt thời gian giống như trong thực tế
Kiểm thử cô lập (isolation test): là kiểm thử được thực hiện trên hệ thống
hoặc một thành phần cụ thể để tìm ra các vấn đề và nguyên nhân ảnh hưởng đến hiệu năng của hệ thống [11]
Kiểm thử khối lượng (volume test): là kiểm thử hiệu năng cho hệ thống khi
nó phải thao tác với một lượng dữ liệu nhất định Số lượng này có thể là kích thước bản ghi dữ liệu hoặc nó cũng có thể là kích thước của một tập tin
Công cụ kiểm thử hiệu năng
Có rất nhiều phần mềm kiểm thử hiệu năng trên thị trường Nó có thể được chia thành hai loại chính: phần mềm mã nguồn mở và phần mềm có bản quyền Trong khuôn khổ luận văn, tôi xin nói qua một số phần mềm như sau:
Phần mềm mã nguồn mở:
JMeter: là một công cụ chuyên dùng để kiểm tra hiệu năng của các ứng
dụng web, được viết bằng Java, JMeter có thể hoạt động trên các hệ điều hành có hỗ trợ JVM (Java Virtual Machine) phiên bản 1.4 trở lên JMeter không đòi hỏi kiến thức lập trình chuyên sâu để sử dụng Hiện nay ứng dụng này đã được cải tiến để có thể đo lường hiệu năng hoạt động của các đối tưởng và các giao thức như: HTTP, HTTPS, SOAP, JDBC, LDAP, JMS, POP3, …
Selenium: (http://seleniumhp.org) Selenium gồm một bộ các công cụ hỗ trợ kiểm tra tự động tính năng của ứng dụng web, bao gồm: Selenium IDE, Selenium Remote Control (RC), Selenium Core và Selenium Grid Bộ công cụ này hoạt động tốt trên nhiều hệ điều hành và có thể thực hiện kiểm tra trực tiếp trên các trình duyệt web khác nhau
Trang 20Phần mềm có bản quyền:
IBM Rational ® Perfomance Tester: là một công cụ tạo ra, thực hiện và
phân tích các phép kiểm thử hiệu năng Nó giúp các đội phát triển kiểm tra và xác nhận khả năng mở rộng và độ tin cậy của các ứng dụng trên nền Web của họ trước khi triển khai Các kết quả tương tác của ta được lưu lại trên hệ điều hành mà ta chọn (Windows hoặc Linux) Ta có thể mở rộng Bộ kiểm thử hiệu năng để kiểm thử hiệu năng của các ứng dụng như Siebel, SAP, và Citrix
HP LoadRunner: Mercury LoadRunner là công cụ Kiểm thử tự động thực
hiện việc kiểm tra hiệu năng của phần mềm Nó cho phép chúng ta tìm ra những lỗi
về khả năng thực thi bằng việc phát hiện ta nguyên nhân, chỗ làm cho phần mềm chạy chậm hoặc không đúng yêu cầu Đây là công cụ mạnh với giải pháp kiểm tra tải, phát hiện và đưa ra giải pháp cải tiến Ứng dụng LoadRunner sẽ giúp giảm thời gian viết kịch bản kiểm thử (test script) đến 80%, đó là nhờ nó cung cấp chức năng
tự động phát sinh kịch bản (script) mô tả lại các tình huống muốn kiểm tra
Trong khuôn khổ của luận văn, tôi lựa chọn công cụ HP LoadRunner để thực hiện việc kiểm thử tự động cho hệ thống SAP
1.3 Mô hình kiểm thử cho dự án SAP
Chiến lược từ dưới lên trên (bottom-up strategy) Không có ngoại lệ cho kiểm tra chức năng trong môi trường SAP Như vậy sự tích hợp kiểm thử dựa trên phân loại không chỉ là dựa trên lý thuyết nó cũng có thể được áp dụng cho các giai đoạn của dự án Mô tả các giai đoạn thử nghiệm khác với mô tả của một mô hình quy trình Các giai đoạn riêng đơn thuần là mô tả bản chất của việc thử nghiệm để kiểm thử các trường hợp tương ứng với mỗi giai đoạn cụ thể của dự án Quá trình thực hiện một dự án thực hiện với những giai đoạn thử nghiệm và các mô tả của các quá trình thử nghiệm [10]
Kiểm thử phát triển (Developer Test)
Trang 21Các kiểm thử đầu tiên được thực hiện là kiểm thử phát triển Các cuộc kiểm thử được thực hiện bởi nhà phát triển Kiểm thử phát triển được thực hiện ở cấp độ
kỹ thuật thấp nhất và có thể bao gồm một loạt các hoạt động thử nghiệm, chẳng hạn như kiểm tra khả năng thực thi, kết quả tạm thời giữa các mã, thử nghiệm module chức năng cá nhân hoặc các giao dịch được thực hiện Trong phương pháp kiểm thử phát triển của dự án SAP thường được coi như một phần của hoạt động phát triển
Kiểm thử quy hồi
Kiểm thử chuẩn bị hoạt động chính thức
Triển khai
Triển khai
Hình 1 2 Bottom-Up Model của sự tích hợp các giai đoạn trong phương thức thực
hiện của dự án SAP
Kiểm thử đơn vị (Unit Test)
Kiểm thử đơn vị còn được hiểu là kiểm thử module, thường đại diện cho mức thấp nhất của kiểm thử chức năng trong môi trường SAP Một kiểm thử đơn vị kiểm tra một giao dịch (transaction) hoặc module chức năng riêng Nó tập trung chủ yếu vào chức năng thực hiện chứ không phải là giao diện và tích hợp [10]
Trang 22 Kiểm thử kịch bản (Scenario test)
Kiểm thử kịch bản thử nghiệm một số giao dịch liên quan Mục đích của kiểm thử này là kiểm tra các giao dịch được thực hiện trong quy trình hoạt động kinh doanh trong nhiều lĩnh vực Kịch bản kiểm tra tập trung vào sự tương tác giữa các giao dịch cá nhân và giao diện của họ, có thể lặp đi lặp lại để tổng hợp được kịch bản lớn cuối cùng từ các kịch bản nhỏ Dựa trên kinh nghiệm của các chuyên gia, kiểm thử kịch bản thường chạy như một phần mở rộng của kiểm thử đơn vị trong dự án SAP [10]
Kiểm thử tích hợp (Integration test)
Kiểm thử tích hợp đại diện cho bước cuối cùng trong việc đảm bảo tính chính xác của chức năng Nó kiểm tra sự tích hợp các giải pháp SAP với các ứng dụng phi-SAP (non-SAP) và giao diện hệ thống Quy trình nghiệp vụ của doanh nghiệp được ánh xạ trong các kịch bản end-to-end, phần mềm được kiểm thử theo các kịch bản chéo module (cross-module) và hệ thống (cross-system) [10]
Kiểm thử kỹ thuật hệ thống (Technical System test)
Kiểm thử hệ thống được biết đến trong môi trường SAP là kiểm tra hệ thống
kỹ thuật, bao gồm nhiều thành phần, ví dụ như cơ sở hạ tầng, dưới sự kiểm tra của quá trình kiểm thử thay vì chú ý vào chức năng của phần mềm kiểm thử kỹ thuật hệ thống kiểm tra toàn bộ hệ thống bao gồm các cơ sở dữ liệu, máy chủ ứng dụng, mạng, máy in, … [10]
Kiểm thử hiệu năng (Performance tests)
Kiểm thử hiệu năng là một trong những bước quan trọng nhất của kiểm thử
kỹ thuật hệ thống, là các biện pháp đo lường thời gian đáp ứng của hệ thống Kiểm thử hiệu năng rất quan trọng bổ sung thời gian kiểm thử chức năng đáp ứng nhiều giao dịch hoạt động kinh doanh Các ứng dụng được thử nghiệm phải có chức năng chính xác trước khi có thể thực hiện kiểm thử hiệu năng [10]
Trang 23 Kiểm thử người dùng chấp nhận (User Acceptance test)
Ngoài thời gian đáp ứng, một yếu tố rất quan trọng được bao gồm trong kiểm thử trước khi hệ thống đi vào hoạt động chính thức (GO-LIVE) là sự chấp nhận của người sử dụng trước giải pháp được cung cấp Kiểm thử chấp nhận của người dùng không thể tự thực hiện tự động, giống như kiểm thử tích hợp đòi hỏi nhiều thời gian
và công sức thực hiện Mục tiêu chính của kiểm thử người dùng chấp nhận là để phát hiện các vấn đề sử dụng, chủ yếu là trong các phần thiết kế giao diện và thời gian hệ thống đáp ứng [10]
Kiểm thử qui hồi (Regression Test)
Mục đích của kiểm thử quy hồi là để đảm bảo rằng không có ảnh hưởng của việc không có kế hoạch được đưa ra hoặc đột xuất về các chức năng và quy trình kinh doanh bị ánh xạ theo khi có thay đổi liên quan đến kỹ thuật Trong môi trường SAP, kiểm tra quy hồi thường được yêu cầu sau khi thay đổi định hướng CNTT [10]
Kiểm tra quy hồi cũng được yêu cầu sau khi định hướng kinh doanh thay đổi, chẳng hạn như thay đổi mô hình của quy trình kinh doanh trong hệ thống hoặc thay đổi từ các thiết lập tùy biến Một kiểm thử quy hồi không đại diện cho một cấp độ cao hơn của sự tích hợp Trong thực tế, loại kiểm thử này thường được giới hạn trong một sự lặp lại của kiểm thử tích hợp, dựa trên các mẫu hoặc trên phạm vi đầy
đủ của kiểm thử
1.4 Kết luận
Trong chương này, ta đi vào tìm hiểu để có cái nhìn tổng quan về kiểm thử phần mềm, phân loại kiểm thử dựa vào các yếu tố: các dạng kiểm thử, kỹ thuật kiểm thử và mô hình kiểm thử cho dự án SAP
- Các dạng kiểm thử ta chia thành kiểm thử chức năng và kiểm thử hiệu năng
Trang 24- Dựa vào kỹ thuật kiểm thử ta có thể chia thành hai loại: kiểm thử hộp đen và kiểm thử hộp trắng
- Mô hình kiểm thử cho dự án SAP gồm các giai đoạn:
o Kiểm thử quy hồi
Chương II sẽ đi tìm hiểu khái quát về quy trình kiểm thử hiệu năng trên SAP,
sử dụng công cụ kiểm thử hiệu năng LoadRunner và các giao dịch SAP chuẩn dùng
để giám sát, phân tích kiểm thử
Trang 25CHƯƠNG II: PHƯƠNG PHÁP KIỂM THỬ HIỆU NĂNG CHO SAP
2.1 Quy trình kiểm thử hiệu năng trên SAP
Kiểm thử hiệu năng thường dùng để nói về một thử nghiệm để kiểm tra các yêu cầu phi kỹ thuật của một hệ thống cả trong hoạt động của đơn người dùng và đa người dùng [10] Tùy thuộc vào mục đích của thử nghiệm, ta cần phân biệt sự khác nhau giữa các cá thể
Mục đích của phép đo đơn người dùng là có được một "trường hợp tốt nhất"
về hiệu năng của hệ thống, nó có thể được giả định rằng thời gian đáp ứng trong hoạt động đa người dùng song song không bao giờ có thể tốt hơn so với đơn người
dùng Nếu các thực thi của hệ thống quan sát được là "quá kém" có nghĩa là nó
không đáp ứng được các tiêu chí xác định hiệu suất chính, hệ thống phải được tối
ưu hóa trước khi thực hiện kiểm tra tải hay thường được gọi là kiểm thử sức chịu đựng (độ bền)
Mục đích của kiểm tra sức chịu đựng là mô phỏng các điều kiện hoạt động thực tế Trong mục này, một bài kiểm tra sức chịu đựng khác so với một bài kiểm tra (độ) tính tin cậy Trong phần này, hệ thống được đặt dưới một tải, nhưng điều này thực hiện là để có vượt quá điều kiện hoạt động thực tế và theo cách này xác định các giới hạn của hệ thống
Nếu trọng tâm của kiểm tra hiệu năng là xử lý một lượng lớn dữ liệu điều đó
có nghĩa là việc xử lý này được gọi là kiểm thử khối lượng
Mục đích của kiểm thử
Các mục đích kiểm thử của kiểm thử hiệu năng có thể được bắt nguồn trực tiếp từ những vấn đề sau [10]:
- Tính sẵn sàng của hệ thống dưới tải
- Tính ổn định của chức năng dưới tải
- Thời gian đáp ứng có thể chấp nhận cho người sử dụng
Trang 26- Tuân thủ các hạn chế thời gian và mức độ dịch vụ cho các quy trình kinh doanh
- Xác định các vấn đề trong cả cơ sở hạ tầng và ứng dụng
2.1.1 Load Test – Stress Test – Volume Test
Kiểm thử tải – Load Test
Kiểm thử tải là một quá trình thêm nhu cầu vào một hệ thống hoặc thiết bị và
đo lường phản ứng của nó Kiểm thử tải được thực hiện để xác định sự đáp ứng của
hệ thống trong các điều kiện tải bình thường và cao hơn điều kiện tải dự kiến Nó
giúp xác định công suất vận hành tối đa của một ứng dụng như các điểm “thắt cổ
chai” (bottleneck) và xác định phần tử nào là nguyên nhân gây ra điều đó Khi mức
tải trên hệ thống vượt ra ngoài những cách thức sử dụng bình thường, để kiểm tra sự đáp ứng của hệ thống ở những điểm cao bất thường hoặc điểm tải cao – thì được gọi
là stress testing Phần lớn mức tải thường là các điều kiện lỗi và kết quả mong đợi
từ các điều kiện này, không tồn tại một ranh giới rõ ràng khi một hành động này chuyển dần từ load test trở thành stress test
Kiểm thử tính ổn định – Stress Test
Kiểm thử tính ổn định là một 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 hoặc một thực thể được đưa ra Nó liên quan đến những kiểm thử vượt quá khả năng bình thường của hệ thống, thường để xác định điểm quá tải, để quan sát các kết quả Kiểm thử tính ổn định có thể có nghĩa cụ thể hơn trong một số ngành công nghiệp nhất định, như là kiểm thử tính mỏi của vật liệu
Kiểm thử khối lượng – Volume Test
Kiểm thử khối lượng thuộc về nhóm kiểm thử phi chức năng, nó thường bị hiểu nhầm hoặc dùng thay thế cho loại kiểm thử khác Kiểm thử khối lượng đề cập tới việc kiểm thử phần mềm, ứng dụng với một lượng dữ liệu nhất định Số lượng
Trang 27này có thể là kích thước cơ sở dữ liệu hoặc nó cũng có thể là kích thước của 1 tập tin giao tiếp là đối tượng của volume testing Ví dụ, nếu bạn muốn thực hiện kiểm thử khối lượng cho ứng dụng của bạn với kích thước dữ liệu cụ thể, bạn sẽ mở rộng
dữ liệu của bạn tới một kích thước này rồi thực hiện kiểm thử hiệu năng của ứng dụng trên dữ liệu đó Một ví dụ khác là khi có những yêu cầu ứng dụng của bạn tương tác với một tệp tin giao tiếp (có thể bất cứ file nào như là dat, xml) những tương tác này có thể là đọc và/hoặc ghi trên file Bạn sẽ tạo một file mẫu có kích thước bạn muốn và sau đó kiểm thử chức năng của ứng dụng với file đó kiểm thử hiệu năng
2.1.2 Vai trò các thành phần tham gia dự án kiểm thử hiệu năng
Một khía cạnh quan trọng của việc lập kế hoạch và thực hiện một dự án kiểm thử hiệu năng là xác định và phân công vai trò của các thành phần tham gia Cần lưu ý rằng các đặc điểm thực tế của từng vai trò phụ thuộc vào từng dự án tương ứng Tùy thuộc vào cấu trúc và số lượng người tham gia trong dự án, một vai trò có thể được giao cho một người hoặc một nhóm người Trong các dự án nhỏ, một người có thể được chỉ định nhiều vai trò
Có một số vai trò tiêu chuẩn được đưa ra trong mỗi dự án kiểm thử hiệu năng, có thể giao cho khách hàng hoặc những người bên ngoài Sau đây là các vai trò tiêu chuẩn [10]:
Khách hàng
Khách hàng phải đồng ý các bước thực hiện của dự án Những bước này bao gồm các định nghĩa của các mục tiêu kiểm thử, kế hoạch thực hiện dự án và kết quả kiểm thử Khách hàng chủ yếu làm việc với người đứng đầu nhóm kiểm thử
Người đứng đầu nhóm kiểm thử
Người đứng đầu nhóm kiểm thử có trách nhiệm điều phối, thực hiện kiểm thử và có trách nhiệm quản lý dự án kiểm thử hiệu năng Người này phối hợp và
Trang 28kiểm soát từng bước dự án Thông thường, người đứng đầu xác định các mục tiêu, tiêu chí kiểm thử và phối hợp với người dùng hoặc người vận hành hệ thống, thiết
kế các yêu cầu của dự án, tạo các báo cáo
Vai trò này có thể được giao cho một nhân viên nội bộ hay bên ngoài
Nhà phát triển kịch bản
Công việc của các nhà phát triển kịch bản bao gồm việc thực thi các thông số
kỹ thuật từ các phân tích kỹ thuật tải và liên kết hồ sơ tải đã được xác định theo cách này bằng cách thực tế nhất, có thể sử dụng các công cụ kiểm tra hiệu năng để thực hiện Để đạt mục đích này, họ ghi lại kịch bản kiểm thử theo các thông số kỹ thuật quy định trong các bản mô tả kiểm thử Trách nhiệm của các nhà phát triển kịch bản bao gồm đưa ra các tham số, thành phần của kịch bản vào kịch bản thử nghiệm Nhà phát triển kịch bản cũng tích hợp việc giám sát ứng dụng vào điều khiển thực hiện của các công cụ kiểm thử tải
Công việc của một nhà phát triển kịch bản chủ yếu đòi hỏi sự hiểu biết các công nghệ liên quan đến các công cụ thực hiện Vì lý do này, vai trò của một nhà phát triển kịch bản thường được giao cho các chuyên gia bên ngoài
Người sử dụng chính (Key user)
Người sử dụng chính chủ yếu chịu trách nhiệm chuyển các yêu cầu kinh doanh từ các bộ phận sử dụng tới các nhóm dự án Họ chủ yếu chịu trách nhiệm tạo
ra các hồ sơ sử dụng, phân tích quy trình, xác định và thu thập dữ liệu các thử nghiệm cần thiết
Người sử dụng chính là người có kinh nghiệm như nhân viên công ty từ các
bộ phận sử dụng ở phía khách hàng hoặc nhà tư vấn có kiến thức tương ứng với doanh nghiệp
SAP Basis
Trang 29Các thành viên của SAP Basis có trách nhiệm cung cấp và hỗ trợ kỹ thuật cho dự án Họ cung cấp hệ thống thích hợp để kiểm thử, các tài khoản người dùng, phân quyền và chuẩn bị môi trường cho việc tích hợp và sử dụng các công cụ kiểm thử tải vào hệ thống Họ sẽ trở nên rất cần thiết nếu thay đổi hệ thống kiểm thử trong quá trình kiểm thử dự án Các SAP Basis kiểm tra tính khả thi của những thay đổi, nếu có thể họ thực hiện các thay đổi đấy
- Thực hiện kiểm thử tải (Performing Load Test)
- Thực hiện kiểm thử tính ổn định (lựa chọn) (Performing Stress Test)
- Hoàn thiện
Trang 30Lập kế hoạch Thực hiện
kiểm thử tải
Thực hiện kiểm thử tính ổn định
Thực hiện kiểm thử tải (Performing Load Test)
Thực hiện kiểm thử tải bao gồm việc cung cấp dữ liệu và hệ thống cũng như việc chạy thử nghiệm với tải của hệ thống khác nhau Phân tích các kết quả kiểm thử, nếu cần thiết thì thực hiện tối ưu hóa Điều này có nghĩa là ta cần thực hiện quy
trình: “thực hiện -> phân tích -> tối ưu hóa” nhiều lần
Thực hiện kiểm thử tính ổn định (Performing Stress Test)
Việc kiểm thử tính ổn định này là tùy chọn, có thể thực hiện hoặc không thực hiện, kiểm thử tính ổn định có thể được thực hiện sau khi kiểm thử tải Các bài kiểm thử này được sử dụng để đo hệ thống và có được thông tin dữ liệu của hệ thống ở các mức ranh giới
2.1.4 Lập kế hoạch
Trang 31Bước đầu tiên của dự án kiểm thử hiệu năng bao gồm: phân tích quy trình, phân tích dữ liệu và lựa chọn các công cụ kiểm thử tải Các hoạt động này có thể thực hiện song song Trong mọi trường hợp, ta nên thực hiện quá trình phân tích đầu tiên bởi vì kết quả của nó được sử dụng để lấy thông tin giúp việc phân tích dữ liệu và lựa chọn công cụ một cách chính xác
Phân tích quy trình
T Phân tích dữ liệu Lựa chọn công cụ
Hình 2 2 Các bước thực hiện của Lập kế hoạch (Planning)
2.1.4.1 Phân tích quy trình (Process Analysis)
Trong quá trình phân tích quy trình, phải xác định và ưu tiên các quy trình quan trọng của doanh nghiệp Sau đó, phải xác định mục tiêu hiệu năng cho mỗi quá trình có liên quan hoặc từng bước của quy trình [10] Ví dụ: kết quả của hiệu năng cho các giao dịch là thời gian đáp ứng trung bình cho người dùng cuối Đối với các xử lý chạy ngầm, cần xác định một mức nhỏ nhất và thông lượng trung bình Nếu cần thiết phải có thời gian xử lý cụ thể
Phương pháp thô sơ
Theo quy tắc ngón tay cái, ta có thể nói rằng một bài kiểm thử tải không nên nhiều hơn 10 quy trình Điều này có nghĩa là năm quy trình thường xuyên được sử
Trang 32dụng nên được thử nghiệm đầu tiên bởi vì nó có ảnh hưởng lớn nhất về lượng tải được tạo ra Trong bối cảnh này, ta cũng nên đưa vào các báo cáo về tài khoản đó
để biết được mức độ ảnh hưởng lớn đến hiệu suất tổng thể, khối lượng dữ liệu được
kỳ vọng có thể thực hiện, ngay cả khi các báo cáo này ít khi được sử dụng
Ngoài năm quy trình thường xuyên được sử dụng nhất, ta cũng nên đánh giá các quy trình còn lại nhằm đảm bảo hiệu suất của chúng
Các yếu tố ảnh hưởng tới hồ sơ tải
Số lượng người dùng hoạt động đồng thời có ảnh hưởng rõ ràng nhất, sự phân bố theo thời gian tải cũng có ảnh hưởng lớn đến hành vi thời gian chạy của các giao dịch Tương tự vậy, quá trình chạy ngầm cũng ảnh hưởng đến hành vi của hệ thống và do đó cũng nên được xem xét
Điều quan trọng chúng ta phải phân biệt được giữa tải được gây ra bởi người
sử dụng và tải gây ra bởi quá trình chạy ngầm Trên hệ thống chủ yếu bao gồm hai
loại tải này Phân biệt được hai loại tải này rất có ích cho việc giả định rằng hai loại tải này xảy ra vào các thời điểm khác nhau Người sử dụng chủ yếu làm việc trong giờ làm việc 08:00 – 18:00 trong khi quá trình ngầm thường chạy bên ngoài khoảng thời gian đấy (22:00 – 06:00) Nếu có một sự khác biệt rõ ràng như vậy tồn tại, ta có thể xem xét từng loại tải một cách riêng biệt Ưu điểm của việc này là hồ sơ tải được đơn giản hóa, đỡ phức tạp hơn
Tuy nhiên, có những yếu tố khó khăn để tách các loại tải này riêng Nếu một
hệ thống sử dụng các múi giờ khác nhau, tải trọng sử dụng của người dùng có thể sẽ được phân phối đồng đều hơn và trùng với quá trình chạy ngầm
Hồ sơ tải (Load Profile)
Để phân tích tải hộp thoại, đầu tiên ta phải ước lượng một cách thực tế nhất
có thể khi giao dịch được gọi, mức độ thường xuyên có bao nhiêu người sử dụng trong một thời gian nhất định (thường là một giờ) Khi làm như vậy, ta phải chú ý
Trang 33đến sự biến thiên thời gian của các tải phụ trong quá trình của mỗi giao dịch được xem xét
Hệ thống cũ hiện tại (Legacy system)
Nếu tồn tại một hệ thống đã được sử dụng cho mục đích tương tự trước khi triển khai ứng dụng SAP, ta có thể sử dụng các số liệu thống kê từ hệ thống đó như
là một cơ sở cho việc phân tích tải Điều này có thể được thực hiện mà không có vấn đề nếu hệ thống cũ là hệ thống SAP Nếu hệ thống là một hệ thống của bên thứ
ba, ta phải kiểm tra xem dữ liệu có thể được đọc và chuyển sang hệ thống mới mà không có vấn đề gì phát sinh không Tính sẵn có của hệ thống cũ giúp đưa ra các kịch bản lý tưởng để tạo hồ sơ tải Nó làm cho việc thực hiện ước tính dễ dàng hơn bởi vì ta có thể căn cứ vào số liệu tính toán thực sự của Công ty
Ước tính (Estimate)
Nếu không có hệ thống cũ để so sánh, ta phải thực hiện các ước tính dựa trên môt hình tổ chức Sau đây là những bước quan trọng nhất liên quan đến quá trình này:
- Xác định các quy trình cốt lõi: những giao dịch này được sử dụng thường xuyên nhất, và mức độ sử dụng như thế nào
- Phân công nhóm người sử dụng các ứng dụng Ai sẽ là người sử dụng ứng dụng (Ví dụ: phân hệ Bán hàng, Quản lý vật tư, Kế toán, …) vào những thời gian nào, sử dụng bao nhiêu lâu?
- Hoàn thiện các nhóm người sử dụng Ai sẽ là người thực hiện chức năng nào, mức độ ra sao (Ví dụ: người nhập hóa đơn, người phê duyệt hóa đơn, …)? Quá trình này là rất quan trọng bởi các hoạt động khác nhau được đồng bộ với nhau một cách cẩn thận
Tải trọng tối đa (Peak load)
Trang 34Một trong những phương pháp điển hình để xác định tải trọng tối đa là thực hiện đồng thời nhiều tải trọng khác nhau Ví dụ: một bộ phận người sử dụng có thể cung cấp thông tin cho thấy số lượng dữ liệu đưa lên chủ yếu vào thứ Sáu, vào cuối quý, và trước khi nghỉ lễ Thông tin này cho phép ta xác định tải trọng tối đa dựa trên sự chồng chéo của các tải (Thứ sáu kết thúc quý, thứ hai tiếp theo là ngày lễ) Trong một số trường hợp các yếu tố có ảnh hưởng rất khác nhau được cụ thể cho các ngành công nghiệp hoặc công ty bởi các câu hỏi và chỉ có thể được mô tả lại bởi người sử dụng
SAP Quick Sizer
Đây có thể là bước hữu ích đầu tiên khi chúng ta muốn tạo ra một dự báo phụ tải dựa trên các thông tin được cung cấp bởi SAP Quick Sizer Công cụ này cho phép dự đoán những gì phần cứng sẽ được yêu cầu dựa trên dữ liệu lấy từ các hoạt động trực tiếp hoặc dựa trên dữ liệu đã có sẵn Mặc dù dữ liệu được ghi lại bởi SAP Quick Sizer là không đủ cho một phân tích tải hoàn thiện nhưng có thể nó cung cấp
sự hỗ trợ rất hữu ích cho việc tạo ra các hồ sơ tải
Không có gì thay thế cho các bài kiểm thử hiệu năng
SAP Quick Sizer không thay thế cho việc kiểm thử hiệu năng Mặc dù SAP Quick Sizer cho phép đánh giá phần cứng cần thiết nhưng chức năng của nó không cho phép đi vào các yếu tố khác Vì vậy, kết quả của nó không phải để xem xét các thiết lập tùy biến cụ thể của khách hàng cũng như sự tương tác với các ứng dụng (Không phải là SAP) của khách hàng Ảnh hưởng của sự phát triển tùy biến và các giao dịch cũng như các quá trình chạy ngầm không thể được coi là một Tuy nhiên, việc xem xét kết quả của SAP Quick Sizer giúp đánh giá các yêu cầu phần cứng cho một hệ thống với cấu hình tối ưu Một trong những mục đích chính của kiểm thử hiệu năng là để đảm bảo rằng các lỗi trong cấu hình hệ thống được phát hiện
Tài liệu hồ sơ tải (The Load Profile)
Trang 35Sau khi kết thúc quá trình phân tích, ta phải có một danh sách các quá trình tải có liên quan được sắp xếp theo sự ưu tiên
Các thông tin sau đây cần được cung cấp để đảm bảo việc xem xét đầy đủ trong phạm vi của một hồ sơ tải
- Vai trò: Ai sẽ là người thực hiện quá trình này? Thông tin này cho phép ta
thực hiện một đánh giá đầu tiên của người dùng tham gia và nó cho thấy những người có liên quan, thông tin này có thể được sử dụng cho quá trình phân tích dữ liệu
- Sự điều hướng: Xác định chính xác chức năng này nằm trong menu nào
- Page/ iViews: Những bước được thực hiện là gì? Để chuẩn bị một danh sách
các iViews (hoặc các page) Ta có thể sử dụng các trường hợp kiểm thử và
mô tả quá trình này làm cơ sở Hãy chắc chắn rằng tất cả các bước cần thiết được thực sự xem xét
- Thời gian đáp ứng: Ta phải ghi cả thời gian đáp ứng dự kiến tối đa và có
thể chấp nhận được Giá trị đầu tiên mô tả thời gian đáp ứng trung bình, trong khi giá trị thứ hai cho biết thời gian đáp ứng có thể chấp nhận được đối với trường hợp là chậm nhất
- Số lượng người sử dụng: tổng số người sử dụng phải được xác định cho
mỗi vai trò cũng như số lượng người dùng đồng thời tại thời gian cao điểm Giá trị đầu tiên chỉ đơn giản là liệt kê tất cả những người dùng được phép thực hiện giao dịch Giá trị thứ hai cho biết bao nhiêu người thực hiện giao
dịch đồng thời
- Data throughput/frequency: Giá trị này xác định bao nhiêu hoạt động được
thực hiện bởi mỗi người dùng trong tổng số hoạt động và trong giờ cao điểm
Ta có thể sử dụng giá trị này để xác định tổng tải của hệ thống
- Sự lặp lại: Giá trị này xác định mức độ thực hiện thường xuyên của chức
năng hoặc mức độ thường xuyên của tải trọng tối đa xảy ra trong các giao
dịch (hàng ngày/hàng tuần/ tháng/ quý/ năm)
Trang 36- Tải trọng tối đa: Giá trị này chỉ ra khoảng thời gian mà tải trọng tối đa được biết
Quá trình chạy ngầm
Để phân tích các quá trình chạy ngầm, ta phải lấy các thông tin hiện tại từ nhóm dự án Lập kế hoạch lấy thông tin về các tiến trình chạy ngầm thường có sẵn như lịch trình công việc Nếu thông tin về công việc thực hiện ngầm không có sẵn, cách duy nhất để có được nó là yêu cầu các phòng ban tương ứng của người dùng bằng cách đưa ra cái nhìn tổng quan cần thiết
2.1.4.2 Phân tích dữ liệu (Data Analysis)
Xác định cấu trúc dữ liệu
Tiếp theo phân tích quy trình là phân tích dữ liệu Ở đây, các cấu trúc dữ liệu theo yêu cầu của các quá trình liên quan được xác định để lấy các dữ liệu cần thiết,
ví dụ như mã vật tư, các dữ liệu có thể được xác định
Căn cứ vào các quy trình liên quan và số lượng người dùng đã đăng ký, ta phải ước tính khối lượng dữ liệu cần thiết Khi làm như vậy, luôn phải nhớ rằng các
kiểm thử hiệu năng sử dụng “lượng lớn các dữ liệu thử nghiệm”
Số lượng dữ liệu kiểm thử
Thiếu dữ liệu kiểm thử gây nguy cơ thất bại cho dự án kiểm thử hiệu năng Mục tiêu của kiểm thử chức năng là để bao quát tất cả các quy trình kinh doanh quan trọng với lượng dữ liệu thử nghiệm càng ít càng tốt, một bài kiểm thử hiệu năng đòi hỏi số lượng lớn các dữ liệu kiểm thử Các quá trình chuyển dữ liệu kiểm thử vào hệ thống kiểm thử được lên kế hoạch ngay từ đầu Cần lưu ý, mỗi hệ thống
có sự hạn chế về băng thông, chúng ta phải tính toán thời gian cần thiết để nhập đủ
số lượng cần thiết của dữ liệu kiểm thử gây ra bởi các hạn chế về kỹ thuật
Xác minh dữ liệu kiểm thử
Trang 37Ngoài các kiểu và phạm vi của dữ liệu kiểm thử, ta cũng nên xác định các quá trình sử dụng để tạo ra các dữ liệu này Trong nhiều trường hợp, tập hợp các dữ liệu kiểm thử đã có sẵn trong hệ thống cũ hoặc các bảng Excel, những thông tin này sau đó được đưa vào hệ thống kiểm tra Trong mọi trường hợp, ta phải xác minh các
dữ liệu kiểm thử trước khi sử dụng nó, dưới đây là một vài tiêu chí được đưa ra [10]:
- Dữ liệu kiểm thử có thể được sử dụng cho các quy trình được chọn?
- Đó có phải là tập hợp dữ liệu kiểm thử phù hợp?
- Lượng dữ liệu kiểm thử có đủ để sẵn sàng chạy lặp đi lặp lại để tìm kiếm sự tối ưu hóa, hoặc thực hiện kiểm thử tính ổn định?
- Cấu trúc của dữ liệu kiểm thử có phù hợp với kiểm thử tải?
Sau khi ta đã xác minh các dữ liệu kiểm thử, ta có thể đưa nó vào hệ thống kiểm thử
2.1.4.3 Lựa chọn công cụ kiểm thử tải (Tool Selection)
Song song với việc xử lý và phân tích dữ liệu, việc lựa chọn một công cụ kiểm thử tải phù hợp cũng nên được thực hiện
Sử dụng các công cụ hiện có
Thông thường, kiểm thử tải đã được thực hiện trong các dự án được triển khai trước, các công cụ liên quan là có sẵn Nếu vẫn được hỗ trợ bảo trì từ nhà cung cấp ta phải kiểm tra xem các giấy tờ tại thời điểm mua còn có hiệu lực sử dụng, đáp ứng các yêu cầu hiện tại cả về số lượng người dùng được mô phỏng và có thích hợp với các hệ thống thử nghiệm không?
Lựa chọn công cụ mới
Nếu cần phải mua một công cụ mới hoặc muốn thử nghiệm một công nghệ mới hơn sử dụng công cụ hiện có, ta nên kiểm tra công cụ này có đủ điều kiện phù hợp trong bối cảnh của thử nghiệm Bằng cách này ta có thể chắc chắn rằng sự
Trang 38thành công của kiểm thử không bị đe dọa bởi một chức năng không có công cụ kiểm tra Trong mọi trường hợp, nên liên hệ với chuyên viên giàu kinh nghiệm như các nhà tư vấn SAP khi lựa chọn và kiểm tra một công cụ kiểm thử tải phù hợp
2.1.4.4 Hồ sơ tải (Load Profile)
Kết quả quan trọng của việc chuẩn bị kiểm thử là hồ sơ tải Nó rất hữu ích để cho các bộ phận sử dụng chính thức chấp nhận tài liệu này, nó là cơ sở cho tất cả các hoạt động khác sau này Hồ sơ tải mô tả các quy trình quan trọng, được ưu tiên nhất, nó quy định cụ thể mức độ tải được kỳ vọng trong một khoảng thời gian cụ thể, xác định các mục tiêu hiệu năng cho các quy trình theo tải tối đa Hồ sơ tải nên
ít nhất đáp ứng được những câu hỏi sau [10]:
- Quy trình nào được thực hiện thường xuyên nhất?
- Khi nào tải tối đa xảy ra cho mỗi quá trình?
- Có bao nhiêu người sử dụng đồng thời trong quá trình làm việc trong giờ cao điểm?
- Những đối tượng dữ liệu nào được yêu cầu cho mỗi quá trình?
- Khi nào dữ liệu này được cung cấp?
- Làm thế nào để lấy được dữ liệu trả về của bài kiểm thử?
- Các tiến trình chạy ngầm có liên quan không?
- Có bao nhiêu tài nguyên được yêu cầu sử dụng cho các quá trình chạy ngầm?
- Những cấu trúc dữ liệu nào có sẵn cho các quá trình ngầm?
- Những công cụ nào được sử dụng để tạo ra các tải?
- Làm thế nào hệ thống và ứng dụng được giám sát trong thời gian chạy tải?
2.1.5 Thực hiện kiểm thử tải (Load Test)
Giai đoạn chính của dự án kiểm thử bao gồm bốn bước [10] Bắt đầu bằng việc chuẩn bị dữ liệu và hệ thống, tiếp theo là kiểm thử đơn người dùng, đa người dùng (số người sử dụng tăng dần) Bước cuối cùng là phân tích kết quả Nếu cần
Trang 39thiết, thực hiện tối ưu hóa Quy trình thực hiện -> phân tích -> tối ưu hóa được lặp
Kiểm thử
đa người dùng
Tối ưu hóa
Hình 2 3 Các bước thực hiện kiểm thử tải
2.1.5.1 Chuẩn bị dữ liệu và hệ thống
Bước đầu tiên trong giai đoạn thực hiện kiểm thử bao gồm việc chuẩn bị dữ liệu và hệ thống Bước này liên quan đến phần cứng cho hệ thống kiểm thử cũng như các dữ liệu kiểm thử phù hợp Về mặt lý thuyết, các phần cứng thử nghiệm cho
hệ thống tải nên giống với hệ thống sẽ được sử dụng cho hệ thống chính Tuy nhiên thực tế là rất khác nhau: đối với lý do chi phí, hệ thống được sử dụng để kiểm thử tải ít khi giống với hệ thống được sử dụng thực tế
Các công việc thực hiện cùng với việc kiểm thử tải
Chuẩn bị các kịch bản gần giống nhất so với thực tế để đáp ứng các yêu cầu
về việc cung cấp hệ thống giống nhau Ta có thể bắt đầu thực hiện các bài kiểm thử đầu tiên bởi các giao dịch được thực hiện đầu tiên đã được hoàn thành
Trang 40 Tính toàn vẹn chức năng của hệ thống kiểm thử
Để chuẩn bị hệ thống kiểm thử cho kiểm thử hiệu năng, đầu tiên ta phải kiểm tra tính sẵn sàng và tính toàn vẹn chức năng của các quy trình liên quan Để làm điều này, ta sử dụng quá trình phân tích, nếu các quy trình là có sẵn, cần chắc chắn
dữ liệu kiểm thử có sẵn là tốt Ta có thể sử dụng các phân tích dữ liệu mà ta đã tạo
ra trong giai đoạn chuẩn bị
Ngoài các hệ thống kiểm thử, ta có thể cần các hệ thống khác để tạo ra các tải, tuy nhiên các yêu cầu này có thể được thay đổi từ các công cụ Trong mọi trường hợp nên tham khảo ý kiến của các chuyên gia về công cụ mà ta muốn sử dụng
Tạo các kịch bản kiểm thử
Bước cuối cùng liên quan đến việc chuẩn bị hệ thống là việc tạo ra các kịch bản kiểm thử Điều này thường được thực hiện bằng cách ghi lại một giao dịch và liên kết nó với các dữ liệu tham số thử nghiệm Quá trình ghi lại này tương tự như quá trình sử dụng ghi macro Trong bối cảnh này, ta phải xem xét thời gian cần thiết bởi các người kiểm thử cần làm quen với các công cụ kiểm thử tải Các kịch bản phức tạp đòi hỏi mức độ chuyên môn cao trong việc sử dụng công cụ
2.1.5.2 Kiểm thử đơn người dùng (Single-user)
Việc đầu tiên của chạy kiểm thử phải là một kiểm thử đơn người dùng Để thực hiện nó, ta nên thực hiện tất cả các quy trình đã được xác định bằng cách sử dụng công cụ kiểm thử tải, dựa trên mô phỏng chỉ có một người sử dụng hoạt động Các bài kiểm thử đầu tiên phải đảm bảo sự toàn vẹn chức năng của hệ thống kiểm thử và kịch bản kiểm thử Dữ liệu được kiểm tra lại bằng cách lấy các mẫu thử Trong quá trình này, những vấn đề đầu tiên có thể được phát hiện vì hệ thống được
sử dụng để kiểm thử hiệu năng thường không tương ứng với hệ thống hợp nhất mà các bài kiểm thử đã được thực hiện Sau khi kiểm thử đơn người dùng được hoàn