Hiện tại quy trình kiềm thử truyền thống được thực hiện với các bước cơ bản sau: - Bước 1: Người quản lý Project Manager, Lab Prime, Leader cung cấp sẵn danh sách những tài nguyên hardw
Trang 1Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Trường Đại Học Bách Khoa
Hệ Cao Học Chuyên Ngành Khoa Học Máy Tính
Môn: Tính Toán Lưới
Đề Tài:
XÂY DỰNG CÔNG CỤ HỖ TRỢ AUTOMATION TEST DỰA
TRÊN KIẾN TRÚC LƯỚI
Giảng Viên: Thầy Phạm Trần Vũ
Học Viên Thực Hiện:
12070543 – Ngô Hoàng Tâm
Tp HCM, 05/2014
Trang 2Mục Lục
1 Giới Thiệu Bài Toán: 3
1.1 Tổng Quan Về Automation Test: 3
1.2 Các Vấn Đề Liên Quan Automation Test Trong Dự Án: 3
1.2.1 Các tài nguyên phần cứng và phần mềm: 3
1.2.2 Mô hình kiểm thử truyền thống (Manual Test): 5
1.2.3 Mô hình kiểm thử tự động (Automation Test): 6
1.2.4 Các bài toán cần giải quyết: 8
2 Các Thành Phần Trong Lưới 8
2.1 Các thành phần theo mô hình chức năng: 8
2.2 Các thành phần theo mô hình vật lý: 9
3 Một số công nghệ lưới: 10
3.1 Globus Toolkit: 10
3.2 gLite: 12
4 Ứng Dụng Kiến Trúc Lưới Vào Bài Toán: 14
5 Tổng Kết Và Hướng Phát Triển: 15
Một số giao diện chính trong hệ thống automation test: 16
Tài liệu tham khảo: 20
Trang 31 Giới Thiệu Bài Toán:
1.1 Tổng Quan Về Automation Test:
Trong quy trình phát triển phần mềm, sản phẩm dần dần được xây dựng hoàn thiện qua nhiều vòng lặp và pha Ứng với mỗi vòng lặp, pha đó, những chức năng mới sẽ được bổ sung hoặc những chức năng cũ sẽ được cải tiến Nhiệm vụ kiểm tra thoái lùi bắt buộc phải được thực hiện để đảm bảo chất lượng của sản phẩm trong tất cả các phiên bản và tại cuối mỗi vòng lặp để chuyển giao Các vấn đề như tốn nhiều thời gian, chi phí cao, kế hoạch tăng và giảm nguồn nhân sự cho đội ngũ Đảm Bảo Chất Lượng Phần Mềm luôn luôn là điều bận tâm của tổ chức phát triển phần mềm và khách hàng
Sự ra đời của automation test (kiểm thử tự động) đã mang lại những lợi ích vượt trội so với phương thức kiểm thử truyền thống (manual test), cụ thể đó là:
- Phát hiện lỗi trong thời gian nhanh nhất: automation test có thể được kích hoạt chạy
tự động ngay sau khi có 1 bản build mới, do đó những thay đổi nhỏ nhất làm ảnh hưởng đến chất lượng sản phẩm sẽ được thông báo kịp thời đến tester, developer và những người có liên quan
- Giảm thiểu thời gian thực hiện mỗi test case: các thao tác bằng tay tốn nhiều thời gian trước đây được thay thế bằng các thao tác chính xác tính bằng đơn vị ms
- Tận dụng khả năng song song của máy móc, cũng như giải quyết được bài toán về nguồn nhân lực
- …
Tuy nhiên, tùy đặc thù mỗi loại sản phẩm và quy mô của của từng dự án mà việc xây dựng một hệ thống automation test sẽ gặp phải những khó khăn nhất định
1.2 Các Vấn Đề Liên Quan Automation Test Trong Dự Án:
1.2.1 Các tài nguyên phần cứng và phần mềm:
Hiện tại, dự án chúng tôi đang phát triển dòng sản phẩm 5520 Access Management System (AMS) của Alcatel-Lucent Gói sản phầm này cung cấp giải pháp quản lý các thiết
bị quản lý truy xuất thông minh của Alcatel-Lucent (Intelligent Services Access Manager – ISAM) cũng như các sản phẩm dựa trên công nghệ truyền dẫn bằng sợi quang (EPON, GPON)
Trang 4Hình 1: Giao diện sản phẩm 5520 AMS
Sau đây là những tài nguyên cần thiết trong quy trình kiểm thử của chúng tôi:
- AMS Client machines: những máy tính chạy 5520 AMS Client Hiện tại chúng tôi kiểm thử client trên nhiều nền tảng, hệ điều hành khác nhau như Win XP, Win 7,
Ubutun, Solaris
- AMS Server machines: những máy chủ chạy 5520 AMS Server hoặc những máy
chủ chỉ chứa Cơ Sở Dữ Liệu (CSDL) Các gói AMS server cần được kiềm thử trên
các môi trường Solaris, Redhat/Centos Linux
- Cluster/Geo: một hay nhiều cụm máy chủ AMS
- NEs (Network Elements): các thiết bị mạng của Alcatel-Lucent (GPON, ISAM,
EPON,…)
- INES Server machines: hỗ trợ việc tạo ra các NE simulator
- LDAP/RADIUS Servers:
- Octopus Servers:
- Network Intefaces:
Trang 51.2.2 Mô hình kiểm thử truyền thống (Manual Test):
Hình 2: Mô hình kiểm thử truyển thống
Như đã trình bày ở mục 1.2.1, quá trình kiểm thử sàn phẩm 5520 AMS phải dựa trên nhiều loại tài nguyên, nhiều nền tảng, nhiều dòng sản phẩm khác nhau Do đó, việc quản
lý tài nguyên, kiểm thử cần phải tuân theo những quy trình phù hợp nhằm giảm thiểu sự xung đột, giảm thiểu sai sót và thời gian thực thi Hiện tại quy trình kiềm thử truyền thống được thực hiện với các bước cơ bản sau:
- Bước 1: Người quản lý (Project Manager, Lab Prime, Leader) cung cấp sẵn danh
sách những tài nguyên (hardware resource) dùng chung (AMS Server, NE, Octopus Server, LDAP/RADIUS server,…) và các tài nguyên cá nhân (AMS Client, AMS Server, NE, …)
- Bước 2: Người quản lý (Project Manager, Leader) giao các bộ kiểm thử (Test Suite)
tương ứng với việc kiểm thử cho mỗi chức năng, thành phần cho các nhân viên kiểm thử (Tester) bên dưới
- Bước 3: Sau khi được giao việc, các nhân viên kiểm thử sẽ tiến hành kiểm tra và
đăng ký các tài nguyên cần thiết với người quản lý Trong quá trình kiểm thử, họ có thể yêu cầu cung cấp thêm tài nguyên nếu phát hiện quá trình đăng ký ban đầu có
Trang 6thiếu sót Ngoài ra, các nhân viên này có thể thảo luận và chia sẻ tài nguyên cá nhân với nhau nếu cần thiết
- Bước 4: Khi hoàn tất việc đăng ký tài nguyên, các nhân viên kiểm thử bắt đầu
download sản phẩm và cài đặt môi trường cần thiết
- Bước 5: Tiến hành kiểm thử Quá trình này kéo dài từ vài tuần đến vài tháng cho
đến khi kết thúc 1 phiên bản (Release)
- Bước 6: Thông báo trả tài nguyên khi không còn sử dụng Trong thực tế, bước này
chỉ xảy ra khi 1 nhân viên chuyển nhóm, rời nhóm hoặc kết thúc phiên bản (6 tháng đến 12 tháng) Điều này có nghĩa là 1 nhân viên sẽ chỉ tiến hành kiểm thử trên 1 môi trường cố định (cùng tài nguyên phần cứng đã đăng ký) trong phần lớn thời gian làm việc
Với quy trình như trên, ta có thể thấy xảy ra những hạn chế sau:
- Toàn bộ quá trình do con người thực hiện nên sẽ không thể tránh khỏi những sai sót chủ quan
- Mỗi nhân viên chỉ làm việc trên tài nguyên phần cứng cố định nên những đánh giá chỉ mang tính cục bộ
- Hạn chế quan trọng nhất chính là thời gian kiểm thử kéo dài, những kết quả kiểm thử trước đó trở nên lỗi thời khi có 1 bản Build mới Điều này dẫn đến nhiều lỗi (Bug) sẽ bị bỏ sót hoặc chỉ được phát hiện khi lặp lại quá trình kiểm thử
1.2.3 Mô hình kiểm thử tự động (Automation Test):
Hình 3: Mô hình kiểm thử tự động
Trang 7Mô hình kiểm thử tự động ra đời với ý tưởng giữ lại một số bước cũ và thêm vào một
số cải tiến nhằm khắc phục những hạn chế mà mô hình truyền thống đã mắc phải
Sau đây là một số khái niệm mới được dung trong mô hình kiểm thử tự động:
- Bộ quản lý tài nguyên phần cứng (Hardware Manager): Tiến trình quản lý toàn
bộ các tài nguyên phần cứng dùng chung và riêng Khái niêm này tương đương với Người quản lý (Project Manager, Lab Prime) Bộ quản lý tài nguyên phần cứng sẽ đảm bảo quá trình phân phối diễn ra ngẫu nhiên, mỗi lần thực thi, các bộ kiểm thử
sẽ chạy trên những tài nguyên hoàn toàn khác nhau, giúp tránh được các kết quả cục
bộ ở mô hình truyền thống
- Plan: Tiến trình độc lập để chạy các testsuite Khái niệm này tương đương với Nhân
Viên Kiểm Thử (Tester)
- Bộ lập lịch (Scheduler): Tiến trình độc lập quyết định thứ tự chạy của các plan dựa
theo mức độ ưu tiên
Các bước chính trong quy trình kiểm thử tự động:
- Bước 1: Người quản trị hệ thống (admin) tiến hành các bước thiết lập sau:
Cung cấp danh sách tài nguyên phần cứng cho Bộ quản lý tài nguyên phần cứng
Cung cấp danh sách các bộ kiểm thử, các yêu cầu tài nguyên cho mỗi plan
- Bước 2: Bộ quản lý tài nguyên phần cứng, Bộ lập lịch, các plan được kích hoạt tự
động mỗi khi có 1 Build mới
- Bước 3: Khi các plan được kích hoạt, chúng sẽ tiến hành đăng ký các tài nguyên cần
thiết lên Bộ quản lý tài nguyên phần cứng Trong suốt quá trình, Bộ lập lịch sẽ đóng vai trò điều phối, quyết định thứ tự chạy các plan nhằm đảm bảo số lượng plan chạy song song là tối đa và việc sử dụng tài nguyên là tối ưu nhất
- Bước 4: Sau khi các plan nhận được các tài nguyên cần thiết sẽ tiến hành download
các bản Build và thiết lập môi trường một cách tự động
- Bước 5: Tiến hành kiểm thử tự động Với quy mô hệ thống trong dự án của chúng
tôi, thời gian hiện tại để hoàn thành 1 plan dao động từ 45 phút đến 6 giờ và thời gian để hoàn thành tất cả các plan (bao gồm cả chạy song song và tuần tự) là 18 giờ Điều này có nghĩa mọi sự thay đổi trong vòng 18 giờ làm ảnh hưởng đến chất lượng sản phẩm đều sẽ bị phát hiện và báo cáo kịp thời
- Bước 6: Thông báo trả tài nguyên khi không còn sử dụng Do thời gian tiến hành
kiểm thử rút ngắn đáng kể nên các plan sẽ thông báo vế việc giao trả tài nguyên cho
Bộ quản lý tài nguyên phần cứng biết ngay khi plan vừa kết thúc Việc này có ý nghĩa rất lớn trong việc tận dụng tài nguyên cũng như quá trình thực hiện song song
Trang 81.2.4 Các bài toán cần giải quyết:
Khi áp dụng mô hình kiểm thử tự động trên vào cụ thể dự án, chúng tôi nhận thấy cần phải giải quyết được vấn đề chính sau:
- Giao diện hỗ trợ tương tác với hệ thống (thiết lập các plan)
- Quản lý, phân bố, giám sát tài nguyên cho các plan
- Việc che dấu nền tảng bên dưới của các tài nguyên (hệ điều hành, hạ tầng mạng,…)
- Lập lịch việc thực thi các plan
- Việc truyền tải dữ liệu giữa các tài nguyên trong hệ thống
Trong quá trình tìm hiểu, chúng tôi nhận thấy các vấn đề đang giải quyết có những nét tương đồng với việc xây dựng một kiến trúc lưới với những thành phần chức năng cơ bản
Để có cái nhìn rõ hơn về vấn đề này, chúng ta cùng xem xét kiến trúc của một lưới đơn giản
2 Các Thành Phần Trong Lưới
Trong nội dung đề tài này, chúng tôi không trình bày lại các khái niệm cơ bản, cũng như kiến trúc tổng quan của một lưới mà sẽ tập trung vào việc phân tích các thành phần của lưới theo mô hình chức năng và vật lý nhằm giúp người xem dễ dàng có sự so sánh với
hệ thống chúng tôi đang xây dựng
2.1 Các thành phần theo mô hình chức năng [4]:
Hình 4: Cấu trúc lưới theo mô hình chức năng
Trang 9- Cổng tương tác (Grid portal): là một giao diện cho phép người dùng sử dụng các
ứng dụng lưới, do đó lưới trở nên trong suốt với người dùng
- Thành phần bảo mật (Security): là cơ chế đảm bảo các hoạt động như xác thực,
cấp quyền, bảo mật-toàn vẹn dữ liệu và tính sẵn sàng của dữliệu
- Chức năng an ninh nút (Node Security Function): chức năng này chịu trách nhiệm
xác thực và bảo mật cho từng nút trong quá trình giao tiếp giữa nó và các thành phần khác bên trong mạng lưới Nó phụ thuộc vào hệ điều hành và các hệ thống lưới cụ thể, thường thấy là cơ chế cấp chứng chỉ quyền truy cập
- Bộ lập lịch (Scheduler): là phần phối hợp quá trình thực thi của nhiều công việc
song song Đơn giản, người sử dụng có thể chọn nút thích hợp để chạy tác vụ, sau
đó chỉ việc kích hoạt lệnh để định tuyến công việc đó tới nút đã chọn
- Thành phần môi giới (Broker): sau khi người dùng được xác nhận quyền gia nhập
vào mạng lưới bởi thành phần an ninh nút, thành phần này sẽ chỉ rõ ứng dụng của người dùng được sử dụng tài nguyên nào và đảm bảo tài nguyên được sẵn sàng sử dụng theo tham số truyền vào
- Quản lý, phân bổ tài nguyên (Grid Resource Allocation Manager, GRAM): cung
cấp dịch vụ để kích hoạt từng công việc trên từng tài nguyên cụ thể; kiểm tra trạng thái công việc; đọc kết quả khi công việc đó kết thúc Các thông tin của thành phần này sau đó sẽ được bộ lập lịch sử dụng
- Tài nguyên (Resource): tài nguyên lưới bao gồm bộ xử lý, bộ lưu trữ, các ứng dụng
và các thành phần
- Quản lý dữ liệu (Data management): dữ liệu có thể nằm ở tài nguyên, hoặc là kết
quả thực thi của một tác vụ nào đó Thành phần quản lý dữ liệu phải đảm bảo an toàn và ổn định trong quá trình di chuyển dữliệu giữa các lưới
- Giao thức (Protocol): là thành phần đảm bảo liên kết các thành phần chức năng kể
trên để có thểhoạt động và tương tác được với nhau trong mạng lưới
2.2 Các thành phần theo mô hình vật lý:
Dựa trên tài liệu [1], các thành phần của lưới theo mô hình vật lý bao gồm:
- Thành phần mạng (Networks): mạng đóng vai trò là cơ sở hạ tầng để truyền số liệu
và các thông tin giám sát công việc giữa các điểm trong mạng lưới Băng thông mạng là một thuộc tính rất quan trọng liên quan đên hiệu suất lưới
- Thành phần tính toán (Computation): được cung cấp bởi các bộ xử lý trong lưới,
chúng đa dạng về tốc độ, kiến trúc, nền tảng phần mềm và lưu trữ
- Thành phần lưu trữ (Storage): dữ liệu có thể được lưu trữ phân tán trên nhiều thiết
bộ xử lý hoặc một mạng SAN Mỗi bộ xử lý thường cung cấp một dung lượng lưu trữ nhất định Hệ thống file thường được dùng là NFS, DFS hoặc GPFS
Trang 10- Phần mềm và bản quyền (Software and License): về phương diện phần mềm trong
môi trường tính toán lưới thì mức độ ổn định của ứng dụng phần mềm và bản quyền phần mềm là hai vất đề cần được quan tâm nhất
- Các thiết bị đặc biệt: một vài nút trên lưới có thể có những thiết bị đặc biệt, chẳng
hạn các thiết bị quân sự, y tế, hay các thiết bị chuyên dụng khác
3 Một số công nghệ lưới [2][3]:
Trong nội dung bài báo cáo này, chúng tôi sẽ trình bày sơ lược về 2 công cụ phổ biến hiện nay: Globus Tookit và gLite
3.1 Globus Toolkit:
Hình 5: Các thành phần của Globus Toolkit
Trang 11- Globus Toolkit là sản phẩm của Globus Alliance, được xem như là một trong những công cụ chuẩn đóng vai trò như một phần mềm điều hành lưới
- Kiến trúc tổng quát bao gồm:
Dịch vụ quản lý tài nguyên, cấp phát tài nguyên lưới (Grid Resource Allocation Manager - GRAM):
Hệ quản trị tài nguyên: xem xét các yêu cầu về tài nguyên, cung cấp tập các API cho phép gửi hoặc hủy các yêu cầu thực thi công việc
Cơ chế truy cập các hệ lưu trữ phụ: cung cấp cơ chế đọc và ghi các tập tin từ xa thông qua giao thức Http hoặc Https
Dịch vụ thông tin (Information Services - IS): giám sát trạng thái của cả hệ thống
Dịch vụ giám sát và khai thác tài nguyên (Monitoring and Discovery Service - MDS)
Dịch vụ thông tin tài nguyên lưới (Resource Information Service - GRIS)
Dịch vụ thông tin chỉ mục (Grid Index Information Service - GIIS)
Dịch vụ quản lý dữ liệu (Data management): cung cấp giao thức chuyển giao
dữ liệu trên môi trường mạng diện rộng với bang thông lớn
Đồng thời cung cấp việc truy cập và quản trị trong môi trường lưới
GridFtp: là giao thức mới được áp dụng trong lưới Đây là thành phần chính hỗ trợ việc truyền tải dữ liệu một cách an toàn với hiệu suất cao
Cơ sở hạ tầng an ninh lưới (Grid Security Infrastructure - GSI): tất cả các thành phần trên được xây dựng ở tầng trên của GSI Điều này cung cấp các chức năng bảo mật bao gồm quá trình chứng thực, xác thức, đảm bộ độ tin cậy trong giao tiếp giữa các nút, xác, …
Trang 123.2 gLite:
Hình 6: Các thành phần trong gLite
- gLite: là sản phẩm từ dự án EGEE (Enabled Grids for E-sciencE) của CERN (European Organization for Nuclear Research) với mục tiêu tạo ra mô trường nghiên cứu về sự va chạm của các hạt cơ bản
- Các thành phần của gLite cũng tương tự các thành phần của Globus Toolkit Tuy nhiên so với Globus, gLite cung cấp giải pháp cụ thể hơn cho mỗi thành phần Ngoài
ra gLite còn cung cấp một framework giúp triển khai các ứng dụng trên môi trường lưới