Tài liệu Xây dựng công cụ hỗ trợ automation test dựa trên kiến trúc lưới

  • Số trang: 20 |
  • Loại file: PDF |
  • Lượt xem: 131 |
  • Lượt tải: 0
tailieuonline

Đã đăng 39841 tài liệu

Mô tả:

Đạ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 1 Mục Lục 1. 2. 3. 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 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 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 2 1. 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). 3 Hì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: 4 1.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ó 5 - thiế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. 6 Mô 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. 7 1.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. 8 - - - - - - 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 9 - - 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. 10 - 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, … 11 3.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. 12 - - - gLite Grid services dựa theo Service Oriented Architecture (SOA) với các tính chất sau:  Các dịch vụ lưới dễ dàng tương tác với nhau.  Dễ dàng phù hợp với các chuẫn mở.  Các dịch vụ độc lập.  Các dịch vụ cũng có khả năng làm việc với nhau. Hiện nay gLite cung cấp 5 dịch vụ cấp cao:  Helper Services.  Security Services.  Data Service.  Information and Monitoring Service.  Job Management Service. Ngoài ra, trong gLite còn có Grid Access hỗ trợ CLI (Command Lines User Interface) và các API. Sau đây là những thành phần chính trong gLite:  User Interface (UI): cung cấp giao diện để người dùng login vào lưới.  Resource Broker (RB): làm cho người sử dụng phù hợp với nguồn tài nguyên trên lưới.  Computing Element (CE): hang đợi trên các site tại đó người sử dụng thực thi công việc.  Storage Element (SE): cung cấp vùng lưu trữ tập tin quy mô lớn.  Information System (IS): thể hiện đặc trưng và tình trạng của CE và SE. 13 4. Ứng Dụng Kiến Trúc Lưới Vào Bài Toán: Về mặt chức năng, mô hình kiểm thử chúng tôi đang áp dụng đã đảm bảo được những chức năng, dịch vụ cơ bản đang triển khai trong các công cụ Globus Toolkit, gLite. Các điểm khác biệt chính là: - Resource Monitoring: hệ thống chúng tôi chỉ hỗ trợ việc giám sát trạng thái của các tài nguyên trong hệ thống (đang sử dụng, chưa sử dụng, được sử dụng plan nào). Ngoài ra, hiện tại, hệ thống chỉ hỗ trợ CLI cho người quản trị. - Data Transfer: do đặc thù của dự án, chúng tôi chỉ triển khai những giao thức thông dụng:  Truyền tải dữ liệu: svn, ftp, sftp.  Liên lạc giữa các thiết bị: snmp, ssh, telnet, tl1. - Security: do hệ thống chỉ hoạt động trong mạng nội bô, vấn đề bào mật đã được chúng tôi đơn giản hóa. 14 5. Tổng Kết Và Hướng Phát Triển: Nhìn chung với hệ thống đang triển khai, chúng tôi đã đáp ứng được những mục tiêu đề ra ban đầu, tuy nhiên trong quá trình vận hành, chúng tôi nhận thấy cần phải cải tiến và khắc những vấn đề sau: - Dịch vụ giám sát tài nguyên chưa hoàn chỉnh, hiện tại trạng thái tất cả tài nguyên được lưu vào log, người dùng phải sử dụng command line để truy cập vào file log trên máy chủ để theo dõi. Trong thời gian tới, chúng tôi sẽ cung cấp chức năng giám sát ngay trên giao diện web, đồng thời hỗ trợ thêm khả năng tìm kiếm trạng thái của một tài nguyên bất kỳ. - Vấn đề về quản lý tài nguyên động: theo ứng xử hiện tại, khi Bộ quản lý tài nguyên phần cứng (Hardware Manager) được kích hoạt, danh sách các tài nguyên được tải vào bộ nhớ 1 lần, do đó mất đi khả năng thêm/xóa tài nguyên trong quá trình Hardware Manager đang thực thi. - Vấn đề ảo hóa tài nguyên cũng được chúng tôi xem xét như một hướng phát triển trong tương lai. 15 Một số giao diện chính trong hệ thống automation test: Hình a: Các plan trên hệ thống. 16 Hình b: Danh sách các tài nguyên sẽ sử dụng trong hệ thống. 17 Hình c: Khai báo tài nguyên và thứ tự ưu tiên cho 1 plan. Hình d: Plan đang chờ được cấp phát tài nguyên. 18 Hình e: Theo dõi trạng thái tài nguyên. 19 Tài liệu tham khảo: [1] Ahmar Abbas, Grid Computing: A Practical Guide to Technology and Applications. [2] Bart Jacob, Grid computing: What are the key components? [3] Introduction to Grid Computing with Globus, IBM Redbook. [4] Nguyễn Thị Kim Tuyến, Nghiên Cứu Tổng Quan Về Tính Toán Lưới Và Cài Đặt Mô Hình Thử Nghiệm, Luận Văn Thạc Sĩ Khoa Học, Trường Đại Học Bách Khoa Hà Nội. 20
- Xem thêm -