3. Относительная стоимость исправления
багов
3
Phase in Which Found Cost Ratio
Requirements 1
Design 3-6
Coding 10
Unit/Integration Testing 15-40
System/Acceptance Testing 30-70
Production 40-1000
4. Требования. Определения
4
Требования – это спецификация того, что
должно быть реализовано.
Требования описывают то, что
необходимо реализовать, без детализации
технической стороны решения
Что, а не как
5. Почему проекты не всегда успешны?
5
Требования и спецификации неполны
Требования и спецификации слишком часто
изменяются.
При составлении требований мнение
пользователей слабо учитывалось.
9. Прослеживаемость требований
9
User Functional Design Code Test
Require Requirement Element Module Case
ment
UC-28 catalog.query.sort Class catalog.sort() search.7
catalog search.8
UC-29 catalog.query. Class catalog. search.12
import catalog import() search.13
catalog. search.14
validate()
Changes are not so dangerous
when you can manage them
11. Процесс тестирования требований
11
1. Validate requirements against objectives
2. Apply scenarios against requirements
3. Perform initial ambiguity review
4. Perform domain expert reviews
5. Create cause-effect graph
6. Logical consistency check by RBT Tool
7. Review of test cases by specification writers
8. Review of test cases by users
9. Review of test cases by developers
10. Walk test cases through design
11. Walk test cases through code
12. Execute test cases against code
13. Review: Участники
13
Автор работы
Автор(ы) предшествующих документов
Те, кто впоследствии будут использовать
данный документ в своей работе
Те, кто отвечают за уже существующие
продукты, которые должны будут
взаимодействовать с проектируемым
14. Review: Роли
14
Author
Moderator
Reader
Recorder
17. Ambiguity Review
17
это проверка требований, чтобы убедиться в
том, что они написаны ясным, четким и
недвусмысленным образом.
осуществляется до анализа требований
экспертом в предметной области.
18. Ambiguity review check list
18
The dangling Else Built-in assumptions
Ambiguity of reference Ambiguous precedence
Scope of action relationships
Omissions Implicit cases
Ambiguous logical Etc.
operators I.E. versus E.G.
Negation Temporal ambiguity
Ambiguous statements Boundary Ambiguity
Random organization
19. Неоднозначные термины
19
acceptable, adequate
as much as practicable
at least, at a minimum, not more than, not to exceed
between
depends on
efficient
fast, rapid
flexible
20. Неоднозначные термины
20
improved, better, faster, superior
including, including but not limited to, and so
on, etc., such as
maximize, minimize, optimize
normally, ideally
optionally
reasonable, when necessary, where appropriate
22. Ambiguity Review : Example
22
V.1 The expert system should be able to recognize and
identify potential critical situations.
It is not
Unambiguous, Complete, Correct, Feasible
• What does it mean “potential critical
situations”?
• How can this be done?
• How can the system recognize and identify
critical situations?
It’s unverifiable.
23. Ambiguity Review : Example
23
V.2 The expert system should keep a history of the
V.2 The history of the
values that itit is reading at specific time intervals.the
values that is reading at specific time intervals. If If
values has has risen considerably without any obvious
the values risen considerably without any obvious
reason during the last ten measurements, the expert
reason during the the expert
system will inform it.
system will inform it.
• What values should be gathered by the system?
• How deep should be the history?
• What does “specific time interval” mean exactly?
• What is “risen considerably”?
• What is “obvious reason”?
• Will? The word “will” identifies an ambiguity called a “Dangling Else”.
The sentence with “will” in it tells us what is normally expected to
happen
• It? Whom exactly and in what form?
24. Ambiguity Review : Example
24
V.3 The expert system should keep monthly history of the
pressure and temperature, that are read every 60 seconds.
The values and time of the measurement should to be
stored in DB. If pressure has risen on more then 10 pts
and variation of temperature is less then 3 pts, then the
IPC system should display to the operator message
“Warning: critical rising of pressure” and produce alarm
signal. The warning message should be displayed until an
operator presses button “close” (Sketch
Warning.CritialPressure)
25. Problems in requirements
25
The most of the configuration settings of IPS IPS system
The most of the configuration settings of system shall
be easily upgradeable in future versions versions
shall be easily upgradeable in future
It is ambiguous: How could we determine that it is
“easily”
It’s incomplete:
What do “upgradeable” mean? How (in what way) should it be done?
Which exactly settings do “the most of configuration settings”
include?
In what number of version this functionality will be necessary?
It’s unverifiable.
26. Problems in requirements
26
The IPC system should not allow an operator functions
The IPC system should not allow an operator functions,
,the consequences of which might be disastrous.
the consequences of which might be disastrous.
It’s incomplete and unverifiable:
What does “disastrous” mean?
“may be” is very fuzzy, “may be” but “may be not”. How
can be verified the functions the results of which might
be disastrous?
What does “should not allow” mean? Someone can
assume that buttons for some functions will be
disabled, another - that an operator will not see such
functions, another one that the IPC system should
produce alarm message.
27. Some more bugs
27
Simplify the installation as much as possible by
including dependencies in our installer where it is
possible and makes sense.
Follow standard Linux installations concepts where
possible.
Provide a suitable installation package for each
support operating system.
28. Тестирование требований: Базовые подходы
28
1. Context free questions
2. Writing test cases
3. Models, Diagrams
Use-Case Diagram
Data Flow Diagram
Entity Relationships Diagram
State-Transition Diagram
Activity diagram
Class diagram
Decision Tables and Decision Trees
29. Определите критерии приема
продукта
29
Спросите пользователей, как они будут
определять, отвечает ли ли продукт их
потребностям и подходит ли для
использования.
Основывайте приемо-сдаточное тестирование
на сценариях использования
30. Симптомы проблем с требованиями
30
Перерасход бюджета
Срыв сроков
Продукт не удовлетворяет заказчика
Постоянные переписывания кода
Демотивация команды
Упущенная рыночная ниша
Неприятие продукта рынком
31. Преимущества качественных
требований
31
Уменьшение затрат на переделки
Меньше ненужного кода
Более быстрая разработка
Уменьшение хаоса в проекте
Довольные заказчики и команда
34. Cause-Effect graph
34
The error message shall appear when the
measurement on operator demand is not done, and
there are problems with network or invalid sensor ID
Cause
A - when the measurement on operator demand is not done
B - there are problems with network
C - or invalid sensor ID
Effect
E - The error message shall appear
37. Check List Example for Review
(focused on Correctness)
37
Do any requirements conflict with or duplicate other
requirements?
Is each requirement written in clear, concise, and
unambiguous language?
Is each requirement verifiable by
testing, demonstration, review, or analysis?
Is each requirement in scope for the project?
Is each requirement free from content and grammatical
errors?
Can all the requirements be implemented within known
constraints?
Are all specified error messages unique and meaningful?
Hinweis der Redaktion
1. Validate requirements against objectives. Compare the objectives, which describe why the project is being initiated, to the requirements, which describe what is to be delivered. The objectives define the success criteria for the project. If the what does not match the why, then the objectives cannot be met, and the project will not succeed. If any of the requirements do not achieve the objectives, then they do not belong in the project scope.2. Apply scenarios against requirements. Apply scenarios against requirements. A scenario is a task oriented users’ view of the system. The individual requirements, taken together, must be capable of satisfying any scenario; otherwise the requirements are incomplete.3. Perform an initial ambiguity review. An ambiguity review is a technique for identifying and eliminating ambiguous words, phrases, and constructs. It is not a review of the content of the requirements. The ambiguity review produces a higher quality set of requirements for review by the rest of the project team.4. Perform domain expert reviews. The domain experts review the requirements for correctness and completeness.5. Create Cause-Effect Graph. The requirements are translated into a Cause-Effect Graph, which provides the following benefits:o It resolves any problems with aliases (i.e., using different terms for the same cause or effect).o It clarifies the precedence rules among the requirements (i.e., what causes are required to satisfy what effects).o It clarifies implicit information, making it explicit and understandable to all members of the project team.o It begins the process of integration testing. The code modules eventually must integrate with each other. If the requirements that describe these modules cannot integrate, then the code modules cannot be expected to integrate. The cause-effect graph shows the integration of the causes and effects.o Cause-Effect Graphs may look intimidating on the surface. They would appear to need someone with a formal logic background or electricalengineering background to create them. However, all you need to know to build them is the definition of “AND”, “OR”, and “NOT”. If you are in thesoftware profession and unsure of these three terms then it is time for a career change.6. Logical consistency checks performed and test cases designed by BenderRBT tool.The tool identifies any logic errors in the cause-effect graph. The output from the tool is a set of test cases that are 100 percent equivalent to the functionality in the requirements.7. Review of test cases by requirements authors. The designed test cases are reviewed by the requirements authors. If there is a problem with a test case, the requirements associated with the test case can be corrected and the test cases redesigned.8. Validate test cases with the users/domain experts. If there is a problem with the test case, the requirements associated with it can be corrected and the test case redesigned. The users/domain experts obtain a better understanding of what the deliverable system will be like. From a Capability Maturity Model® IntegrationSM (CMMISM) perspective, you are validating that you are building the right system.9. Review of test cases by developers. The test cases are also reviewed by the developers. By doing so, the developers understand what they are going to be tested on, and obtain a better understanding of what they are to deliver so they can deliver for success.10. Use test cases in design review. The test cases restate the requirements as a series of causes and effects. As a result, the test cases can be used to validate that the design is robust enough to satisfy the requirements. If the design cannot meet the requirements, then either the requirements are infeasible or the design needs rework.11. Use test cases in code review. Each code module must deliver a portion of the requirements. The test cases can be used to validate that each code module delivers what is expected.12. Verify code against the test cases derived from requirements. The final step is to build test cases from the logical test cases that have been designed by adding data and navigation to them, and executing them against the code to compare the actual behavior to the expected behavior. Once all of the test cases execute successfully against the code, then it can be said that 100 percent of the functionality has beenverified and the code is ready to be delivered into production. From a CMMI perspective, you have verified that you are building the system right.
The document conforms to the standard template.The document has been spell-checked.The author has visually examined the document for any layout errors.Any predecessor or reference documents that the inspectors will require to examine the document are available.Line numbers are printed on the document to facilitate referring to specific locations during the inspection meeting.All open issues are marked as TBD (to be determined).The moderator didn't find more than three major defects in a ten-minute examination of a representative sample of the document.___All issues raised during the review have been addressed.Any changes made in the document and related work products were made correctly.The revised document has been spell-checked.All TBDs have been resolved, or each TBD's resolution process, target date, and owner has been documented.The document has been checked into the project's configuration management system
Intelligent Process Control (IPC) System for the board production technological process, based on the expert system