Проверки и Приемки — различия между версиями

м (Классическая V&V)
м
Строка 1: Строка 1:
 
'''[[Верификация]]''' (verification) — это проверка того, что система соответствует какому-то описанию целевой системы (требованиям, архитектуре, неархитектурной части проекта).
 
'''[[Верификация]]''' (verification) — это проверка того, что система соответствует какому-то описанию целевой системы (требованиям, архитектуре, неархитектурной части проекта).
  
'''[[Валидация]]''' (validation) — это проверка того, что использующая система соответствует желаемому стейкхолдером её описанию, если в её составе работает целевая система.
+
'''[[Валидация]]''' (validation) — это проверка того, что использующая система соответствует желаемому стейкхолдером её описанию, если в её составе работает целевая система.
  
 
Очень частая ошибка: забывают о необходимости валидации (приемке). В результате система удовлетворяет инженеров, которые эту систему сделали в соответствии со спецификациями, но не удовлетворяет стейкхолдеров: испытания должны проводиться не только для целевой системы (проверки), но и для использующей системы (приёмка!). Только после приёмки (то есть удостоверения в том, что использующая система работает как надо) системные инженеры могут считать, что их работа выполнена.  
 
Очень частая ошибка: забывают о необходимости валидации (приемке). В результате система удовлетворяет инженеров, которые эту систему сделали в соответствии со спецификациями, но не удовлетворяет стейкхолдеров: испытания должны проводиться не только для целевой системы (проверки), но и для использующей системы (приёмка!). Только после приёмки (то есть удостоверения в том, что использующая система работает как надо) системные инженеры могут считать, что их работа выполнена.  
Строка 20: Строка 20:
 
* [http://courses.csail.mit.edu/6.141/spring2013/pub/lectures/Lec07-SystemEngineering.pdf слайды занятия: что обсуждается в «тестовых стратегиях» (и чуть-чуть про тестирование роботов)].
 
* [http://courses.csail.mit.edu/6.141/spring2013/pub/lectures/Lec07-SystemEngineering.pdf слайды занятия: что обсуждается в «тестовых стратегиях» (и чуть-чуть про тестирование роботов)].
  
== TDD ==
+
== Разработка через тестирование ==
'''TDD (test driven development)''' - разработка софта, вариант [[agile]] методологии разработки
+
'''TDD (test driven development)''' разработка программного обеспечения, вариант [[agile]] методологии разработки
 
* [http://ailev.livejournal.com/1015692.html driven против based];
 
* [http://ailev.livejournal.com/1015692.html driven против based];
 
* [http://en.wikipedia.org/wiki/Testdriven_development тестоориентированная разработка];
 
* [http://en.wikipedia.org/wiki/Testdriven_development тестоориентированная разработка];
Строка 27: Строка 27:
 
* [http://www.ambysoft.com/essays/agileTesting.html что ещё кроме TDD бывает в agile] (а именно, developer TDD, developer regression testing, reviews/inspections, end of lifecycle testing, acceptance TDD, parallel independent testing, independent regression testing).
 
* [http://www.ambysoft.com/essays/agileTesting.html что ещё кроме TDD бывает в agile] (а именно, developer TDD, developer regression testing, reviews/inspections, end of lifecycle testing, acceptance TDD, parallel independent testing, independent regression testing).
  
== Model-based testing ==
+
== Тестирование на основе моделей ==
 
'''Model-based testing''' (и по сопричастности test automation) - приходится разбираться, как устроена предметная область – т.е. что такое испытания как таковые.
 
'''Model-based testing''' (и по сопричастности test automation) - приходится разбираться, как устроена предметная область – т.е. что такое испытания как таковые.
 
* [http://en.wikipedia.org/wiki/Model-based_testing model-based testing];
 
* [http://en.wikipedia.org/wiki/Model-based_testing model-based testing];
Строка 34: Строка 34:
 
* [http://penxy.com/joso обезьянки против роботов (на русском)] ([http://penxy.com/wylo 2]) ([http://penxy.com/rygi 3]).
 
* [http://penxy.com/joso обезьянки против роботов (на русском)] ([http://penxy.com/wylo 2]) ([http://penxy.com/rygi 3]).
  
== Test of Cyber-physical systems (control system engineering) ==
+
== Тестирование киберфизических систем ==
 
* [https://www.linkedin.com/groups/Difference-between-MIL-SIL-PIL-%20109866.S.167229094 разница в Model in loop(MIL), Software in loop(SIL), Processor in loop(PIL), Hardware in loop(HIL)];
 
* [https://www.linkedin.com/groups/Difference-between-MIL-SIL-PIL-%20109866.S.167229094 разница в Model in loop(MIL), Software in loop(SIL), Processor in loop(PIL), Hardware in loop(HIL)];
 
* [http://home.hit.no/~hansha/documents/lab/Lab%20Work/HIL%20Simulat%20ion/Background/Introduction%20to%20HIL%20Simulation.pdf hardware-in-the-loop];
 
* [http://home.hit.no/~hansha/documents/lab/Lab%20Work/HIL%20Simulat%20ion/Background/Introduction%20to%20HIL%20Simulation.pdf hardware-in-the-loop];
Строка 42: Строка 42:
 
== Моделирование инженерных обоснований ==
 
== Моделирование инженерных обоснований ==
 
{{Main|Обоснование заявленных свойств}}
 
{{Main|Обоснование заявленных свойств}}
 +
 +
== См. также ==
 +
* [[Тестирование|Тестирование (компетенция)]]
  
 
[[Категория:Методы]]
 
[[Категория:Методы]]

Версия 20:51, 23 сентября 2018

Верификация (verification) — это проверка того, что система соответствует какому-то описанию целевой системы (требованиям, архитектуре, неархитектурной части проекта).

Валидация (validation) — это проверка того, что использующая система соответствует желаемому стейкхолдером её описанию, если в её составе работает целевая система.

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

Основной тренд: это непрерывное автоматизированное разноуровневое тестирование, на всех этапах жизненного цикла, в том числе в ходе эксплуатации. Практики проверки и приёмки приходят сейчас главным образом из software engineering (как обычно), а потом медленно с лагом 10 лет принимаются системной инженерией. Software_testing - внизу страницы раздел Topics.

На V&V (проверки/приёмки/контроль/тестирование/испытания) приходится до половины всех затрат на разработку!

Как всегда, основной тренд в системной инженерии – это сдвиг всех проверок и приёмок влево на V-диаграмме (см. пост Donald Firesmith – «Four Types of Shift Left Testing»).

Классическая V&V

Разработка через тестирование

TDD (test driven development) — разработка программного обеспечения, вариант agile методологии разработки

Тестирование на основе моделей

Model-based testing (и по сопричастности test automation) - приходится разбираться, как устроена предметная область – т.е. что такое испытания как таковые.

Тестирование киберфизических систем

Моделирование инженерных обоснований

Основная статья: Обоснование заявленных свойств

См. также