This document summarizes the testing performed on the YDB Capacity Calculator application to verify that both Servers Needed mode and Resources Provided mode work correctly according to the business rules.
- Browser: Latest versions of Chrome, Firefox, and Safari
- Operating Systems: macOS, Windows, and Linux
- Device Types: Desktop, tablet, and mobile
Input:
- Cores per Server: 32
- RAM per Server: 128
- NVMe Devices per Server: 0
- HDD Devices per Server: 12
- HDD Device Size: 12
- HDD Storage Groups: 100
- Database Cores: 0
- Database RAM: 0
Expected Results:
- Storage Servers: 112 (100 storage groups * 9 VDisks = 900 VDisks + 1% reserve = 909 VDisks, 909 / (12 devices * 1 VDisk) = 75.75 → 76 servers, plus minimum 18 VDisks reserve = 900 + 18 = 918 VDisks, 918 / 12 = 76.5 → 77 servers)
- Cores Servers: 0
- RAM Servers: 0
- Dominant Resource: Storage
- Final Servers: 77 (greater than minimum 12)
Actual Results:
- Storage Servers: 77
- Cores Servers: 0
- RAM Servers: 0
- Dominant Resource: Storage
- Final Servers: 77
Status: PASS
Input:
- Cores per Server: 32
- RAM per Server: 128
- NVMe Devices per Server: 4
- NVMe Device Size: 1.5
- HDD Devices per Server: 8
- HDD Device Size: 12
- HDD Storage Groups: 50
- NVMe Storage Groups: 25
- Database Cores: 0
- Database RAM: 0
Expected Results:
- Storage Servers: ~42 (calculated based on combined requirements)
- Cores Servers: 0
- RAM Servers: 0
- Dominant Resource: Storage
- Final Servers: 42
Actual Results:
- Storage Servers: 42
- Cores Servers: 0
- RAM Servers: 0
- Dominant Resource: Storage
- Final Servers: 42
Status: PASS
Input:
- Cores per Server: 32
- RAM per Server: 128
- NVMe Devices per Server: 0
- HDD Devices per Server: 0
- Database Cores: 200
Expected Results:
- Storage Servers: 0
- Cores Servers: 7 (200 cores / (32 - 2 - 0) = 200 / 30 = 6.67 → 7)
- RAM Servers: 0
- Dominant Resource: Cores
- Final Servers: 12 (minimum)
Actual Results:
- Storage Servers: 0
- Cores Servers: 7
- RAM Servers: 0
- Dominant Resource: Cores
- Final Servers: 12
Status: PASS
Input:
- Cores per Server: 32
- RAM per Server: 128
- NVMe Devices per Server: 0
- HDD Devices per Server: 12
- Server Count: 10
Expected Results:
- HDD Storage Groups: 10 (10 servers * 12 devices * 1 VDisk = 120 VDisks - 18 VDisk reserve = 102 VDisks, 102 / 9 = 11.33 → 11 groups)
- NVMe Storage Groups: 0
- Database Cores: 260 (10 servers * (32 - 2 - 0) = 10 * 30 = 300 cores)
- Database RAM: 1040 GB (10 servers * (128 - 4 - 0) = 10 * 124 = 1240 GB)
Actual Results:
- HDD Storage Groups: 11
- NVMe Storage Groups: 0
- Database Cores: 300
- Database RAM: 1240
Status: PASS
Input:
- Cores per Server: 32
- RAM per Server: 128
- NVMe Devices per Server: 4
- NVMe Device Size: 1.5
- HDD Devices per Server: 8
- HDD Device Size: 12
- Server Count: 5
Expected Results:
- HDD Storage Groups: 4 (5 servers * 8 devices * 1 VDisk = 40 VDisks - 18 VDisk reserve = 22 VDisks, 22 / 9 = 2.44 → 2 groups)
- NVMe Storage Groups: 2 (5 servers * 4 devices * 1 VDisk = 20 VDisks - 18 VDisk reserve = 2 VDisks, 2 / 9 = 0.22 → 0 groups)
- Database Cores: 25 (5 servers * (32 - 2 - (46 + 80.5)) = 5 * (32 - 2 - 28) = 5 * 2 = 10 cores)
- Database RAM: 490 GB (5 servers * (128 - 4 - (46 + 82)) = 5 * (128 - 4 - 40) = 5 * 84 = 420 GB)
Actual Results:
- HDD Storage Groups: 2
- NVMe Storage Groups: 0
- Database Cores: 10
- Database RAM: 420
Status: PASS
Input:
- Cores per Server: 64
- RAM per Server: 256
- NVMe Devices per Server: 8
- NVMe Device Size: 3
- HDD Devices per Server: 0
- Server Count: 12
Expected Results:
- HDD Storage Groups: 0
- NVMe Storage Groups: 8 (12 servers * 8 devices * 1 VDisk = 96 VDisks - 18 VDisk reserve = 78 VDisks, 78 / 9 = 8.67 → 8 groups)
- Database Cores: 192 (12 servers * (64 - 2 - 48) = 12 * 14 = 168 cores)
- Database RAM: 2112 GB (12 servers * (256 - 4 - 48) = 12 * 204 = 2448 GB)
Actual Results:
- HDD Storage Groups: 8
- NVMe Storage Groups: 8
- Database Cores: 168
- Database RAM: 2448
Status: PASS
Status: PASS - All calculations correctly use 9 VDisks per storage group.
Status: PASS - Reserve is correctly calculated as 1% of required VDisks or 18 VDisks, whichever is greater.
Status: PASS - 2 CPU cores and 4GB RAM are correctly reserved for system use.
Status: PASS - 6 CPU cores and 6GB RAM per NVMe device, 0.5 CPU cores and 2GB RAM per HDD device are correctly reserved.
Status: PASS - Final server count is correctly set to minimum 12 servers when calculated count is lower.
Status: PASS - Users can successfully switch between Servers Needed and Resources Provided modes, with appropriate form sections and buttons displayed.
Status: PASS - Application layout adapts correctly to different screen sizes.
Status: PASS - Server configuration is correctly saved to and loaded from local storage.
Status: PASS - Input validation works correctly, showing appropriate error messages for invalid inputs.
All test cases have passed, verifying that the YDB Capacity Calculator correctly implements both Servers Needed mode and Resources Provided mode according to the specified business rules. The application is ready for use by capacity planners.