как разработать тестовый пример

Это может быть довольно наивным вопросом для большинства из вас, но я немного смущен этим.

, когда нам нужно разработать тестовый пример для какой-либо программы, как мы узнаем, каково ожидаемое значение/результат. Программа может выполнять некоторые сложные вычисления и использовать сложные алгоритмы для вычисления конечного результата, который может быть невозможно вычислить другими способами. Даже если мы должны были вычислять на том же входе с использованием других средств, а затем использовать выходное значение таким средним значением в качестве ожидаемого значения для проверки нашей исходной программы, то как мы можем быть уверены, что ожидаемое значение, которое было вычислено из другой программы/среднее значение было правильным, чтобы убедиться, что программа также должна быть проверена, и поэтому мы вернемся к квадрату.

0

3 ответы

Если расчет слишком сложный, чтобы понять его на бумаге с помощью калькулятора, то как бы вы могли его запрограммировать? Даже если вычисление должно выполняться небольшими шагами, вы можете написать несколько разных тестовых примеров на бумаге и проверить этот шаг расчета в программе и проложить себе путь через него. Компьютер может делать только то, что человек говорит ему.

2
добавлено
@Bilal You может решить его вручную, это займет некоторое время. Но как еще вы собираетесь это делать? Когда вы это делаете, и вы пишете тестовые примеры, вам нужно выполнить те же шаги, что и ваша программа, и написать новые значения для всех операторов присваивания и убедиться, что они именно то, что вы ожидаете от них.
добавлено автор Nick Rolando, источник
Я не совсем следовал за вами, если программа реализует алгоритм, как наш тестовый пример проверяет правильность реализации алгоритма? это может показаться очень простым вопросом, но я новичок в тестировании.
добавлено автор comatose, источник
Например, в настоящее время я работаю над проблемой, которая является чем-то вроде проблемы с рюкзаком, теперь, если я хочу написать тестовый пример для этой программы, которую я реализовал, как я могу продолжить? Я могу написать некоторые случаи для небольших входов (где я могу решить это с помощью карандаша/бумаги), но что, если я хочу проверить программу на большие входы, я не могу решить это вручную, так как я могу это проверить?
добавлено автор comatose, источник
Я тоже не мог придумать какую-либо другую альтернативу, но подумал, что, может быть, был какой-то «волшебный» способ, так или иначе, я получаю это сейчас, спасибо
добавлено автор comatose, источник

Ваш вопрос не имеет смысла.

Тестирование - это деятельность по обработке системного теста как черного ящика. То, что вы запрашиваете у системы (в вашем случае: расчет), в основном таково: Хорошо, когда я передаю метод с этими значениями, тогда я хочу, чтобы он возвращал это значение .

Просто нет другого пути, кроме как заранее знать, что должно быть результатом операции. В некоторых случаях может быть много работы, но все остальное будет логически непоследовательным, и это будет проверять только тот факт, что автор теста знает, как использовать среду тестирования ...

1
добавлено

У вашего вопроса возникает самая сложная проблема при тестировании программного обеспечения, известная как проблема «оракула».

Для поддержки тестирования мы хотели бы иметь надежный источник ожидаемых результатов для любого ввода теста. В большинстве сценариев тестирования это по существу означает, что у нас есть эквивалент идеальной, без ошибок реализации тестируемой системы. Конечно, если бы у нас было это, мы, вероятно, могли бы пропустить разработку SUT и его тестирование.

Но обычно это не так. Таким образом, существует множество практических (и некоторых экзотических) стратегий для получения ожидаемых результатов для тестовых случаев. Это может быть так же просто, как использование электронной таблицы для вычисления функций, выбора некоторых запросов, которые имеют результаты поиска, или сравнения вывода существующей эквивалентной или подобной системы с выводом тестируемой системы.

Глава 18 моей книги Тестирование объектно-ориентированных систем предоставляет 16 шаблонов проектирования для оракулов, большинство из которых могут быть автоматизированы.

This page gives a summary of the book and links to Amazon http://www.robertvbinder.com/home/thought-leadership/books/

боб

1
добавлено
QA — вакансии и аналитика рынка вакансий
QA — вакансии и аналитика рынка вакансий
5 668 участник(ов)

Вакансии и поиск работы в сфере QA. Вопросы: @qa_ru Про деньги: @qa_fin При размещении вакансии указывать: - должность - компанию - требования к кандидату - условия и ЗП хэштеги: #город #типзанятости

QA — русскоговорящее сообщество
QA — русскоговорящее сообщество
3 625 участник(ов)

Общаемся про все виды тестирования и его автоматизацию. Без мата, грубостей и провокаций. События: @qaevents Вакансии: @qa_jobs Автоматизаторы: @qa_automation Слухи про компании: @qa_bad_company

QA juniors
QA juniors
2 720 участник(ов)

Добро пожаловать в чат джуниоров QA! Общаемся обо всём, что связано с тестированием и не только :) В чате царит дружественная атмосфера, поэтому общаемся без мата, грубостей. @qa_automation - автоматизация @serious_tester - для тестировщиков и QA

QA - Bad Company!
QA - Bad Company!
2 602 участник(ов)

Позитив и негатив про компании или курсы, куда не стоит идти работать или учиться, а куда стоит. За пиратский контент - бан. @qa_fin о деньгах Русскоговорящее сообщество: @qa_ru Флудилка: @qaFlood Вакансии: @qa_jobs Финансы: @qa_fin

QA — Автоматизация
QA — Автоматизация
2 434 участник(ов)

1. Обсуждение технологий автоматизированного тестирования 2. Помощь начинающим Ru-сообщество: @qa_ru Джуночат: @qajuniors Вакансии: @qa_jobs Финансы: @qa_fin Митапы и события: @qaevents Паблики: @serious_tester, @automation_remarks, @atinfo

QA - Finance
QA - Finance
1 347 участник(ов)

Чат о деньгах тестировщиков. ЗП, релокейты,оферы. @qa_bad_company - обсуждение компаний/курсов и карьерного роста для QA @qa_automation - авто QA Холивары, политика, религия-бан Реклама, спам, оскорбления - бан Для флуда используйте другой чат