Christy

New Member
Có công cụ nguồn mở nào đáp ứng nhu cầu của lĩnh vực kiểm định phần mềm? Và chúng ta phải cân nhắc những yếu tố gì, tiêu chí nào để đưa ra quyết định lựa chọn giữa công cụ nguồn mở và công cụ thương mại?
Sản xuất phần mềm chuyên nghề ngày nay bất thể bất sử dụng các công cụ hỗ trợ. Chúng là trợ thủ đắc lực (đôi khi là bắt buộc) giúp lực lượng phát triển phần mềm nâng cao năng suất và chất lượng dự án. Tuy nhiên, một thực tế là chi phí cho các phần mềm hỗ trợ thương mại là rất cao, đôi lúc làm cho dự án bất còn tiềm năng sinh lời ... Hơn nữa, với tình hình kinh tế hiện nay, các doanh nghề gia công phần mềm đang phải gồng mình cung cấp các gói dịch vụ giá thấp nhưng có chất lượng cao hơn để thu hút khách hàng. Do vậy ban quản trị dự án luôn phải tìm cách tiết kiệm chi phí phát triển, kiểm định cũng như vận hành dự án, trong khi vẫn đảm bảo chất lượng sản phẩm đầu ra.
Các phần mềm ngựa nguồn mở có thể đáp ứng cho nhu cầu trên. Mozilla Firefox, OpenOffice, hay LAMP (Linux, Apache, MySQL, PHP)... là các tên tuổi được nhiều người biết đến trong lĩnh vực phần mềm ngựa nguồn mở. Nhưng có công cụ ngựa nguồn mở nào đáp ứng nhu cầu của lĩnh vực kiểm định phần mềm? Và chúng ta phải cân nhắc những yếu tố gì, phụ thuộc trên những tiêu chí nào để đưa ra quyết định lựa chọn giữa công cụ kiểm tra ngựa nguồn mở và công cụ thương mại? Hy vọng bài viết này có thể giúp bạn trả lời câu hỏi trên.
1. CÔNG CỤ KIỂM TRA TỰ ĐỘNG MÃ NGUỒN MỞ
Cộng cùng mã nguồn mở có khá nhiều ứng dụng hỗ trợ chuyện kiểm tra tự động, từ các công cụ kiểm tra chức năng, hiệu năng, đến công cụ hỗ trợ kiểm tra hệ thống mạng, cơ sở dữ liệu... Dưới đây chúng tui chọn ra một số công cụ ngựa nguồn mở có uy tín trong lĩnh vực kiểm tra tự động, cụ thể là kiểm tra tự động chức năng, hiệu năng của ứng dụng web.
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 Basic Machine) phiên bản 1.4 trở lên. JMeter bất đò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 vừa đượ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à giao thức sau: HTTP, HTTPS, SOAP, JDBC, LDAP, JMS, POP3 ...
Các thành phần chính:
Analysis Plan: Bao gồm các bước sẽ được JMeter thực thi.
Thread Group: Đại diện cho người dùng ảo (virtual user), có thể gồm các thành phần sau:
- Argumentation Controller: Cho phép điều chỉnh argumentation khi gửi các yêu cầu đến đối tượng cần kiểm tra.
- Sampler: Cung cấp thông tin cho JMeter gửi các yêu cầu đến máy chủ cần kiểm tra. Tùy theo giao thức kiểm tra, JMeter hỗ trợ những loại adornment khác nhau.
- Config Element: Sử dụng để thêm vào những thay đổi/ cấu hình cần thiết cho các sampler.
Hình 1 – Giao diện cửa sổ ứng dụng của JMeter
- Timer: Điều chỉnh khoảng thời (gian) gian dừng giữa các lần gửi yêu cầu.
- Pre/Post Processor: Cho phép thực hiện một số bước cần thiết ngay trước/ sau khi chạy một adornment nào đó.
- Assertion: Các phương pháp xác nhận thông tin trả về từ đối tượng kiểm tra có đúng với mong đợi hay không.
- Listener: Cho phép thu thập thông tin kết quả. Có thể đưa ra các báo cáo kết quả kiểm tra dạng đồ thị, hay xuất ra tập tin.

WorkBench: Được xem như một vùng tạm để làm việc, lưu trữ. Tất cả các thành phần bên trong WorkBench sẽ bất được thực thi (trừ khi nó được chuyển vào trong Analysis Plan).
JMeter có thể giả lập hàng ngàn người dùng ảo để thực hiện đo lường, kiểm tra hiệu năng của đối tượng cần analysis phụ thuộc trên một kịch bản dựng sẵn. Số lượng người sử dụng ảo bị hạn chế bởi cấu hình phần cứng của máy chủ chạy test. Nhưng điều này có thể được khắc phục với phương pháp kiểm tra phân tán. JMeter cùng thời cũng cung cấp một hệ thống báo cáo kết quả kiểm tra linh động. Tính dễ sử dụng của công cụ này là bất cao nếu so sánh với các công cụ thương mại. Nhưng JMeter hiện đang được sử dụng rộng lớn rãi nên có một hệ thống tài liệu hỗ trợ rất tốt, từ các chỉ dẫn trên website, đến các diễn đàn và ebook.
SELENIUM ( )

