SIA 102 – System Integration and Architecture 2
QUALITY ASSURANCE TYPES OF TESTING
QA includes activities that ensure the Manual testing includes testing a software
implementation of processes, procedures and standards manually, unit testing, integration testing, system
in context to verification of developed software and testing, and user acceptance testing.
intended requirements.
Automation testing (Test Automation) is when
• Quality is defined as the standard of something the tester writes scripts and uses another software to test
as measured against other things of a similar the product. Automation Testing is used to re-run the test
kind; the degree of excellence of something. scenarios that were performed manually, quickly, and
repeatedly.
• Assurance is nothing but a positive declaration
on a product or service, which gives confidence. SOFTWARE TESTING LEVEL AND TECHNIQUES
• Quality Assurance (QA) is any systematic Functional Testing - refers to activities that verify
process of determining whether a product or a specific action or function of the code.
service meets specified requirements.
Non-Functional Testing - refers to aspects of the
• Total Quality Management (TQM) is an software that may not be related to a specific function or
approach of providing all of the tools, training, user action. Non-functional testing involves testing a
and experience necessary to measure the quality software from the requirements which are nonfunctional
control throughout the firm in the quality in nature but important and reflect the quality,
process. particularly in the context of the suitability perspective of
• Benchmarking is an approach to business its users.
improvement based on best practice in the Functional Testing Non-Functional Testing
industry, or in another similar industry. • Unit Testing • Performance
• Integration Testing
QUALITY CONTROL
Testing − Load Testing
It includes activities that ensure the verification • System Testing − Stress Testing
of a developed software with respect to documented (or • Regression • Usability Testing
not in some cases) requirements. Testing • Security Testing
• Acceptance • Portability
TESTING Testing Testing
• Alpha Testing
Is the process of evaluating a system or its • Beta Testing
component(s) with the intent to find whether it satisfies SOFTWARE TESTING METHODS
the specified requirements or not. In simple words,
testing is executing a system in order to identify any Black-Box Testing
gaps, errors, or missing requirements in contrary to the
actual requirements. The internal workings of an application need
not be known.
Applications of Software Testing
White-Box Testing
• Cost Effective Development
Tester has full knowledge of the internal
• Product Improvement workings of the application.
• Test Automation
Grey-Box Testing
• Quality Check
The tester has limited knowledge of the internal
workings of the application.
SIA 102 – System Integration and Architecture 2
User Experience + Quality Assurance = Usability Usability Review
User experience (UX) design is the process It is a usability evaluation of an
design teams use to create products that provide application introduces users to the new design to ensure
meaningful and relevant experiences to users. it is intuitive to use and provides a positive user
experience. The purpose of usability evaluation is to
“User Experience Design” is often used
ensure any potential issues are highlighted and fixed
interchangeably with terms such as “User Interface
before the product is launched. Usability review is
Design” and “Usability”.
performed based on usability requirements, standards,
Quality assurance (QA) and user experience (UX) or best practices.
have a two-way relationship:
− Most obvious, usability is a quality measure for
User Acceptance Testing (UAT)
design. To ensure usability, a good UX thus
requires QA thinking. It is a type of testing performed by the end user or the
− Beyond the user interface itself, many client to verify/accept the software system before
other quality issues also impact the total UX. moving the software application to the production
environment. UAT is done in the final phase of testing
Usability Test after functional, integration and system testing is done.
It is a non-functional type of software testing. It
is broadly divided into understandability, learnability,
operability, attractiveness, and compliance. Usability PERFORMANCE TESTING
testing is to determine the extent to which we
Is a testing measure that evaluates the speed,
understand the software product, easy to learn, easy to
responsiveness and stability of a computer, network,
operate, and attractive to the users under specified
software program or device under a workload.
conditions and requirements.
Usability testing is mainly divided into three categories:
Performance Testing Metrics: Parameters Monitored
• Explorative
• Processor Usage • Server response
• Assessment • Memory use time
• Disk time • Render response
• Comparative • Bandwidth time
• Private bytes • Throughput
Usability Test Tools Categories
• Committed • Amount of
• Category 1 Create tasks/tests and give them to memory connection pooling
users (finding the users and giving them tasks is • Memory • Maximum active
a manual activity, outside of the tool). pages/second sessions
• Page faults/second • Hit ratios
• Category 2 - You can make your own analysis. • CPU interrupts per • Hits per second
second • Rollback segment
• Category 3 - Tools that use eye-tracking and • Disk queue length Database locks
heatmap methods to determine which part of • Network output • Top waits
the page the user has spent the most time on. queue length. • Thread counts
• Network bytes total • Garbage collection
• Category 4 - Tools that provide you with
per second
feedback based on the website, page or
wireframe that you submit as input.
• Category 5 Tools that recruit users for your
usability test.
SIA 102 – System Integration and Architecture 2
Performance Testing Process and Methodology Scalability testing measures performance based on the
software's ability to scale up or down performance
Identifying the testing environment. This includes
measure attributes.
test and production environments as well as the
testing tools. Capacity testing is similar to stress testing in that it tests
traffic loads based on the number of users but differs in
Identifying and defining acceptable performance
the amount.
criteria. This should include performance goals and
constraints for metrics. Cloud testing has the benefit of being able to test
applications at a larger scale while also maintaining the
Planning the performance test. Test all possible use
cost benefits from being in the cloud.
cases. Build test cases around performance metrics.
Internet testing is a relatively new form of performance
Configuring and implementing test
testing when global applications are performance tested
design environment. Arrange resources to prepare
from load generators that are placed on the actual target
the test environment, then begin to implement it.
continent whether physical machines or cloud VMs.
Running the test. The test also should be monitored. These tests usually requires an immense amount of
preparation and monitoring to be executed successfully.
Analyzing and retesting. Look over the results. After
any fine-tuning, retest to see if there is an increase or Configuration testing Rather than testing for
decrease in performance. performance from a load perspective, tests are created
to determine the effects of configuration changes to the
Types of Performance Testing system's components on the system's performance and
Load testing - This type of test helps developers behavior.
determine how many users an application or system can Isolation testing is not unique to performance testing
handle before that app or system goes live. but involves repeating a test execution that resulted in a
Stress testing places a system under higher-than- system problem. Such testing can often isolate and
expected traffic loads so developers can see how well the confirm the fault domain.
system works above its expected capacity limits. Difference between Performance Testing &
Stress tests enable software teams to understand a Performance Engineering
workload's scalability. Stress tests put a strain on Performance Testing is a discipline concerned with
hardware resources in order to determine the potential testing and reporting the current performance of a
breaking point of an application based on resource software application under various parameters.
usage. Stress tests can occur before or after a system
goes live. A kind of production-environment stress test is Performance Engineering is the process by which
called chaos engineering and there are specialized tools software is tested and tuned with the intent of realizing
for it. the required performance. This process aims to optimize
the most important application performance trait i.e.
Soak testing, also called endurance testing, user experience.
simulates a steady increase of end users over
time to test systems' long-term sustainability. Levels of Testing
Analyze throughput and response times.
Spike testing, assesses the performance of a
system under a sudden and significant increase
of simulated end users. Spike tests help
determine if a system can handle an abrupt,
drastic workload increase over a short period of
time, repeatedly.
SIA 102 – System Integration and Architecture 2
Differences between SIT and ST Types and Forms of System Architecture Evaluation
Types of Architecture Evaluation
• Technical
• Economic
Forms of Evaluation
• Evaluation by the designer within the design
Differences between SIT and UAT process
• Evaluation by peers within the design process
• Analysis by outsiders once the architecture has
been designed
Benefits of Architecture Evaluation
• Results in prioritization of conflicting goals
Differences between SIT and AT • Forces clear explanation of architecture
• Improve quality of architecture documentation
• Uncovers opportunities for cross-project reuse
• Results in improved architecture practices
Evaluation Provides
• Operational scenarios for revision
• Defined system and subsystem requirements for
How to Perform System Integration Test analysis
• Defined system/subsystem interfaces for
Once the software is integrated, there are three main analysis
states of data flow
System Integration Approaches
• Data state within the Integration Layer
Point-to-point Model
• Data state within the Database layer
Point-to-point integration (P2P) is the
• Data state within the Application layer architectural pattern in which every system is directly
System Integration Test Levels connected to all other systems and apps it needs to work
in tandem and share information with. This model can be
SIT can be conducted at three different levels of realized via APIs, webhooks, or custom code.
granularity
Hub-and-spoke Model
Intra-System Testing - low level of integration
testing It is a more advanced type of integration
architecture that addresses the issues of point-to-point
Inter-System Testing - high-level of integration and helps to avoid the star/spaghetti mess. The
testing connections between all subsystems are handled by a
central hub (message broker), so they don’t
Pairwise Testing - only two inter-connected
communicate with each other directly.
subsystems in the whole system are tested at a time.
SIA 102 – System Integration and Architecture 2
The hub serves as a message-oriented middleware with Types of Maintenance
a centralized integration engine to translate operations
❖ Corrective Maintenance - This includes
into a single canonical language and route messages to
modifications and updations done in order to
the right destinations.
correct or fix problems, which are either
The spokes (adapters) connecting the hub to the discovered by user or concluded by user error
subsystems are managed individually. reports.
❖ Adaptive Maintenance - This includes
modifications and updations applied to keep the
Enterprise Service Bus (ESB) Model software product up-to date and tuned to the
ever changing world of technology and business
• ESB architecture involves the creation of a environment.
separate specialized subsystem — an enterprise ❖ Perfective Maintenance - This includes
service bus — that serves as a common user modifications and updates done in order to keep
interface layer connecting other subsystems. the software usable over long period of time. It
Integration platform as a Service (iPaaS) includes new features, new user requirements for
refining the software and improve its reliability
• Integration Platform as a Service is a set of and performance.
cloud-based integration solutions mostly used ❖ Preventive Maintenance - This includes
for building and deploying integrations in the modifications and updations to prevent future
cloud. problems of the software. It aims to attend
Hybrid integration platform (HIP) problems, which are not significant at this
moment but may cause serious issues in future.
• Hybrid integration platform (HIP) is a more
universal version of what iPaaS offers. It is an
array of integration software providing built-in
capabilities to make on-premises and cloud-
based solutions work as a single unit.
Software Maintenance
It stands for all the modifications and updations done
after the delivery of software product. There are number
of reasons, why modifications are required.
• Market Conditions
• Client Requirements
• Host Modifications
• Organization Changes