Conducting
Verification & Validation following DO178B guidelines
In
the avionics industry, software was used to extend and modify the capabilities
of mechanical and analog systems. This was done in a manner much simpler
than redesigning or modifying the hardware components. It was seen as
an aid to inexpensive modification and functional extension of an originally
inflexible all-hardware design. During system certification, it became
clear that the classical statistical methods of safety assessment for
flight critical software based systems were not possible. This is because
unlike hardware where you have MTBF (Mean Time Between Failures), software
either works or doesn’t! Hence alternate knowledge and method(s) were
necessary to establish equivalent integrity to deal with design errors.
Imagine you have alighted the aircraft to go across the Atlantic from
London to Newyork. You come to know that the software which your team
has developed & verified is the one which is used in the Aircraft which
you are about fly! Would you be desperate to get out of the Airplane
? Or would you be relaxed in the knowledge that nothing would happen
to the plan because of the software you developed?
Need for Standard
Because of the life criticality involved in the avionics software, it
became necessary to establish a uniform, consistent definition of criteria
for substantiating evidence for the absence of critical design errors,
answering the following questions:
1.How was it known that the testing was comprehensive and complete?
2.How was it known that the system requirements were comprehensive and
complete?
3.How was it known that the software requirements were comprehensive
and complete and interpreted the system requirement accurately?
4.How do we provide proof that a design or implementation error, which
may be present, cannot produce a safety critical situation?
Verification and Validation became new terms. Verification provided
the proof that a system was built to the requirements and validation
established that the requirements were complete and correct.
Developing
a software for Aircraft differs from :
- developing
software for other embedded systems like entertainment electronics
which become obsolete fast as their customer is bothered about
new fashionable features rather than the safety of the equipment.
Here the schedule is entirely driven by market needs which often
vary substantially in a year
- developing
regular computer software like a word processor where business/life
criticality are neglible but compatibility with older versions,
adhering to defacto standards and again meeting the market expectations
is more important. Here again the quality is compromisable.
- Banking
software where there is a financial risk but unlike Aerospace
software, risks concerning interfacing to external hardware
is minimal. Also Banking software may not be responsible (i.e.,
directly) for killing it’s user.
In aircraft risk for life (pilot, crew, passangers) as well
as great financial risk is there. Also the software you write
does not change for 15 to 20 years and hence the stringent standard
...
Hence it requires that the avionics software be produced such
that it minimizes or removes the risk of a malfunction or failure.
This gave birth to DO-178.
|
Key
information on DO178B
The verification of such a software as per DO-178B standards depends
on the level of criticality of the software. Software level is based
upon the contribution of software to potential failure conditions as
determined by the system safety assessment process. The software level
implies that the level of effort required to show compliance with FAA
(Federal Aviation Administartion) certification requirements varies
with the failure condition category.
The software level definitions are:
a. Level A: Software whose anomalous behavior, as shown by the
system safety assessment process, would cause or contribute to a failure
of system function resulting in a catastrophic failure condition for
the aircraft. For example software whose failure conditions would prevent
continued safe flight and landing.
b. Level B: Software whose anomalous behavior, as shown by the
system safety assessment process, would cause or contribute to a failure
of system function resulting in a hazardous/severe-major failure condition
for the aircraft. For example software whose failure conditions would
reduce the capability of the aircraft or the ability of the crew to
cope with adverse operating conditions to the extent that there would
be physical distress or higher workload such that the flight crew could
not be relied on to perform their tasks accurately or completely.
c. Level C: Software whose anomalous behavior, as shown by the
system safety assessment process, would cause or contribute to a failure
of system function resulting in a major failure condition for the aircraft.
For example software whose failure conditions would reduce the capability
of the aircraft or the ability of the crew to cope with adverse operating
conditions to the extent that there would be a significant increase
in crew workload.
d. Level D: Software whose anomalous behavior, as shown by the
system safety assessment process, would cause or contribute to a failure
of system function resulting in a minor failure condition for the aircraft.
For example software whose failure conditions would cause slight increase
in crew workload, such as, routine flight plan changes, or some inconvenience
to occupants.
e. Level E: Software whose anomalous behavior, as shown by the
system safety assessment process, would cause or contribute to a failure
of system function with no effect on aircraft operational capability
or pilot workload.
| |
|
|
|
|
|
|
|
|
|
|
Objective |
|
Applicabilty by SW level |
Output |
|
|
|
Description |
Ref.(DO-178B) |
A |
B |
C |
D |
Description |
|
|
1 |
Test
procedures are correct. |
6.3.6b |
l |
m |
m |
|
Software
Verification Cases and Procedures |
|
|
2 |
Test
results are correct and discrepancies explained. |
6.3.6c |
l |
m |
m |
|
Software
Verification Results |
|
|
3 |
Test
coverage of high-level requirements is achieved. |
6.4.4.1 |
l |
m |
m |
m |
Software
Verification Results |
|
|
4 |
Test
coverage of low-level requirements is achieved. |
6.4.4.1 |
l |
m |
m |
|
Software
Verification Results |
|
|
5 |
Test
coverage of software structure (modified condition/decision) is
achieved. |
6.4.4.2 |
l |
|
|
|
Software
Verification Results |
|
|
6 |
Test
coverage of software structure (decision coverage) is achieved. |
6.4.4.2a
6.4.4.2b |
l |
l |
|
|
Software
Verification Results |
|
|
7 |
Test
coverage of software structure (statement coverage) is achieved. |
6.4.4.2a
6.4.4.2b |
l |
l |
m |
|
Software
Verification Results |
|
|
8 |
Test
coverage of software structure (data coupling and control coupling)
is achieved. |
6.4.4.2c |
l |
l |
m |
|
Software
Verification Results |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The
following verification documents supporting compliance to DO-178B need
to be produced:
1.Software Verification Plan
2.Software Verification Cases and Procedures ( Unit and Integration
test plan and procedures)
3.Qualification test procedures (Formal Evaluation Plan and Procedures)
4.Problem Reports
5.Software Verification Results
The planning of verification activities (like writing software verification
plan, various test plans) is mandatory for a project which follows DO-178B
standard. Also as illustrated in the verification effort table, based
on the level of the software, structural coverage is very stringent
when compared to a ‘regular’ project. Submission of problem reports
to the certification authority is a must.
In general, managing Verification activities poses lots of problems.
- Any delay
in the development activities directly relates to slippage of
verification activities. The project manager is therefore typically
forced to shorten the verification time which puts lots of pressure
on the verification team.
- If the
defects found by the verification team are not documented systematically,
they may remain unsolved and finally remain unverified by the
evaluator again.
- Poor documentation
of the defects may lead to inefficient monitoring of project
progress. This leads to poor tracking of defects.
|
The planning and co-ordination of verification activities amongst the
team can be made easy and handled efficiently by using tools like SmartWorks. I used this tool inorder to achieve my objectives.
SmartWorks
–Project Planner can be used to plan the entire verification process
activities. The various activities like writing test plans (Unit test
plan, integration test plan, Formal evaluation plan), performing code
review, conducting the various tests as per their plans, generating
reports…..can be created as tasks in Project Planner with task owner and the planned
start and end date being assigned. Project Planner automatically sends a mail notifying
the owners of their assignments. The document generated as a result
of any task can be attached against the task. This allows the maintenance
of the documents electronically. For example the test cases and procedure
documents can be attached against its task and hence viewed by all the
team members.
The
status of the task (new task, task completed) can be maintained in Project Planner.
The task owner is reminded with a mail if the task is not completed
when the planned end date approaches. This helps one to monitor the
project progress efficiently. Also whenever a change in plan occurs
(may be due to slippage, attrition or cost escalation) Project planner
recognizes that a risk had happened and suggests contingency plan from
it's database. This helps the team to know how many risks happened during
the course of a project and how effective were the contingency plans
in handling the risks. It allows you to import risk database from similar
projects done in the past by a company. This allows the project manager
to be well prepared for the risks which are likley to occur and quickly
take effective corrective action
SmartWorks - Smart Tracker can be used for defect tracking.
Smart Tracker allows one to customize many of its features suiting their
project needs. For example, the templates for problem, response and
verification reports can be customized based on specific project needs.
The evaluator submits defects while conducting testing. This forms the
problem reports
The
PL/ PM of the project assigns the solver and the verifier of the defect.
Smart Tracker notifies the solver /verifier of the assignment with a mail. After
solving the defect, the solver fills in the response report in Smart Tracker.
The verifier then verifies that the defect has been fixed (QA Passes)
and fills in the verification report. In case the verifier finds that
the problem is still not fixed, he/she makes the status of the defect
as ‘QA Failed’ which signals the developer that the problem is not yet
fixed. This cycle continues till the verifier finally verifies that
the problem is fixed.
At any point of time PM/PL can therefore monitor the project progress
and replan a task if need be. Project Planner allows one to replan the
task and associate the risk factor with it due to replanning.
To
conclude I would say, SmartWorks helps a long way in planning and tracking
the verification activities. However I would appreciate, if it
was integrated with a testing tool, which submits a report (test case
id and the result) automatically in the Smart Tracker.
Vasanthi
heads the verification & validation team at Accord Software &
System which is currently engaged in executing a
project which adheres to DO178B standards. The project is concerned
with evaluating a navigation equipment for flight worthiness and eventual
FAA certification. In case you have any questions you may reach her
at whitepapers@accord-soft.com