Тестирование – это выполнение приложения или анализ программы и сопутствующей документации для выявления несоответствий получаемых результатов от ожидаемых результатов, описанных в требовании.
Тестирование направлено на повышение качества продукта.
Главная задача тестирования - не сломать программу, а предупредить на как можно более ранних этапах дефекты/баги и устранить их до финальной версии продукта.
Тестировщик также может привнести изменения в продукт, взглядом со стороны заказчика, то есть если разработчик не заходит дальше проведенной аналитики и делает как там написано в постановке, то тестировщик в процессе тестирования может предложить какие-то свои варианты от простых: поменять цвет кнопочки, потому что корпоративный цвет заказчика градиентный серый, до более сложных: программа работает как написано в аналитике, но тестировщик знает что заказчик хотел другой алгоритм бизнес процесса, с этим можно пойти и попробовать улучшить продукт.
QA - это совокупность мероприятий, охватывающих все технологические этапы разработки, выпуска и эксплуатации ПО и информационных систем, предпринимаемых на разных стадиях жизненного цикла ПО, для обеспечения требуемого уровня качества выпускаемого продукта.
QC - контроль качества (quality control): рабочие методы и активности, нацеленные на выполнение требований к качеству, являющиеся частью управления качеством.