Sử dụng công cụ trong kiểm thử phần mềm
Có 2 mục sẽ được giới thiệu tại bài này:
- Giới thiệu về các loại công cụ trong phát triển phần mềm
- Các công cụ trong các quadrants của Agile Testing
1. Giới thiệu về các loại công cụ trong phát triển phần mềm
Ngày nay, chúng ta có càng ngày càng nhiều hướng kiểm thử khác nhau và các công cụ hỗ trợ khác nhau. Nhưng tổng hợp lại, các công cụ chia làm 8 loại
- Test Management Tools
- Test Automation Tools
- Performance Testing Tools
- Bug Tracking Tools
- Mobile Testing Tools
- Test Setup & Infrastructure Tools
- Niche Testing Tools
- Up & Coming Testing Tools
(Tham khảo tại nguồn: https://www.qasymphony.com/blog/100-plus-best-software-testing-tools/)
1.1. Các công cụ quản lý kiểm thử
Việc quản lý các kiểm thử có ý nghĩa quan trọng trong quá trình phát triển phần mềm, nó giúp nhà quản lý thấy được những lợi ích mang lại từ các kiểm thử và giúp nhóm kiểm soát được chất lượng một cách tốt nhất
Hiện nay, hầu hết các công cụ quản lý đều theo hướng phát triển Agile, DevOps và Test Driven
Các công cụ phổ biến như: QTest Manager by QASymphony, SmartBear QAComplete, Zephyr, Testuff
1.2. Các công cụ kiểm thử tự động
Kiểm thử tự động là một trong những phân đoạn thử nghiệm phần mềm kỹ càng nhất. Nó giúp giảm thiểu thời gian thực hiện các kiểm thử hồi quy, giảm chi phí phần mềm và nó đưa ra các phản hồi cho các lập trình viên một cách nhanh nhất có thể.
Hiện tại, chia công cụ kiểm thử tự động thành 2 loại
- Kiểm thử chức năng, như: Katalon Studio, HP Unified Functional Testing (UFT), IBM Rational Functional Tester, Tricentis Tosca Testsuite, Worksoft Certify, TestPlant eggPlant Functional, Ranorex
- Kiểm thử tích hợp/API, như: CA Technologies Application Test, IBM Rational Test Workbench, Parasoft SOAtest, SmartBear Ready! API, Crosscheck Networks SOAPSonar
1.3. Các công cụ kiểm thử hiệu năng
Các công cụ kiểm thử hiệu năng sử dụng một kịch bản (script) tự động đơn giản và chạy nó thông qua hàng trăm hoặc hàng ngàn máy để mô phỏng cách một ứng dụng sẽ thực hiện dưới tải như thế nào.
Chúng ta có thể chia các công cụ kiểm thử hiệu năng thành hai loại chính sau:
- Công cụ kiểm tra hiệu năng Pure Play
- Công cụ kiểm tra hiệu năng mở rộng
Các công cụ điển hình như: Automation Anywhere Testing Anywhere, BlazeMeter, Borland Silk Performer, CA Technologies Application Test, HP LoadRunner, Performance Center & StormRunner, IBM Rational Performance Tester, Neotys NeoLoad, Parasoft Load Test, Radview WebLOAD, SmartBear LoadComplete, Soasta CloudTest, TestPlant eggPlant Performance
1.4. Các công cụ quản lý và theo dõi lỗi
Các công cụ theo dõi lỗi (Bug) giúp chúng ta đơn giản hóa quy trình xác định, quản lý và báo cáo các lỗi phần mềm.
Những công cụ này giúp tăng cường sự hợp tác, sắp xếp việc ghi lại và báo cáo về lỗi và đảm bảo sự nhất quán trên khung nhìn, đặc biệt là khi thay thế là một bảng tính.
Dưới đây là các công cụ theo dõi Bug được sử dụng phổ biến: Bugzilla, MantisBT, Atlassian JIRA, FogCreek FogBugz, Bontq, BugAware
1.5. Các công cụ kiểm thử di động
Thử nghiệm di động ngày càng trở nên quan trọng vì việc sử dụng thiết bị di động đã trở nên phổ biến.
Với nhiều loại ứng dụng (native, hybrid, mobile web) và các hệ điều hành, việc thử nghiệm các ứng dụng di động có thể trở nên khó khăn. Các công cụ kiểm tra di động sử dụng các framwork kiểm tra tự động để giúp đơn giản hóa quá trình kiểm thử.
Dưới đây là các công cụ kiểm thử di động được sử dụng: Keynote DeviceAnywhere, TestPlant eggPlant Mobile, Appium, Selendroid, ios-driver
1.6. Các công cụ cơ sở hạ tầng và thiết lập kiểm thử
Phân đoạn này có sự thay đổi nhanh do các xu hướng trong mobile, web (cloud), NoSQL, và các container, với nhiều công ty mới và tiềm năng
Chúng ta có thể phân loại chúng thành 4 kiểu
- Test cloud, như: Sauce Labs, HP StormRunner Load, IBM Smart Business Development and Test Cloud, Borland Silk Central Connect, BroswerTap
- Mobile device farm, có 2 kiểu nhỏ
- Pure Play
- Extension, như: Amazon Web Service Device Farm, Borland Silk Mobile Testing, Experitest SeeTestCloud, HP Mobile Center, Keynote Mobile Testing, Mobile Labs deviceConnect, Perfecto Mobile Monitoring, Sauce Labs, …
- Test data management, như: Informatica Test Data Management (TDM), CA Technologies Test Data Manager, HP Test Data Management, IBM InfoSphere Optim, Delphix Engine and Data Masking
- Environment management, như: Plutora Test Environment Manager (TEMS), TestPlant eggPlant Manager, TEMS Omnium
1.7. Các công cụ kiểm thử Niche
Các công cụ kiểm thử thuộc loại này thường được áp dụng để xử lý những vấn đề mới phát sinh trong Agile, Mobile, Cloud, DevOps, …. Những phần mà các công cụ kiểm thử Niche hướng đến
- Test reporting, như: qTest Insights by QASymphony, Testuff
- Logging/debugging, như: QASymphony qTest eXplorer, HP Sprinter, Instabug, TestFairy, Browserling, BrowserStack, CrossBrowserTesting
- Crowd testing, như: 99tests, Applause, …
- Beta management, như: BetaEasy, Applause Mobile Beta Management
1.8. Các công cụ kiểm thử đang phát triển và sản sinh
Hiện tại, chưa có danh sách chính thức. Nhưng có thể một trong số đó như sau:
- Froglogic (Test Automation)
- Flood.io (Performance and Load Testing)
- API Fortress (API Testing)
- Codified Security (Security Testing)
- Browsershots (Compatibility Testing)
- Bitbar (Mobile Device Farm)
2. Các công cụ trong các quadrants của Agile Testing
Nếu quy chiếu theo các Agile testing quadrants, có 4 quadrants (Q)
- Q1: Technology-Facing Tests that Support the Team
- Q2: Business-Facing Tests that Support the Team
- Q3: Business-Facing Tests that Critique the Product
- Q4: Critiquing the Product Using Technology-Facing Tests
2.1. Các công cụ hỗ trợ ở quadrant 1
Quadrant 1 là các kiểm thử về mặt kỹ thuật, hỗ trợ nhóm đảm bảo chất lượng phần mềm. Do kiểm thử thiên về kỹ thuật, nên các kiểm thử như unit/components testing được xem xét, công cụ hỗ trợ thực hiện:
- Source Code Control
- IDEs (integrated development environment)
- Build Tools
- Build Automation Tools
- Unit Test Tools
2.2. Các công cụ hỗ trợ ở quadrant 2
Quadrant 2 là các kiểm thử về mặt nghiệp vụ, hỗ trợ nhóm đảm bảo chất lượng phần mềm. Do các kiểm thử thiên về nghiệp vụ, nên phân loại thành
- Công cụ hỗ trợ “gợi mở” ra examples và requirements
- Công cụ viết kiểm thử tự động dựa vào examples
- Công cụ quản lý kiểm thử
2.3. Các công cụ hỗ trợ ở quadrant 3
Quadrant 3 là các kiểm thử về mặt nghiệp vụ, giúp kiểm định lại sản phẩm. Các loại kiểm thử ở Quadrant này đa số là do kiểm thử viên và khách hàng thực hiện, như
- Exploratory Testing
- Usability Testing
- UAT (User Acceptance Testing)
- Alpha/Beta
Các công cụ có thể hỗ trợ: Tự động tạo dữ liệu kiểm thử, mô phỏng, giả lập và các công cụ giám sát (monitoring tools)
2.4. Các công cụ hỗ trợ ở quadrant 4
Quadrant 4 là các kiểm thử về mặt kỹ thuật, giúp kiểm định sản phẩm. Các kịch bản kiểm thử ở quadrant này hướng đến yêu cầu phi chức năng của hệ thống phần mềm, như
- Performance & Load Testing
- Security Testing
- ‘-ility’ Testing
Các kiểu kiểm thử ở quadrant này thường khó để thực hiện và chi phí đắt đỏ, hầu hết đều sử dụng công cụ để hỗ trợ.