Chapter 2: Testing Throughout the Software Development Lifecycle Flashcards
What are the characteristics of good testing?
For every development activity, there is a corresponding test activity
Each test level has test objectives specific to that level
Test analysis and design for a given test level begin during the corresponding development
activity
Testers participate in discussions to define and refine requirements and design,
Whare are the common software development lifecycle models?
Sequential development models
Iterative and incremental development models
What is incremental model?
Incremental development involves establishing requirements, designing, building, and testing a system in pieces, which means that the software’s features grow incrementally
What is iterative development model?
Iterative development occurs when groups of features are specified, designed, built, and tested together
in a series of cycles, often of a fixed duration.
How can the activity be organized in relation with the model?
Depending on the context of the project, it may be necessary to combine or reorganize test levels and/or
test activities.
software development lifecycle models themselves may be combined. For example, a Vmodel may be used for the development and testing of the backend systems and their integrations, while
an Agile development model may be used to develop and test the front-end user interface (UI) and
functionality. Prototyping may be used early in a project, with an incremental development model adopted
once the experimental phase is complete.
What is IOT?
Internet of Things (IoT) systems, which consist of many different objects, such as devices, products, and
services, typically apply separate software development lifecycle models for each object.
What are the reasons why software development models must be adapted to the context of project and product?
characteristics
Difference in product risks of systems (complex or simple project)
Many business units can be part of a project or program (combination of sequential and agile
development)
Short time to deliver a product to the market (merge of test levels and/or integration of test types
in test levels)
What are the Test Levels?
Test levels are groups of test activities that are organized and managed together.
What are the 4 test levels used?
Component testing
Integration testing
System testing
Acceptance testing
What are the attributes of the test level?
Test levels are characterized by the following attributes: Specific objectives
Test basis, referenced to derive test cases
Test object (i.e., what is being tested)
Typical defects and failures
Specific approaches and responsibilities
What are the Component Testing objectives?
Reducing risk
Verifying whether the functional and non-functional behaviors of the component are as designed
and specified
Building confidence in the component’s quality
Finding defects in the component
Preventing defects from escaping to higher test levels
What are the Component Testing basis, objects and typical failures?
Test basis Detailed design Code Data mode Component specifications Test objects Components, units or modules Code and data structures Classes Database modules Typical defects and failures Incorrect functionality (e.g., not as described in design specifications) Data flow problems Incorrect code and logic
What is test driven development (TDD)?
Test driven development is highly iterative and is
based on cycles of developing automated test cases, then building and integrating small pieces of code,
then executing the component tests, correcting any issues, and re-factoring the code. This process
continues until the component has been completely built and all component tests are passing.
What are the Integration Testing basis, objects and typical failures?
Test basis
Software and system design
Sequence diagrams
Interface and communication protocol specifications Use cases
Architecture at component or system level
Workflows
External interface definitions
Test objects
Subsystems Databases Infrastructure Interfaces APIs Microservices
Typical defects and failures
Examples of typical defects and failures for component integration testing include: Incorrect data, missing data, or incorrect data encoding Incorrect sequencing or timing of interface calls Interface mismatch Failures in communication between components
What types of testing are used at integration level?
Functional, non-functional, and structural test types are applicable.
What are the Objectives of system testing?
Reducing risk
Verifying whether the functional and non-functional behaviors of the system are as designed and
specified
Validating that the system is complete and will work as expected
Building confidence in the quality of the system as a whole
Finding defects
Preventing defects from escaping to higher test levels or production
What are the System Testing basis, objects and typical failures?
Test basis System and software requirement specifications (functional and non-functional) Risk analysis reports Use cases Epics and user stories Models of system behavior State diagrams System and user manuals Test objects Applications Hardware/software systems Operating systems System under test (SUT) System configuration and configuration data Typical defects and failures Incorrect calculations Incorrect or unexpected system functional or non-functional behavior
What are the Acceptance Testing objectives?
Establishing confidence in the quality of the system as a whole
Validating that the system is complete and will work as expected
Verifying that functional and non-functional behaviors of the system are as specified
What are the forms of acceptance testing?
User acceptance testing
Operational acceptance testing
Contractual and regulatory acceptance testing
Alpha and beta testing.
What is Acceptance testing basis, objects and failures?
Test basis
Business processes
User or business requirements
Regulations, legal contracts and standards
Use cases and/or user stories
System requirements
System or user documentation
Installation procedures
Risk analysis reports
Typical test objects
System under test
System configuration and configuration data
Business processes for a fully integrated system
Recovery systems and hot sites (for business continuity and disaster recovery testing)
Operational and maintenance processes
Forms
Reports
Existing and converted production data
Test Types objectives
Evaluating functional quality characteristics, such as completeness, correctness, and
appropriateness
Evaluating non-functional quality characteristics, such as reliability, performance efficiency,
security, compatibility, and usability
Evaluating whether the structure or architecture of the component or system is correct, complete,
and as specified
Evaluating the effects of changes, such as confirming that defects have been fixed (confirmation
testing) and looking for unintended changes in behavior resulting from software or environment
changes (regression testing)
What is Functional Testing?
Functional testing of a system involves tests that evaluate functions that the system should perform.
Non-functional Testing K1
Non-functional testing of a system evaluates characteristics of systems and software such as usability,
performance efficiency or security. Refer to ISO standard (ISO/IEC 25010) for a classification of software
product quality characteristics. Non-functional testing is the testing of “how well” the system behaves.
Contrary to common misperceptions, non-functional testing can and often should be performed at all test
levels, and done as early as possible. The late discovery of non-functional defects can be extremely
dangerous to the success of a project.
What is White-box Testing?
White-box testing derives tests based on the system’s internal structure or implementation. Internal
structure may include code, architecture, work flows, and/or data flows within the system.