0% found this document useful (0 votes)
26 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

Topics covered

  • Quality Assurance,
  • Quality Control,
  • Performance Check,
  • Error Detection,
  • Portability,
  • Reusability,
  • Integration Testing,
  • Unit Testing,
  • Software Engineering Technolog…,
  • System Testing
0% found this document useful (0 votes)
26 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

Topics covered

  • Quality Assurance,
  • Quality Control,
  • Performance Check,
  • Error Detection,
  • Portability,
  • Reusability,
  • Integration Testing,
  • Unit Testing,
  • Software Engineering Technolog…,
  • System Testing

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.

Common questions

Powered by AI

Flexibility, as a software quality attribute, impacts both product transition and revision factors by enabling easier adaptation to changes and future requirements. In product revision, flexibility involves the effort needed to modify an operational program without excessive overhaul . For product transition, it encompasses adapting to new platforms or technologies smoothly . This means flexible software can easily be maintained and updated, enhancing its longevity and applicability in diverse environments.

Verification and validation serve distinct purposes in software quality assurance. Verification focuses on whether the product is being built correctly without bugs, involves static testing through reviews and inspections, and ensures conformity to specified requirements . Validation, however, checks if the right product is being built to meet stakeholders' needs, employing dynamic testing methods like black box and integration testing . While verification is about correctness during development, validation addresses product suitability post-development.

Security, as a software quality attribute, significantly impacts testing and quality assurance practices by mandating comprehensive security testing and adherence to stringent standards. Testing focuses on identifying vulnerabilities and ensuring robust security mechanisms to protect against unauthorized access and cyber threats . In quality assurance, systematic plans incorporating security standards and reviews verify that security requirements are met throughout development, thereby instilling confidence in product integrity and user safety .

Interoperability ensures a system can effectively interact with other systems, which is critical for software quality in the realm of transition factors. As a transition factor, interoperability involves the effort required to couple one system to another, allowing software to adapt to changes in technological environments smoothly . It supports effective information exchange and system flexibility, crucial for integrating with existing or new systems.

Testing and debugging are distinct processes in the software development lifecycle. Testing is primarily conducted by testers to identify bugs and errors by evaluating if the software functions as intended, based on functional requirements . Debugging, on the other hand, is performed by developers to fix these identified bugs at the code level, requiring technical and detailed code knowledge . Testing can be automated, while debugging remains a manual process.

Usability as a software quality factor enhances user experience by minimizing the effort required to understand and interact with a program. Operational factors influencing usability include ease of use, intuitive design, and the ability to prepare inputs and interpret outputs with minimal labor . Improving usability ensures that users can efficiently utilize the software without extensive training, directly affecting user satisfaction and operational efficiency.

Formal technical reviews are a cornerstone of the software quality assurance process by providing structured evaluations of a product at various development stages. They aim to identify defects early, ensuring compliance with standards, verifying technical requirements, and facilitating knowledge sharing among team members . These reviews help preemptively address potential issues, reduce error rates, and enhance team collaboration, ultimately leading to superior quality and reliability in software products.

Portability, a crucial transition factor, influences software quality by determining the ease with which software can operate across different environments and platforms. Its focus is on minimizing the effort required to transfer software between different operating systems or hardware configurations . High portability improves adaptability, enabling software to retain functionality and performance consistency across various user contexts and technological changes, ultimately enhancing its applicability and lifespan.

Total quality control is essential in achieving superior software quality as it ensures continuous improvement and adherence to quality parameters across all development stages. Its key components include planning quality processes, executing them, checking outcomes against established standards, and acting on deviations. It emphasizes learning from best practices to enhance quality continuously . By fostering a culture of non-stop quality enhancement, total quality control helps prevent errors and optimize performance while aligning with user requirements.

Correctness ensures a software program satisfies its specifications and fulfills client objectives, laying the groundwork for reliability and efficiency. Reliability builds on correctness by ensuring the software performs consistently over time with precision, while efficiency focuses on minimizing resource consumption during function execution . Together, these characteristics ensure the software meets both functional and performance requirements, thereby guaranteeing dependable and resource-effective operations.

You might also like