#19 Verification, Validation & Testing - Improvements to address needs of Software Engineering change request deferred
Should the description of skills related to verification / validation activities be standalone or embedded in each individual software engineering related skill.
So, for example, should the skill descriptions for Requirements Definition and Management (REQM), Software development / programming (PROG), Systems design (DESN) include the descriptions of the activities required to verify / validate the associated work products or should they be stand-alone SFIA skills.
Validation
- The purpose of Validation is to demonstrate that a product or product component fulfills its intended use when placed in its intended environment.
Verification
- The purpose of Verification is to ensure that selected work products meet their specified requirements.
Reasons to create standalone skills:
- The importance of Verification and Validation is a key component of an engineering culture and ethics
- Making Verification and Validation stand-alone skills can be seen as key differentiator between organisations / individuals who are focused on “programming and software testing” versus an engineering mindset which verifies and validates its products throughout the software engineering life-cycle.
- Extracts from SWEBOK Chapter 10: Software Quality
- 10.1.1 “Software engineers are expected to share a commitment to software quality as part of their culture.”
- 10.1.3.2 “While some treatments of quality are described in terms of final software and system performance, sound engineering practice requires that intermediate work-products relevant to quality be evaluated throughout the software engineering process.”
- 10.1.4 “prevention and early detection of defects, continual improvement, and stakeholder focus—are pertinent to software engineering.”
- 10.2.2 Verification is an attempt to ensure that the product is built correctly, in the sense that the output products of an activity meet the specifications imposed on them in previous activities. Validation is an attempt to ensure that the right product is built—that is, the product fulfills its specific intended purpose. Both the verification process and the validation process begin early in the development or maintenance phase. They provide an examination of key product features in relation to both the product’s immediate predecessor and the specifications to be met.
Engineering culture | Programming / Software Testing culture |
---|---|
|
|
Example | Example |
|
|
A similar distinction can be introduced for other roles involved Software Engineering & Software Development.
Reasons to embedded the activities in the individual skill descriptions
- Streamline the number of skills
- Emphasise that good practice in programming, requirements, design etc. implies the use of verification and validation
- Emphasises that these activities are not “optional”
Background
This change request is one of a number which are proposing revisions to SFIA to ensure it fully supports Software Engineering while retaining overall industry wide applicability and integrity.
The updates will support:
- The Software Engineering & Technology industry, it's employers and professionals to close skill gaps, attract and retain talent and improve the performance and productivity of engineers
- Alignment of Software Engineering training / accreditation
- Professional development through the IEEE-CS and other professional bodies representing software engineers
- Universities, technical institutes, and other higher education organisations to support professional education and accreditation and enhance the employability of their students
Also need to consider the relationship (e.g. unique skills and overlapping skills) between Software Engineering and IT.
Current status of this request: deferred
What we decided
Will be kept in the backlog of change requests and considered during continuous consultation.
Consider wrt to mapping of SFIA to Systems engineering life cycle models as well.