Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

Software Quality Assurance and Testing

Overview on Software Testing and Quality Assurance

8 February 2022 1
Quality Assurance and Software Testing
Quality Assurance
- Process of ensuring that a product (e.g. software application) is of the highest possible quality for customers and
stakeholders
- Includes activities and approaches that are carried out during software development to achieve the defined quality of
the software
- Ensures that the software development and methods follow proper and organization standards

Software Testing
- Method of checking that the software application is free from bugs, defects, or errors and ensuring that it meets the
expected requirements
- Consists of execution of software functions or components using manual or automated tools
- Main purpose is to identify errors or missing requirements in comparison with the actual requirements

Importance of Software Testing and Quality Assurance


- Early detection and resolution of bugs or errors
- Ensures reliability, security, quality, and good performance which also results to saving of time and resources, efficiency,
and customer satisfaction

8 February
2
2022
Difference Between QA and Testing

8 February
3
2022
Types of Software Testing
• Functional Testing – test functionalities against the requirements
• Unit Testing
• Integration Testing
• Smoke Testing
• User Acceptance Testing (UAT)
• System Testing (End-to-end testing)
• Regression Testing

• Non-Functional Testing
• Performance Testing
• Load Testing
• Usability Testing
• UI/UX Testing
• Security Testing
• Portability Testing

8 February
4
2022
Seven Principles of Software Testing
1. Exhaustive testing is not possible
2. Defect clustering
3. Pesticide Paradox
4. Testing shows presence of defects
5. Absence of Error - fallacy
6. Early testing
7. Testing is context dependent

8 February
5
2022
QA and Software Testing Skills
Non-Technical Skills
- Analytical Skills
- Communication Skills (Verbal and written)
- Time Management and Organization Skills
- Great Attitude
- Passion

Technical Skills
- Basic knowledge of Database/SQL
- Knowledge and hands-on experience of a Test Management Tool (e.g. Test Plan in Azure DevOps)
- Knowledge and hands-on experience of any defect-tracking tool (e.g. Azure DevOps, Jira)
- Knowledge and hands-on experience of any Test Automation tool
- Knowledge of main programming or scripting languages like HTML, C#, JavaScript

8 February
6
2022
SDLC and STLC
Software Development Life Cycle (SDLC)
- Series of activities done by developers to design and develop high-quality software

Software Testing Life Cycle (STLC)


- Series of activities done by testers methodologically to test a software product

