%% date:: [[2021-02-13]], [[2023-02-23]] %% # [[Good testing is context-dependent and risk-based]] There are best practices for testing, but structures that are too rigid do not work in practice. This failure is due to the sheer number of factors that can affect various aspects of a testing strategy. ## Degree of thoroughness While [[Exhaustive testing is impossible and impractical|exhaustive testing is both impossible and impractical]], some industries require a higher level of thoroughness to testing than others, such as medicine, aviation, information security, government, defense, or other industries with strict compliance regulations. Applications developed in these industries usually have higher than normal chances of causing serious harm to people or the environment if they have errors, so they should be tested accordingly. Bigger companies often experience a higher risk than others of [[Brand Defamation]] due to the age or technical experience of their target userbase or due to their popularity and ubiquitousness. ## Scope Many applications rely heavily on integrations with third-party providers that, while important, typically have SLAs to cover the usability of their services. Other applications have more internal integrations than external ones, and so carry responsbility for a larger scope. ## Methodology While [[Implementations of Agile|Agile methodologies]] are generally considered an improvement on strict [[Waterfall]] frameworks, the effectiveness of the implementation is highly dependent on [[Human factors in tech|human factors]] such as company culture, team composition, and testing maturity.