Этот списокне является всеохватывающим перечнем того, как сломать программу и найти дефекты. Это даже не сравнительно полный список. Дело в том, что компьютеры выполняют в точности то, что вы говорите им сделать, и одна из сложностей написания программ — это разъяснение компьютеру, что делать при самых разных обстоятельствах. В то время как многие из этих обстоятельств являются сравнительно общими для программ (например, как обрабатывать ситуации с отсутствующими файлами или пропаданием сетевого соединения), многие другие ошибки будут специфичными для области, в которой вы работаете, или для программы, которую вы пишете. Как тестировщик, вы должны смотреть на вещи шире и постоянно думать о путях, при которых проявятся дефекты конкретной тестируемой программы.
И когда вы это делаете, помните, что вы не пользователь. Предполагается, что вы, как тестировщик программного обеспечения, должны быть знакомы с тестируемой системой — если не сразу, то со временем. Во многих случаях вы будете более технически подкованы, чем человек, пользующийся программой. Пользователи не будут работать с программой так, как это делаете вы, и то, что кажется очевидным вам, будет совсем не очевидным для них. Важно представлять виды ошибок, которые пользователи будут совершать, что именно они будут вводить в качестве входных данных и что конкретно ожидают увидеть.