Selenium gồm một bộ các công cụ hỗ trợ kiểm tra tự động chức 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 thi kiểm tra trực tiếp trên các trình duyệt web khác nhau.
- Selenium IDE: Một ứng dụng mở rộng lớn cho Mozilla Firefox phiên bản 2.0 trở lên. Công cụ này cung cấp chức năng "thu và chạy lại" – Record and Playback. Nhờ đó, Tester có thể nhanh chóng làm ra (tạo) một bộ kịch bản kiểm tra (test script) bằng cách trực tiếp "thu" các thao tác của mình trên đối tượng cần kiểm tra thành một tập những câu lệnh Selenese (ngôn ngữ kịch bản được dùng riêng cho Selenium IDE và Selenium Core, có dạng bảng HTML). Sau đó chạy lại các câu lệnh này để kiểm tra. Chức năng này rất có dụng giúp tiết kiệm thời (gian) gian viết kịch bản kiểm tra. Selenium IDE còn cho phép lưu kịch bản vừa thâu dưới nhiều loại ngôn ngữ lập trình khác nhau như Java, PHP, C#, Ruby, Perl hay Python.
- Selenium RC: Công cụ này có thể nhận các analysis calligraphy được thu bởi Selenium IDE, cho phép chỉnh sửa, cải tiến linh động bằng nhiều ngôn ngữ lập trình khác nhau. Sau đó khởi động một trong các trình duyệt web được chỉ định để thực thi kiểm tra trực tiếp trên trình duyệt đó. Selenium RC còn cung cấp tiềm năng lưu lại kết quả kiểm tra.
- Selenium Grid: Thực hiện phương pháp kiểm tra phân bổ, phối hợp nhiều Selenium RC để có thể thực thi trên nhiều trình duyệt web khác nhau trong cùng một lúc. Cũng cho phép lưu lại kết quả kiểm tra.
- Selenium Core: Đã được tích hợp trong Selenium IDE. Selenium Core là một công cụ chạy các analysis calligraphy viết bằng Selenese. Thế mạnh của công cụ này là có thể chạy analysis calligraphy trên gần như tất cả các trình duyệt, nhưng lại yêu cầu được cài đặt trên máy chủ của website cần kiểm tra. Điều này là bất thể khi Tester bất có quyền truy cập đến máy chủ đó.

Hình 2 - Cơ cấu làm chuyện của bộ ba Selenium IDE, Selenium RC và Selenium Grid (nguồn: )
Là một công cụ hỗ trợ kiểm tra chức năng nên Selenium bất có tiềm năng giả lập nhiều người dùng ảo cùng một lúc. Công chuyện của nó là chạy kiểm tra tự động phụ thuộc trên một kịch bản vừa được thiết kế từ trước. Qua đó chúng ta có thể chắc chắn rằng đối tượng kiểm tra có hoạt động đúng như mong đợi hay không. Lợi ích Selenium có thể đem lại là bất nhỏ, nhưng để hết dụng lợi thế đó, tester phải có tiềm năng nghiên cứu và ứng dụng, cùng thời kiến thức lập trình tốt cũng sẽ giúp ích nhiều trong quá trình sử dụng công cụ ngựa nguồn mở này.
MỘT SỐ CÔNG CỤ MÃ NGUỒN MỞ KHÁC
Ngoài hai công cụ có ích trên, các công cụ sau đây tuy có một số khuyết điểm nhưng cũng gây được ấn tượng tốt với cộng cùng người dùng nên chúng tui sẽ điểm qua một số thông tin sau:
- The Grinder ( ). Nhìn chung, The Grinder có nhiều điểm tương cùng với JMeter: là một ứng dụng thuần Java, hoạt động trên nhiều hệ điều hành, yêu cầu JVM phiên bản 1.4 trở lên. The Grinder cũng được thiết kế để kiểm tra hiệu năng web, cơ sở dữ liệu qua JDBC và một số giao thức khác. Điều khác biệt là The Grinder đòi hỏi tester phải có tiềm năng sử dụng ngôn ngữ Jython để có thể viết/chỉnh sửa các kịch bản kiểm tra (test script) theo ý mình, và hệ thống báo cáo kết quả kiểm tra bất linh động như JMeter.
- TestMaker ( ). Hỗ trợ kiểm tra hiệu năng và chức năng của ứng dụng web. TestMaker có tiềm năng chạy analysis calligraphy được thâu từ các công cụ khác như TestGen4Web và Selenium. Tuy nhiên, phiên bản được xây dựng sẵn để cài đặt và sử dụng miễn phí nhưng bị hạn chế tiềm năng chạy kiểm tra tối (nhiều) đa với 200 người dùng ảo. Để xóa bỏ hạn chế này, người sử dụng có thể trả trước hay tự tải ngựa nguồn của TestMaker về và tự xây dựng (build) thành một bộ cài đặt và sử dụng trả chỉnh. Điều này đòi hỏi kiến thức về Java, Ant, NetBean, ...
- WebLoad OpenSource ( ). Vốn là một công cụ thương mại hỗ trợ kiểm tra hiệu năng web của RadView Software. Gia nhập cộng cùng mã nguồn mở vào năm 2007 nhưng WebLoad OpenSource bị hạn chế nhiều chức năng so với phiên bản thương mại của nó. Hiện tại WebLoad OpenSource bất hỗ trợ giao thức HTTPS nên khá bất tiện trong một số trường hợp.
- OpenSTA ( ) cũng là một công cụ kiểm tra hiệu năng web có tên tuổi nhưng vừa không đưa ra một phiên bản mới nào từ cuối năm 2007. Một trong những yếu điểm của OpenSTA là chỉ hoạt động trên Windows. Tuy nhiên tính thân thiện và dễ sử dụng của công cụ này lại được đánh giá cao. Ngôn ngữ kịch bản được sử dụng trong OpenSTA là SCL.
Nhiều ứng dụng ngựa nguồn mở phục vụ công chuyện kiểm định phần mềm cũng được giới thiệu tại .
2. CÔNG CỤ MÃ NGUỒN MỞ HAY THƯƠNG MẠI
Liệu các công cụ hỗ trợ kiểm định ngựa mở có thể làm tốt công chuyện như các công cụ thương mại hay không. Câu trả lời là có, nhưng chúng ta vẫn phải xét đến các khía cạnh sau:

