You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+128Lines changed: 128 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -495,7 +495,135 @@ Define custom equivalence classes and settings for each input type:
495
495
| Precise | Regression suites, CI pipelines, validation of well-defined rules |
496
496
497
497
---
498
+
## 🧠 Theory and Metaheuristic Foundations
498
499
500
+
Testimize leverages classical testing techniques enhanced by powerful metaheuristics to produce compact, high-value test cases. Below we explain the core test design principles and the intelligent optimization behind Hybrid ABC.
501
+
502
+
---
503
+
504
+
### 🔍 Classical Test Design Techniques
505
+
506
+
#### ✅ Equivalence Partitioning (EP)
507
+
Equivalence Partitioning divides input data into groups where values are assumed to behave the same. Only one representative is tested from each class.
508
+
509
+
**Example:**
510
+
For input 1–100, equivalence classes are:
511
+
- Valid: [1–100]
512
+
- Invalid: <1, >100
513
+
514
+
Testimize uses this in both **Exploratory** and **Precise** modes via predefined or custom equivalence classes.
515
+
516
+
---
517
+
518
+
#### ✅ Boundary Value Analysis (BVA)
519
+
BVA focuses on values at the edge of valid and invalid ranges where bugs frequently occur.
520
+
521
+
**Example:**
522
+
For 1–100, test:
523
+
- 0 (invalid), 1 (min), 100 (max), 101 (invalid)
524
+
525
+
In Testimize, BVA is automatically added when using boundary-aware data parameters like:
526
+
```csharp
527
+
.AddInteger(1, 100)
528
+
```
529
+
530
+
---
531
+
532
+
#### ✅ Pairwise Testing
533
+
Pairwise ensures every pair of input parameters is tested in all combinations, significantly reducing test count while maintaining interaction coverage.
534
+
535
+
**Example:**
536
+
3fields with 3 values →
537
+
- Full combo: 27 cases
538
+
- Pairwise: ~9 cases
539
+
540
+
Use it via:
541
+
```csharp
542
+
settings.Mode = TestGenerationMode.Pairwise;
543
+
```
544
+
545
+
---
546
+
547
+
#### ✅ Combinatorial Testing
548
+
All combinations of all inputs. Use when you need **exhaustive** coverage (e.g., <4 fields).
Hybrid ABC is a swarm-based optimization algorithm inspired by bee foraging behavior. It generates **small but effective test sets** by maximizing test case fitness.
564
+
565
+
---
566
+
567
+
### 🎯 How Hybrid ABC Works
568
+
569
+
Each test case is a **"food source"**. Bees explore and refine these:
570
+
571
+
- **Employed bees** mutate current test cases.
572
+
- **Onlooker bees** choose promising ones to exploit based on fitness.
573
+
- **Scout bees** randomly generate new ones after stagnation.
574
+
575
+
---
576
+
577
+
### ⚙️ Key Enhancements in Testimize
578
+
579
+
| Feature | Purpose |
580
+
|-----------------------------|---------|
581
+
| **Elite selection** | Keeps top test cases across generations. |
582
+
| **Simulated annealing** | Allows accepting worse solutions early to escape local optima. |
The `ABCGenerationSettings` class contains all the configuration options for the HybridArtificialBeeColonyTestCaseGenerator. Here's a breakdown of each property:
0 commit comments