0% found this document useful (0 votes)
10 views10 pages

Unit 8 Software Eng.

The document outlines key software quality attributes, including functionality, performance, interoperability, security, and flexibility, which are essential for measuring software performance. It also describes quality factors related to product operation, revision, and transition, as well as the processes of quality control and assurance. Additionally, it details the testing and debugging processes, including various testing types like unit, integration, system, and regression testing, emphasizing the importance of verification and validation in software development.

Uploaded by

surajkumar97th
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views10 pages

Unit 8 Software Eng.

The document outlines key software quality attributes, including functionality, performance, interoperability, security, and flexibility, which are essential for measuring software performance. It also describes quality factors related to product operation, revision, and transition, as well as the processes of quality control and assurance. Additionally, it details the testing and debugging processes, including various testing types like unit, integration, system, and regression testing, emphasizing the importance of verification and validation in software development.

Uploaded by

surajkumar97th
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

UNIT 8

Quality Management and Testing


Software Quality Attributes
Software Quality Attributes are features that facilitate the measurement of a software product’s performance by
Software Testing professionals.

Functionality:

Most Software Testing professionals view this attribute as the most important one as an application fails on the most
basic level if it doesn’t function as expected.

Performance:

Performance is important software quality attributes as it is a very important trait for every software to have in this
fast-paced world. From a testing point of view, it implies that QA testers must check whether the system responds to
various events within defined time limits.

Interoperability:

Interoperability is the ability of the system to interact with other systems to exchange the required information via
certain interfaces. So, Software Quality assurance engineers must examine the interoperability of a system in terms
of both syntactic and semantic interoperability.

Security:

The number of cyber-attacks has been on the rise and users have started prioritizing a product’s safety. So the
security attribute measures the ability of a system to protect and block unauthorized actions that could negatively
impact the user or destroy the system.

Flexibility:

Flexibility is another attribute of good software products that can easily adapt to future changes. To be more
specific, we say that the application is flexible when it can run smoothly on any device, platform, or operating
system.
QUALITY FACTORS

A software quality factor is a non-functional requirement for a software program which is not called up by the
customer's contract, but nevertheless is a desirable requirement which enhances the quality of the software program.

Product operation factors

Product operation factors includes five software requirements. These requirements directly affect to the software
operations such as operational performance, ease of usage and etc. These 5 factors help to provide a better user
experience to users.

• Correctness – extent to which a program satisfies its specification and fulfills the client’s objective.
• Reliability – extent to which a program is supposed to perform its function with the required precision.
• Efficiency – amount of computing and code required by a program to perform its function.
• Integrity – extent to which access to software and data is denied to unauthorized users.

• Usability– labor required to understand, operate, prepare input and interpret output of a program

Product revision factors

Product revision factors includes three software quality factors. These are Maintainability, Flexibility and
Testability. These requirements are required for testing and maintenance of the software. They provide ease of
maintenance, flexibility and testing effort to support the software to be functional according to the needs and
requirements of the user in the future.

• Maintainability– effort required to locate and fix an error in a program.


• Flexibility– effort needed to modify an operational program.

• Testability– effort required to test the programs for their functionality.

Product transition factors

Product transition factors includes three software quality factors. There are Portability, Reusability and
Interoperability. That allows the software to adapt to the change of environments in the new platform or technology
from the used platform or technology.

• Portability– effort required to run the program from one platform to other or to different hardware.
• Reusability– extent to which the program or it’s parts can be used as building blocks or as prototypes for other
programs.

• Interoperability– effort required to couple one system to another.


Quality Control:
Quality control is a set of methods used by organizations to achieve quality parameters or quality goals and
continually improve the organization's ability to ensure that a software product will meet quality goals.

• The total quality control process consists of:


❖ Plan - It is the stage where the Quality control processes are planned
❖ Do - Use a defined parameter to develop the quality
❖ Check - Stage to verify if the quality of the parameters are met
❖ Act - Take corrective action if needed and repeat the work

Quality Control characteristics:

• Process adopted to deliver a quality product to the clients at best cost.


• Goal is to learn from other organizations so that quality would be better each time.
• To avoid making errors by proper planning and execution with correct review process.
Quality Assurance
Quality Assurance is the preventive set of activities that provide greater confidence that the project will be
completed successfully.

Software Quality Assurance

• Software quality assurance is a systematic plan of all actions necessary to provide adequate confidence that
an item or product conforms to establish technical requirements.

SQA Encompasses

• A quality management approach


• Effective Software engineering technology (methods and tools)
• Formal technical reviews that are tested throughout the software process
• A multitier testing strategy
• Control of software documentation and the changes made to it.
• A procedure to ensure compliances with software development standards
• Measuring and reporting mechanisms.

SQA Activities

Following activities are performed by an independent SQA group:

• Prepares an SQA plan for a project: The program is developed during project planning and is reviewed by
all stakeholders.
• Participates in the development of the project's software process description: The software team selects a
process for the work to be performed.
• Reviews software engineering activities to verify compliance with the defined software process: The SQA
group identifies, reports, and tracks deviations from the process and verifies that
corrections have been made.
• Records any noncompliance and reports to senior management: Non- compliance items are
tracked until they are resolved.
Verification and Validation:
Verification: Are we building the product right?

Validation: Are we building the right product?

