Black box testing bug location
premise:
- Clarify requirements documents and product logic.
Ways to understand: requirements documents, checklists. - Understand the technical solution
-
Client
- Implementation method (native reactnative hybrid wap)
- When to send network request (click button, switch tab, wake up app, put it in the background to wake up again, try again after failure, etc.)
- Network request url, parameters (data type, must be transmitted, cookie setting) eg: different ios systems have different long type digits
- Response request processing (request success, failure, timeout logic)
- Data storage (memory, files, SQLite) case: kill process, delete files, overwrite installation
- Data processing logic (whether empty, etc., logic branch)
- Required permission application (camera, permission notification, file reading, microphone)
-
rear end
- Interface processing logic (input parameters, output parameters, calculation, filtering, etc.)
- Back-end data source (mysql, redis, third-party interface call, configuration)
Capture tool, interface document, inquiry development. You can understand, you must communicate well! ! ! ! !
3. Positioning steps:
-
Clarify the specific phenomenon and expected result when the bug occurs
- Critical: crash, crash, automatic restart, unresponsive operation, process problem, information display problem, etc.
- General: The page is not displayed well, the prompt is not clear, etc.
- Performance: memory leaks, ANR.
-
Confirm the conditions under which the bug occurs:
- Whether it must be present: browser, operating system, mobile phone system & model
- Network environment: disconnection, weak network, network switching
- Interface request: Whether the request is sent normally, whether the request parameters are correct, and whether the back-end interface response is normal
- Special show operation: this one is not clear
-
Front-end problem positioning:
- Grab the log
- Capture
- Development debug
-
Back-end issues:
- Whether the third-party call is abnormal
- Data error in the database
- Data processing logic error: null pointer, calculation error, miss cache, boundary processing, etc.
- Resource usage (thread pool, database connection pool)
-
Front-end issues:
- The field has not been judged to be empty, the method version used is incompatible, and the required permissions have not been applied for (must appear: general cause of crash)
- Resource recovery is not timely (not necessarily the cause of the crash)
- Request parameter assignment error
- Data processing error (missing processing logic)
- Thread safety issues