Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| software_testing [2019/08/03 15:27] – [General points] rpjday | software_testing [2019/08/04 09:18] (current) – [Test data generation] rpjday | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| * Use library routines as much as possible. | * Use library routines as much as possible. | ||
| + | * Develop wrappers that incorporate your features. | ||
| * Use REGEX parsers to validate input, this forces you to clarify valid input. | * Use REGEX parsers to validate input, this forces you to clarify valid input. | ||
| * Library packages frequently come with userspace demo programs. | * Library packages frequently come with userspace demo programs. | ||
| * Emphasize libraries to identify dependencies. | * Emphasize libraries to identify dependencies. | ||
| * Static analyzers | * Static analyzers | ||
| + | * cppcheck | ||
| + | * clang (scan-build) | ||
| * gcc/C11 debugging features | * gcc/C11 debugging features | ||
| * -Wall | * -Wall | ||
| * extensions and attributes | * extensions and attributes | ||
| + | * assertions | ||
| + | * Add checking to version control hooks (cppcheck with Git) | ||
| ==== Tools to automate testing ==== | ==== Tools to automate testing ==== | ||
| Line 138: | Line 143: | ||
| * condition | * condition | ||
| * finite state machine | * finite state machine | ||
| + | |||
| ==== Integration testing ==== | ==== Integration testing ==== | ||
| ==== System testing ==== | ==== System testing ==== | ||
| + | |||
| + | * testing of a complete and fully integrated software product | ||
| + | * black box (system) | ||
| + | * white box | ||
| + | |||
| + | Different types of system testing: | ||
| + | |||
| + | |||
| + | * Usability Testing - Usability Testing mainly focuses on the user's ease to use the application, | ||
| + | * Load Testing - Load Testing is necessary to know that a software solution will perform under real-life loads. | ||
| + | * Regression Testing- - Regression Testing involves testing done to make sure none of the changes made over the course of the development process have caused new bugs. It also makes sure no old bugs appear from the addition of new software modules over time. | ||
| + | * Recovery Testing - Recovery testing is done to demonstrate a software solution is reliable, trustworthy and can successfully recoup from possible crashes. | ||
| + | * Migration Testing - Migration testing is done to ensure that the software can be moved from older system infrastructures to current system infrastructures without any issues. | ||
| + | * Functional Testing - Also known as functional completeness testing, Functional Testing involves trying to think of any possible missing functions. Testers might make a list of additional functionalities that a product could have to improve it during functional testing. | ||
| + | * Hardware/ | ||
| ==== Sanity vs smoke testing ==== | ==== Sanity vs smoke testing ==== | ||
| ==== Regression testing ==== | ==== Regression testing ==== | ||
| + | |||
| + | When? | ||
| + | |||
| + | |||
| + | * Change in requirements and code is modified according to the requirement | ||
| + | * New feature is added to the software | ||
| + | * Defect fixing | ||
| + | * Performance issue fix | ||
| + | |||
| ==== Non-functional testing ==== | ==== Non-functional testing ==== | ||
| - | ===== TestCase Development | + | * performance |
| + | * endurance | ||
| + | * load | ||
| + | * volume | ||
| + | * scalability | ||
| + | * usability | ||
| + | |||
| + | ===== STUFF ===== | ||
| + | |||
| + | ==== Test documentation ==== | ||
| + | |||
| + | ==== Test scenario vs Test case ==== | ||
| + | |||
| + | ==== Test analysis (test basis) ==== | ||
| + | |||
| + | ==== Requirements traceability matrix (RTM) ==== | ||
| + | |||
| + | ==== Test data generation ==== | ||
| + | |||
| + | Generated: | ||
| + | |||
| + | * Manually | ||
| + | * Mass copy of data from production to testing environment | ||
| + | * Mass copy of test data from legacy client systems | ||
| + | * Automated Test Data Generation Tools | ||