Comprehensive Guide to Software Testing Process and Types
This guide outlines a comprehensive software testing framework, covering basic smoke tests, functional, security, interface, compatibility, installation, performance, regression, and advanced testing practices, with detailed steps, responsibilities, and reporting requirements for development, testing, and product teams.
Introduction
This article, originating from "Qtest之道," introduces common bugs related to function return codes and presents a structured testing methodology.
1. Basic Testing
Smoke testing involves developers, testers, and product personnel reviewing core functionalities, prioritizing priority‑0 cases, and delivering a smoke test report. Automated regression of stable main flows and basic features is performed before smoke testing.
2. Functional Testing
Test designers create test cases after requirements and detailed design are completed, covering normal and abnormal scenarios, impact analysis, user scenarios (network switch, lock/unlock, offline browsing, etc.), stability (monkey testing), and other tests such as timeout and permission checks.
3. Security Testing
Security specialists verify business impact and focus on SQL/OS injection, XSS, configuration errors, privilege bypass, DNS hijacking, and may apply DEX obfuscation to protect the app from reverse engineering.
4. Interface Testing
Focuses on interface correctness, handling of required parameters, parameter type validation, and synchronous/asynchronous request testing.
5. Compatibility/Adaptation Testing
Includes system version, device model, and resolution compatibility tests for browsers and platforms, covering major Android and iOS browsers, various screen resolutions, and specific adaptations such as hidden virtual keys, split‑screen, and landscape mode.
6. Installation/Uninstallation Testing
Validates normal and abnormal installation/uninstallation scenarios, ensuring proper package size, successful launch, clean removal, and appropriate user prompts under error conditions.
7. Basic Performance Testing (when no explicit performance requirements)
Determines the need for performance testing, covering client performance (startup time, memory/CPU usage, power, traffic) and small‑scale server performance (response time, concurrency, throughput). A test completion report is required.
8. Online (Backup) Regression Testing
Product and testing teams jointly execute regression tests for new features and main flows, followed by a formal release report.
Advanced Testing
1. Comprehensive Performance Testing (when performance requirements exist) includes activity memory/CPU usage, power consumption, traffic, response time, hot/cold startup, memory leaks, over‑rendering limits, and frame rate >60fps.
2. Stability Testing involves monkey testing under normal, weak, and no‑network conditions with failure probability below 0.07%, continuous 8‑hour runs without crashes, and CPU usage >80% for 5 hours without exit.
3. Static Code Inspection collaborates with developers to define coding standards, using automated scanning complemented by manual review.
High‑Level Testing
Promotes unit test completeness (at least one positive and one negative case per function/interface, optional >80% line coverage), code walkthroughs, and online automated monitoring with fault alerts.
360 Tech Engineering
Official tech channel of 360, building the most professional technology aggregation platform for the brand.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.