Вот категории тестов, которые стоит рассмотреть при тестировании:
Как правило, в условии задач даётся не менее одного примера с входными данными и верным ответом для них. Эти тесты должны быть проверены в первую очередь, с высокой долей вероятности они есть в проверочном наборе. Более того, на тестах из условия обычно можно проверить формат и вид выводимого ответа. В данном случае нужно быть предельно внимательным - часто даже небольшое отличие (не хватает пробелов между элементами, символы в разных регистрах) может привести к вердикту WRONG ANSWER, даже если по сути ответ правильный.
Самое простое что можно протестировать самостоятельно - тесты наименьшего размера. Например, если речь идет о некоторой коллекции элементов, всегда нужно проверять случаи когда элементов всего 1 или даже 0 (конечно, если это предусмотрено интервалами входных параметров). Часто на таких маленьких примерах программы даже ломаются, уходят в бесконечные циклы или даже получают ошибки при обращении к неразрешенному участку памяти. В других случаях, для наименьших тестов может отличаться или не работать логика, корректная для остальных.
Пример: В задаче про обмены можно рассмотреть тесты с массивом из всего 1 элемента, в задаче про 2D массив - массив из одной строки, из одного столбца или совсем из 1 элемента.
Такие тесты обычно содержат граничные допустимые значения переменных задачи. Например, максимально возможное число элементов в соответствии с условием. Или максимально большие значения элементов. Тесты с наибольшими данными призваны проверить несколько вещей:
Несмотря на то, что с опытом оценить время и память часто можно без использования дополнительных тестов, иногда бывает необходимо даже написать отдельную программу, которая генерирует большой тест.
Пример из задачи про суммы:
contest.yandex.ru, Ilya Bychkov’s contest
В задаче про суммы максимальными тестами можно считать:
тесты с граничными значениями элементов ,
$a_{ij} = 10^9$
$a_{ij} = -10^9$
тесты массивов с максимальным числом элементов - например, массив из 500 строк и 500 столбцов
оба пункта выше одновременно