1.1) Motivation and Terms Flashcards
Although it is only after its completion that a software system can be fully tested to ensure that it has met the stipulated requirements, the risk of only conducting quality assurance for a software process after implementation is too high. For this reason, in software engineering, quality assurance is carried out in parallel with all other accompanying activities.
Why is it risky to conduct quality assurance only after software implementation?
Because detecting issues post-implementation can lead to increased costs, time delays, and critical failures. Therefore, QA must be carried out in parallel with all other development activities to mitigate risks early.
When is quality assurance carried out in software engineering?
QA is conducted throughout the entire software development process—in parallel with requirements gathering, design, development, and testing—to ensure consistent quality and early detection of issues.
What is the ISO/IEC 25010:2011 definition of software quality?
“Software quality [is the] degree to which a software product satisfies stated and implied needs when used under specified conditions.”
According to ISO/IEC 25010:2011, how is software quality determined?
By assessing whether the software meets the specified requirements under defined conditions. The specification acts as a baseline for evaluation.
Why is it important to ensure that specified requirements match actual customer needs?
Because perceived quality is influenced by how well the software meets real (often evolving) user expectations, not just the initially documented requirements.
What software artifacts, in addition to the final product, should be included in quality assessments?
Software models, requirements, architectures, documents, and components—all artifacts created during development.
What is the definition of Quality Management (QM) in software engineering?
QM includes all organized measures to improve the quality of products, processes, or services. It focuses not just on the final product but on all parts of the software development lifecycle.
Why must quality management also include early-phase artifacts like requirements and architecture?
Because errors in these early stages can propagate directly to implementation, affecting the final product’s quality.
What are the four typical activities included in software quality management?
- Quality planning – Defining and documenting quality requirements with stakeholders
- Quality control – Monitoring and managing QA testing activities
- Quality assurance (QA) – Ensuring defined quality requirements are met
- Quality improvement – Analyzing product/process data to raise quality standards
What are the two fundamental types of quality management in software engineering?
Constructive quality management and analytical quality management.
What is constructive quality management?
It involves defining quality attributes before the creation of products or processes to prevent errors and ensure/improve the quality of created artifacts.
What are the goals of constructive quality management?
To prevent defects during development by ensuring quality is built into the process and tools from the beginning.
Please list the measures for constructive quality management.
- Technical measures (use of modeling languages, development tools, and IDEs)
- Organizational measures (use of guidelines, standards, templates, and checklists)
- Interpersonal measures (training programs, creating a positive work climate, and encouraging joint team activities)
What is analytical quality management?
It involves evaluating and examining artifacts after creation (ex post) to detect errors and assess their severity.
What is the main goal of analytical quality management?
To identify and measure existing defects in software artifacts through systematic evaluation.
What types of testing procedures are used in analytical quality management?
Static and dynamic testing procedures.
What is the key difference between constructive and analytical quality management?
Constructive QM prevents defects before development; analytical QM detects defects after development.
What are static procedures (or static tests) in software quality management?
Tests where the software artifact is analyzed without execution—typically via reviews or inspections. Collected information may be condensed into metrics and evaluated.
What are dynamic procedures (or dynamic tests)?
Tests that involve executing the software with specific input values and evaluating the results of that execution.
Which type of artifacts can be tested using dynamic testing?
Only executable artifacts, such as running code or systems, can be tested dynamically.
Which type of testing is used for non-executable artifacts like requirements or architecture descriptions?
Static testing is used, such as reviews or inspections.
How can constructive quality management impact analytical quality management?
Effective constructive QM can reduce the amount of work required in analytical QM by preventing defects early on.
What is a test object in the context of software testing?
Any artifact created in software development that is examined for quality—this includes source code, business requirements, technical specs, architectures, and test cases.
True or False: Only source code can be considered a test object.
False. All artifacts including requirements, design documents, and test cases can be test objects.