Scenario testing involves testing systems and use cases using credible scenarios that are easy to evaluate. Defect bashing is a testing event where a group finds defects, or ad hoc testing where different roles test together. Acceptance testing determines if a system meets requirements and is accepted. System testing evaluates the complete system's compliance from an end-to-end perspective. Non-functional testing evaluates a system's performance against expectations like usability, security, and reliability.