Software testing
lastmod 2026-09-22created 2015-06-1817 edits
Software testing is an investigation conducted to provide key stakeholders with information about the quality of the product or service under test. Software testing also provides an objective, independent view of the software so that the business can correctly understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application to find software bugs.
Categories
- TDD - Explanation of test-driven development.
- Continuous testing (CI)
- Dogfooding (Korean: 도그푸딩) - A key tech industry practice of using your own products to verify quality and trust
- Smoke testing
Setting limits at the OS level
Ways to firmly bound CPU and memory at the OS level. There are three options.
- systemd-run - Limits total CPU and memory with cgroup. If memory overflows, only that test process is killed and the system as a whole holds up.
-
systemd-run --user --scope -p CPUQuota=400% -p MemoryMax=12G ./npm run test:run
-
-
nice -n 19 ./npm run test:run
-
taskset -c 0-3 ./npm run test:run
Methodology is bullshit: principles for product velocity
See Software development process#Methodology is bullshit: principles for product velocity.
Table of Software Testing
| Test levels | Acceptance testing, System integration testing, System testing, Integration testing, Unit testing | |
| Test types, techniques, tactics | A/B testing, Benchmark, Compatibility testing, Concolic testing, Concurrent testing, Conformance testing, Continuous testing, Destructive testing, Development testing, Differential testing, Dynamic program analysis, Installation testing, Negative testing, Random testing, Regression testing, Security testing, Smoke testing (software), Software performance testing, Stress testing, Symbolic execution, Test automation, Usability testing | |
| [x]-box style | Black-box testing (All-pairs testing, Exploratory testing, Fuzz testing, Model-based testing, Scenario testing), Grey-box testing, White-box testing (API testing, Mutation testing, Static testing) | |
| See also | Graphical user interface testing, Manual testing Orthogonal array testing, Pair testing, Soak testing, Software reliability testing, Stress testing, Web testing | |
See also
- Software development
- Software development process
- Software quality
- Software Development Life Cycle (SDLC)
- Software engineering (Korean: 소프트웨어 공학)
- Computer engineering
- Korean: 카오스 엔지니어링 (Chaos Engineering)
- Test