Hình 3 – So sánh giữa công cụ ngựa mở và thương mại
Khi quyết định sử dụng các công cụ ngựa nguồn mở, chúng ta phải chấp nhận rằng chúng bất dễ sử dụng (như công cụ thương mại), có một số hạn chế trong chức năng và có thể công cụ đó vẫn còn một số lỗi phát sinh trong quá trình sử dụng. Vì vậy chuyện sàng lọc bất phải đơn giản. Tốt nhất công cụ ngựa mở đó vẫn phải được cập nhật và hỗ trợ tài liệu, kỹ thuật bởi cộng cùng để có thể giảm thiểu các yếu tố rủi ro vừa nêu.
Ngoài ra, chuyện tìm được nhân lực có thể sử dụng tốt các công cụ kiểm định ngựa nguồn mở cũng là một bài toán khó. Do đó, chuyện nghiên cứu và đào làm ra (tạo) cần được đầu tư đúng lúc, đúng mức độ cần thiết cho nhu cầu dự án. Tuy nhiên khi xem xét lại giữa công sức phải bỏ ra để ứng dụng phần mềm ngựa nguồn mở và chi phí rất lớn để đầu tư công cụ thương mại, ta sẽ thấy được sự cân bằng giữa hai loại công cụ nói trên.
Các vấn đề cân nhắc khi quyết định ứng dụng công cụ ngựa nguồn mở vào dự án:
* Vấn đề kỹ thuật:
- Nhu cầu kiểm định của dự án? Sử dụng các công nghệ, giao thức gì?
- Có yêu cầu đặc biệt nào về báo cáo và phân tích kết quả kiểm tra không?
- Công cụ ngựa mở đó có được hỗ trợ kỹ thuật/ tài liệu đầy đủ không?
* Vấn đề nguồn lực:
- Khả năng kỹ thuật và nghiên cứu của tester
- Trong nhóm ít nhất nên có một tester vừa có kinh nghiệm sử dụng, hay thông thạo ngôn ngữ kịch bản mà công cụ đó hỗ trợ.
* Vấn đề chi phí:
- Chi phí và quỹ thời (gian) gian cho giai đoạn kiểm định tự động (nên cân nhắc cả thời (gian) gian đào làm ra (tạo) để ứng dụng công cụ).
3. KẾT LUẬN
Các phần mềm ngựa nguồn mở đem lại thời cơ thứ hai bên cạnh các phần mềm thương mại, cho lĩnh vực kiểm định chất lượng phần mềm. Tuy bất tốn chi phí đầu tư ban đầu nhưng chuyện ứng dụng công cụ ngựa mở cũng có các phát sinh tiềm ẩn khác đôi khi rất tốn kém, như chuyện phải tìm được giải pháp vượt qua các hạn chế và lỗi của công cụ (nếu có), hay phải lập trình thêm một số bore bổ articulate chức năng để đáp ứng nhu cầu dự án, tốn nhiều thời (gian) gian để tìm hiểu và ứng dụng tốt... Do đó cần có kế hoạch cân nhắc và đánh giá kỹ tất cả các khía cạnh để cuối cùng chuyện ứng dụng công cụ ngựa mở đó đem lại lợi ích nhiều hơn với tổng chi phí và công sức đầu tư thấp hơn.
Theo PcWorld
[email protected]
Global Cybersoft Việt Nam
 

Các chủ đề có liên quan khác

Top