Non-Functional Requirements for Salesforce
Overview
This guide covers non-functional requirements testing for Salesforce, including security testing, accessibility testing for LWCs and portals, and performance benchmarks. These patterns are essential for ensuring systems meet quality standards beyond functional requirements.
Related Patterns:
- Automated Testing Patterns - Automated testing approaches
- LWC Accessibility - LWC accessibility guidelines
- Performance Tuning - Performance optimization
- Security Patterns - Security and access control patterns
Consensus Best Practices
- Test security proactively: Don’t wait for security issues to be discovered
- Ensure accessibility compliance: Meet WCAG standards for accessibility
- Define performance benchmarks: Establish and maintain performance SLAs
- Test non-functional requirements early: Include NFR testing in development cycle
- Automate NFR testing: Automate security, accessibility, and performance tests
- Monitor NFR metrics: Continuously monitor security, accessibility, and performance
- Document NFR requirements: Document all non-functional requirements
- Review NFR regularly: Regularly review and update NFR requirements
Security Testing
Security Test Patterns
Security Test Types:
- Vulnerability scanning: Automated scanning for known vulnerabilities
- Penetration testing: Manual security testing by security experts
- Security code review: Review code for security issues
- Security configuration review: Review security configuration
Security Test Areas:
- Authentication and authorization: Test access controls
- Data protection: Test data encryption and protection
- Input validation: Test input validation and sanitization
- API security: Test API authentication and authorization
- Integration security: Test integration security controls
Security Test Implementation:
- Use security scanning tools
- Conduct regular security reviews
- Test security controls
- Document security test results
- Remediate security issues
Vulnerability Testing
Vulnerability Types:
- SQL injection: Test for SQL injection vulnerabilities
- Cross-site scripting (XSS): Test for XSS vulnerabilities
- Cross-site request forgery (CSRF): Test for CSRF vulnerabilities
- Authentication bypass: Test for authentication bypass
- Authorization bypass: Test for authorization bypass
Vulnerability Testing Tools:
- Static Application Security Testing (SAST): Code analysis tools
- Dynamic Application Security Testing (DAST): Runtime testing tools
- Interactive Application Security Testing (IAST): Hybrid testing tools
- Software Composition Analysis (SCA): Dependency vulnerability scanning
Vulnerability Testing Best Practices:
- Scan code regularly
- Test in staging environments
- Remediate vulnerabilities promptly
- Document vulnerability findings
- Track vulnerability remediation
Penetration Testing Approaches
Penetration Test Types:
- Black box testing: Test without internal knowledge
- White box testing: Test with full internal knowledge
- Gray box testing: Test with partial internal knowledge
- Red team exercises: Simulate real-world attacks
Penetration Test Scope:
- Network security: Test network security controls
- Application security: Test application security controls
- Data security: Test data protection measures
- Integration security: Test integration security
Penetration Test Best Practices:
- Conduct regular penetration tests
- Use qualified security testers
- Document test findings
- Remediate findings promptly
- Retest after remediation
Accessibility for LWCs/Portals
WCAG Compliance
WCAG Levels:
- Level A: Minimum accessibility requirements
- Level AA: Standard accessibility requirements (recommended)
- Level AAA: Enhanced accessibility requirements
WCAG Principles:
- Perceivable: Information must be perceivable to users
- Operable: Interface must be operable by users
- Understandable: Information must be understandable
- Robust: Content must be robust and compatible
WCAG Implementation:
- Follow WCAG 2.1 or 2.2 guidelines
- Test with assistive technologies
- Conduct accessibility audits
- Remediate accessibility issues
- Document accessibility compliance
Accessibility Testing Tools
Automated Testing Tools:
- axe DevTools: Browser extension for accessibility testing
- WAVE: Web accessibility evaluation tool
- Lighthouse: Google’s accessibility auditing tool
- Pa11y: Command-line accessibility testing
Manual Testing:
- Keyboard navigation: Test keyboard-only navigation
- Screen reader testing: Test with screen readers (NVDA, JAWS, VoiceOver)
- Color contrast: Test color contrast ratios
- Focus indicators: Test focus indicators
Accessibility Testing Best Practices:
- Combine automated and manual testing
- Test with real assistive technologies
- Test with real users when possible
- Document accessibility test results
- Remediate accessibility issues
Accessibility Patterns
LWC Accessibility Patterns:
- Semantic HTML: Use semantic HTML elements
- ARIA attributes: Use ARIA when needed
- Keyboard navigation: Ensure keyboard accessibility
- Focus management: Manage focus properly
- Screen reader support: Ensure screen reader compatibility
Portal Accessibility Patterns:
- Portal navigation: Ensure accessible navigation
- Form accessibility: Ensure accessible forms
- Content accessibility: Ensure accessible content
- Media accessibility: Ensure accessible media (alt text, captions)
Accessibility Best Practices:
- Design for accessibility from start
- Test accessibility throughout development
- Include accessibility in code reviews
- Train developers on accessibility
- Monitor accessibility compliance
Performance Benchmarks
Performance SLAs
SLA Definition:
- Response time SLA: Maximum acceptable response time
- Availability SLA: Minimum acceptable availability
- Throughput SLA: Minimum acceptable throughput
- Error rate SLA: Maximum acceptable error rate
SLA Categories:
- Critical: Strictest SLAs for critical systems
- Important: Standard SLAs for important systems
- Standard: Basic SLAs for standard systems
- Low priority: Relaxed SLAs for low-priority systems
SLA Implementation:
- Define SLAs per system or component
- Monitor SLA compliance
- Alert on SLA violations
- Report on SLA compliance
- Improve systems to meet SLAs
Performance Testing Frameworks
Performance Test Types:
- Load testing: Test under expected load
- Stress testing: Test beyond expected load
- Spike testing: Test sudden load increases
- Endurance testing: Test under sustained load
Performance Test Metrics:
- Response time: Average, p95, p99 response times
- Throughput: Requests per second
- Error rate: Percentage of failed requests
- Resource utilization: CPU, memory, database usage
Performance Test Tools:
- JMeter: Open-source load testing tool
- Gatling: Scala-based load testing tool
- k6: Modern load testing tool
- Salesforce Performance Testing: Native Salesforce tools
Performance Monitoring
Performance Monitoring Patterns:
- Real-time monitoring: Monitor performance in real-time
- Historical monitoring: Track performance trends over time
- Alerting: Alert on performance degradation
- Reporting: Report on performance metrics
Performance Monitoring Implementation:
- Set up performance monitoring dashboards
- Configure performance alerts
- Track performance baselines
- Analyze performance trends
- Optimize based on monitoring data
Performance Monitoring Best Practices:
- Monitor key performance metrics
- Set meaningful alert thresholds
- Track performance trends
- Analyze performance anomalies
- Optimize based on monitoring insights
NFR Testing Integration
NFR in Development Cycle
NFR Testing Phases:
- Design phase: Define NFR requirements
- Development phase: Test NFR during development
- Testing phase: Comprehensive NFR testing
- Production phase: Monitor NFR in production
NFR Testing Best Practices:
- Include NFR in acceptance criteria
- Test NFR early and often
- Automate NFR testing
- Monitor NFR continuously
- Review NFR regularly
NFR Test Automation
Automated NFR Testing:
- Security scanning: Automated security vulnerability scanning
- Accessibility testing: Automated accessibility testing
- Performance testing: Automated performance testing
- Compliance testing: Automated compliance checking
NFR Test Automation Benefits:
- Early detection of NFR issues
- Consistent NFR testing
- Reduced manual testing effort
- Continuous NFR monitoring
NFR Test Automation Implementation:
- Integrate NFR tests in CI/CD
- Run NFR tests on every build
- Report NFR test results
- Alert on NFR violations
Q&A
Q: What are non-functional requirements (NFRs) in Salesforce?
A: Non-functional requirements are quality attributes that define how a system should perform, not what it should do. Key NFRs for Salesforce include: (1) Security (authentication, authorization, data protection), (2) Accessibility (WCAG compliance for users with disabilities), (3) Performance (response times, throughput, scalability), (4) Reliability (uptime, error handling).
Q: How do I test security in Salesforce?
A: Test security by: (1) Vulnerability scanning for known vulnerabilities, (2) Penetration testing by security experts, (3) Security code review for security issues, (4) Security configuration review of org settings, (5) Testing authentication and authorization (access controls), (6) Testing data protection (encryption, field-level security), (7) Testing input validation and sanitization.
Q: What accessibility standards should I follow for Lightning Web Components?
A: Follow WCAG 2.1 Level AA standards for accessibility. This includes: (1) Keyboard navigation (all functionality accessible via keyboard), (2) Screen reader support (proper ARIA labels and roles), (3) Color contrast (sufficient contrast ratios), (4) Focus indicators (visible focus states), (5) Alternative text for images and icons. Use automated accessibility testing tools and manual testing.
Q: How do I define performance benchmarks for Salesforce?
A: Define performance benchmarks by: (1) Establishing SLAs (Service Level Agreements) for response times, (2) Defining throughput requirements (requests per second), (3) Setting scalability targets (concurrent users, data volume), (4) Measuring baseline performance, (5) Setting performance targets based on business requirements, (6) Monitoring performance metrics continuously.
Q: When should I test non-functional requirements?
A: Test NFRs early and continuously: (1) Include NFR testing in development cycle (not just at the end), (2) Automate NFR testing in CI/CD pipelines, (3) Run NFR tests on every build, (4) Monitor NFR metrics continuously, (5) Review NFR requirements regularly. Early testing prevents costly fixes later.
Q: How do I automate non-functional requirement testing?
A: Automate NFR testing by: (1) Integrating NFR tests in CI/CD pipelines, (2) Using automated security scanning tools, (3) Using automated accessibility testing tools (axe, Pa11y), (4) Using performance testing tools (JMeter, Gatling), (5) Setting up automated monitoring for NFR metrics, (6) Alerting on NFR violations.
Q: What accessibility testing tools should I use for LWCs?
A: Use accessibility testing tools including: (1) Jest with accessibility matchers for unit testing, (2) axe-core for automated accessibility testing, (3) Pa11y for command-line accessibility testing, (4) Screen readers (NVDA, JAWS) for manual testing, (5) Keyboard navigation testing for keyboard accessibility, (6) Color contrast analyzers for color accessibility.
Q: How do I measure performance in Salesforce?
A: Measure performance by: (1) API response times (SOQL queries, REST/SOAP calls), (2) Page load times (Lightning pages, Experience Cloud), (3) Transaction times (DML operations, complex processes), (4) Throughput (requests per second), (5) Resource utilization (CPU, memory, database), (6) User experience metrics (time to interactive, perceived performance).
Q: What security testing should I perform for Experience Cloud (Communities)?
A: Test Experience Cloud security by: (1) Testing guest user access (what guests can see/do), (2) Testing authenticated user access (permission sets, sharing rules), (3) Testing data isolation (users can’t see other users’ data), (4) Testing API security (guest user API access), (5) Testing file sharing (who can access files), (6) Testing form security (input validation, CSRF protection).
Q: How do I ensure non-functional requirements are met in production?
A: Ensure NFRs in production by: (1) Continuous monitoring of security, accessibility, and performance metrics, (2) Setting up alerts for NFR violations, (3) Regular security audits and penetration testing, (4) Regular accessibility audits, (5) Performance monitoring and optimization, (6) Regular NFR reviews and updates, (7) Documenting NFR requirements and SLAs.
Related Patterns
- Automated Testing Patterns - Automated testing approaches
- LWC Accessibility - LWC accessibility guidelines
- Performance Tuning - Performance optimization
- Security Patterns - Security and access control patterns
- Monitoring and Alerting - Performance monitoring