Initial commit
Some checks failed
CI / validate (push) Has been cancelled

This commit is contained in:
Zhongwei Li
2025-11-30 08:45:26 +08:00
commit 1769b9d042
26 changed files with 3707 additions and 0 deletions

98
references/examples.md Normal file
View File

@@ -0,0 +1,98 @@
# PICT Examples Reference
> **Note**: This is a placeholder file. Comprehensive examples are coming soon!
>
> For now, check out the [examples directory](../examples/) for complete real-world examples.
## Available Examples
### Complete Examples
- **[ATM System Testing](../examples/atm-specification.md)**: Comprehensive banking ATM system with 31 test cases
### Coming Soon
#### Software Testing
- Function testing with multiple parameters
- API endpoint testing
- Database query validation
- Algorithm testing
#### Web Applications
- Form validation
- User authentication
- E-commerce checkout
- Shopping cart operations
#### Configuration Testing
- System configurations
- Feature flags
- Environment settings
- Browser compatibility
#### Mobile Testing
- Device and OS combinations
- Screen sizes
- Network conditions
- Permissions
## Pattern Library (Coming Soon)
### Common Constraint Patterns
```
# Dependency constraints
IF [FeatureA] = "Enabled" THEN [FeatureB] = "Enabled";
# Exclusive options
IF [PaymentMethod] = "Cash" THEN [InstallmentPlan] = "None";
# Platform limitations
IF [OS] = "iOS" THEN [Browser] IN {Safari, Chrome};
# Environment restrictions
IF [Environment] = "Production" THEN [LogLevel] <> "Debug";
```
### Boundary Value Patterns
```
# Numeric boundaries
Age: 0, 17, 18, 64, 65, 100
# Size categories
FileSize: 0KB, 1KB, 1MB, 100MB, 1GB
# Time periods
Duration: 0s, 1s, 30s, 60s, 3600s
```
### Negative Testing Patterns
```
# Invalid inputs (using ~ prefix in some PICT variants)
Email: Valid, Invalid, Empty, TooLong
Password: Strong, Weak, Empty, SpecialChars
# Error conditions
NetworkStatus: Connected, Slow, Disconnected, Timeout
```
## Contributing Examples
Have an example to share? We'd love to include it!
1. Create your example following the structure in [examples/README.md](../examples/README.md)
2. Include:
- Original specification
- PICT model
- Test cases with expected outputs
- Learning points
3. Submit a pull request
See [CONTRIBUTING.md](../CONTRIBUTING.md) for details.
## External Resources
- [Pairwise Testing Tutorial](https://www.pairwisetesting.com/)
- [NIST Combinatorial Testing Resources](https://csrc.nist.gov/projects/automated-combinatorial-testing-for-software)
- [Microsoft PICT Examples](https://github.com/microsoft/pict/tree/main/doc)

83
references/pict_syntax.md Normal file
View File

@@ -0,0 +1,83 @@
# PICT Syntax Reference
> **Note**: This is a placeholder file. Complete syntax documentation is coming soon!
>
> For now, please refer to the official PICT documentation:
> - [Microsoft PICT on GitHub](https://github.com/microsoft/pict)
> - [PICT User Guide](https://github.com/microsoft/pict/blob/main/doc/pict.md)
## Quick Reference
### Basic Model Structure
```
# Parameters
ParameterName: Value1, Value2, Value3
AnotherParameter: ValueA, ValueB, ValueC
# Constraints (optional)
IF [ParameterName] = "Value1" THEN [AnotherParameter] <> "ValueA";
```
### Parameter Definition
```
ParameterName: Value1, Value2, Value3, ...
```
### Constraint Syntax
```
IF <condition> THEN <condition>;
```
### Operators
- `=` - Equal to
- `<>` - Not equal to
- `>` - Greater than
- `<` - Less than
- `>=` - Greater than or equal to
- `<=` - Less than or equal to
- `IN` - Member of set
- `AND` - Logical AND
- `OR` - Logical OR
- `NOT` - Logical NOT
### Example Constraints
```
# Simple constraint
IF [OS] = "MacOS" THEN [Browser] <> "IE";
# Multiple conditions
IF [Environment] = "Production" AND [LogLevel] = "Debug" THEN [Approved] = "False";
# Set membership
IF [UserRole] = "Guest" THEN [Permission] IN {Read, None};
```
## Coming Soon
Detailed documentation will include:
- Complete grammar specification
- Advanced features (sub-models, aliasing, seeding)
- Negative testing patterns
- Weight specifications
- Order specifications
- Examples for each feature
## Contributing
If you'd like to help complete this documentation:
1. Fork the repository
2. Add content to this file
3. Submit a pull request
See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines.
## External Resources
- [Official PICT Documentation](https://github.com/microsoft/pict/blob/main/doc/pict.md)
- [pypict Documentation](https://github.com/kmaehashi/pypict)
- [Pairwise Testing Explained](https://www.pairwisetesting.com/)