Development Models:
V Model Iterative Life Cycle (for Rapid Application Devt and Agivle Development

Notes:
1. There are different models for development life cycle.
2. A model chosen depends on the objectives and requirements of the project.
3. Testing is a stand-alone activity and has to adopt with the development chosen for a project.
10 February
7
2022
Software Testing Life Cycle Phases

Requirement Analysis
- High level analysis and study of requirements; interaction with stakeholders to understand the requirements in detail.
Test Planning
- Determining test plans and strategies along with efforts and cost estimates for the project. Resources, test environment, test limitations
and schedules are also determined.
Test Case Design
- Includes creation, verification and rework of test cases/test scripts after the test plan. The test team can start the development process of
test cases of each unit or small components.
Test Environment Setup
- Setup the software and hardware conditions under which an application is tested. Test team may not be involved if the development team
can provide the test environment.
Test Execution/Defect Reporting
- Actual testing is done based on the test plans and test cases prepared. Includes test script execution, maintenance, and bug reporting.
Test Closure
- Involves activities like test completion reporting and compilation of test results. Test results can be shared within the team to identify
strategies in future projects.
8 February
8
2022
Manual Testing
Manual Testing
- Test cases are executed manually without the aid of any automated tools
- Purpose is to identify errors or issues in the software application
- Most primitive but it helps find critical bugs in a software application
- Needed to assess automation feasibility

Types of Manual Testing


Black Box Testing
White Box Testing
Unit Testing
System Testing
Integration Testing
Acceptance Testing

Myths of Manual Testing


Myth: Anyone can do manual testing
Fact: Testing requires many skill sets
Myth: Testing ensures 100% Defect free product
Fact: Testing attempts to find as many defects as possible. Identifying all possible defects is impossible.
Myth: Automated testing is more powerful than manual testing
Fact: 100% test automation cannot be done. Manual Software Testing is also essential.
Myth: Testing is easy
Fact: Testing can be extremely challenging. Testing an application for possible use cases with minimum
10 February test cases requires high analytical skills.
9
2022
Automation Testing
Automation Testing
- Software testing technique that uses special automated testing software tools to execute a test case.
- Goal is to reduce the number of test cases to be run manually
- Increases effectiveness, test coverage and execution speed in software testing.
- Can be reused and revised to suit changes to the software application
- Does not require human intervention

Criteria for Selecting Test Cases to Automate


1. High Risk – Business Critical test cases
2. Test cases that are repeatedly being executed
3. Test cases that are tedious and difficult to perform manually
4. Test cases that are time consuming

Not Suitable for Automation


5. Test cases that are newly designed and not yet manually executed
6. Test cases where the requirements are frequently changing
7. Test cases which are executed on an ad-hoc basis

Types of Automated Testing


• Smoke Testing
• Unit Testing
• Integration Testing
• Functional Testing 10 February
10
• Regression Testing 2022

• Data Driven Testing


• Black Box Testing
Automation Testing Process

10 February
11
2022
Test Automation Framework
A framework is a set of automation guidelines that aims to:

- Maintain consistency of testing


- Improves test structuring
- Minimum usage of code
- Less Maintenance of code
- Improve re-usability
- Non-technical testers can be involved in code
- Training period for using the tool can be reduced
- Involves data wherever appropriate

10 February
12
2022
Levels of Testing

10 February
13
2022
Unit Testing
- Individual units or software components (individual function, method, procedure, module or object) are tested to validate that each
of them performs as expected.
- It is done by developers during the development phase of the application.
- This is the first level of testing

Advantages
- Unit tests help to fix bugs in the early stages of development, thereby saving costs and time.
- Can serve as documentation and helps the developers understand the code base and enables them to make changes immediately
- Can be reusable

Test Driven Development


- Unit tests are essential to TDD
- Tests are written before the actual code
- Rely heavily on testing frameworks
- All classes/functions are tested
- Quick and easy integration is possible

10 February
14
2022
Integration Testing
- Type of testing where the individual units or modules are integrated and tested as a group.
- Purpose is to determine defects on the interaction of these software modules

Primary Usage
- Verify that the software modules work in unity
- Verify requirement changes by clients that were not unit tested and can only be tested during integration testing
- Interfaces of software modules to database or other data sources can be erroneous
- Exception handling can be detected

How to do Integration Testing


1. Prepare the integration Tests Plan
2. Design test scenarios, test cases, and test scripts.
3. Execute the test cases and report defects, if any
4. Track and re-test the defects
5. Repeat Steps 3 and 4 until the integration test is completed and successful

Note:
- Identify critical modules and these will be prioritized for testing

10 February
15
2022
System Testing
- Validates the complete and fully integrated software application
- Evaluate the end-to-end system specifications

What to Verify During System Testing


- Test and verify the integrated applications in order to check how the modules interact with one another and with the system as a
whole (end to end testing scenario)
- Verify that every input in the application produces the desired outputs
- Verify and test user experience

10 February
16
2022
Acceptance Testing
- Evaluate whether the system meets the user acceptance criteria and requirements
- Evaluate whether the system is also ready for release and production

What to Verify During System Testing


- Test and verify the integrated applications in order to check how the modules interact with one another and with the system as a
whole (end to end testing scenario)
- Verify that every input in the application produces the desired outputs
- Verify and test user experience

14 February
17
2022
Software Testing Types
https://www.guru99.com/types-of-software-testing.html

14 February
18
2022
Top Software Testing Trends
1. Agile and DevOps
2. Test Automation
3. API and Services Test Automation
4. Artificial Intelligence for Testing
5. Mobile Test Automation
6. Test Environments and Data
7. Integration of Tools and Activities

14 February
19
2022
Sources
https://www.guru99.com/software-testing.html
https://testautomationu.applitools.com/
https://www.w3schools.com/cs/index.php
https://www.toolsqa.com/selenium-webdriver/c-sharp/set-up-project-for-selenium-automation-framework-in-csharp/
https://testautomationu.applitools.com/test-automation-framework-csharp/
https://app.pluralsight.com/library/courses/creating-automated-browser-tests-selenium-c-sharp/table-of-contents

14 February
20
2022

You might also like