Verification
Verification is the process of checking that a software achieves its goal without any bugs. It is the process
to ensure whether the product that is developed is right or not. It verifies whether the developed product
fulfills the requirements that we have. Verification is Static Testing.

Activities involved in verification:

• Inspections
• Reviews
• Walkthroughs
• Desk-checking

Validation
Validation is the process of checking whether the software product is up to the mark or in other words
product has high level requirements. It is the process of checking the validation of product i.e. it checks
what we are developing is the right product. It is validation of actual and expected product. Validation is
the Dynamic Testing.

Activities involved in validation:

• Black box testing


• White box testing
• Unit testing
• Integration testing
TESTING AND DEBUGGING
What is Testing?

Testing is a process to check if a software application is working properly or not. The primary goal of testing is to
find the errors and bugs in an application. The person who performs the testing is known as a "tester".

Features of Testing

1. Identification
2. Validation.
3. Documentation
4. Quality Assurance
5. Risk Management
6. Performance check

What is Debugging?

Debugging is performed by the developers of the application to fix the bugs and errors found in the
system/application. The primary goal of debugging is to address the exact root cause at code level to fix the errors
and bugs found during the testing.

Features of Debugging

1. Error Detection.
2. Code Study
3. Testing
4. Performance Optimization
5. Documentation

Difference between Testing and Debugging

The following are the important differences between Testing and Debugging −

Key Testing Debugging


Testing is a process to check if the application is
Debugging is the activity performed by
Definition working same as it was supposed to do, and not
developers to fix the bug found in the system.
working as it was not supposed to do.
The main objective of Testing is to find bugs and The main objective of Debugging is to find
Objective errors in an application which get missed during the the exact root cause at code level to fix the
unit testing by the developer. errors and bugs found during the testing.
As Testing is mainly to find out the errors and bugs is
Debugging is to find the missing or de-faulty
mainly performed by the testers. Also if testing is at
Perform code in an application hence major performed
developer end known as unit testing then it is
by the developers only.
performed by the Developer.
Debugging is to find the error at code level so
As Testing covers the functional and behavioral flow
Knowledge technical and code level knowledge is
of an application so only functional knowledge is
Required required for the developer to perform
required for the tester to perform the testing.
debugging.
Testing can be manual or made automated with the Debugging can't be get automated it is always
Automation
help of different tools. be the manual.
TESTING PROCESS

Software testing is the process of evaluating and verifying that a software product or application does what it is
supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving
performance.

Software testing process listed as:

• Requirements Analysis and Planning: Understand project requirements, define testing objectives, and plan
testing strategies and resources.

• Test Case Design: Create test cases with input data, expected outcomes, and steps for various scenarios.

• Unit Testing: Developers test individual code components for correctness and integration issues.

• Integration Testing: Test interactions between components to ensure they work together as intended.

• Functional Testing: Validate software functionality against requirements and user expectations.

• Performance Testing: Evaluate responsiveness, speed, and scalability under different conditions.

• Security Testing: Identify vulnerabilities and ensure the software's security mechanisms.

• Regression Testing: Re-test modified code to prevent new changes from breaking existing functionality.

• User Acceptance Testing (UAT): End-users verify the software's alignment with real-world needs.

• Usability Testing: Assess user interface and experience for user-friendliness.


White Box Testing
White Box Testing is a testing technique in which software’s internal structure, design, and
coding are tested to verify input-output flow and improve design, usability, and security. In white
box testing, code is visible to testers, so it is also called Clear box testing, Open box testing,
Transparent box testing, Code-based testing, and Glass box testing.

Black Box Testing


Black Box Testing is a software testing method in which the functionalities of software
applications are tested without having knowledge of internal code structure, implementation
details and internal paths. Black Box Testing mainly focuses on input and output of software
applications and it is entirely based on software requirements and specifications. It is also known
as Behavioral Testing.

UNIT TESTING

Unit Testing is a type of software testing where individual units or components of a software are tested.
The purpose is to validate that each unit of the software code performs as expected. Unit Testing is
done during the development (coding phase) of an application by the developers. Unit Tests isolate a
section of code and verify its correctness. A unit may be an individual function, method, procedure,
module, or object. Unit tests help to fix bugs early in the development cycle and save costs. It helps the
developers to understand the testing code base and enables them to make changes quickly .

INTEGRATION TESTING

Integration Testing is defined as a type of testing where software modules are integrated logically and tested as a
group. A typical software project consists of multiple software modules, coded by different programmers. The
purpose of this level of testing is to expose defects in the interaction between these software modules when they are
integrated . Integration Testing focuses on checking data communication amongst these modules. Hence it is also
termed as ‘I & T’ (Integration and Testing), ‘String Testing’ and sometimes ‘Thread Testing’.
SYSTEM TESTING

System Testing is a level of testing that validates the complete and fully integrated software
product. The purpose of a system test is to evaluate the end-to-end system specifications. Usually,
the software is only one element of a larger computer-based system. Ultimately, the software is
interfaced with other software/hardware systems. System Testing is defined as a series of different
tests whose sole purpose is to exercise the full computer-based system.

REGRESSION TESTING

Regression Testing is defined as a type of software testing to confirm that a recent program or code change has not
adversely affected existing features. Regression Testing is nothing but a full or partial selection of already executed
test cases that are re-executed to ensure existing functionalities work fine. This testing is done to ensure that new
code changes do not have side effects on the existing functionalities. It ensures that the old code still works once the
latest code changes are done.

You might also like