63.17K
Category: programmingprogramming

Software Quality Assurance and Testing Practice

1.

Software Quality Assurance
and Testing
Practice

2.

INTRODUCTION
• Balzhan Azibek [email protected]
• B. Eng in Electrical and Electronics Engineering at Nazarbayev University
• MSc in Electrical and Computer Engineering at Nazarbayev University
Smart and Efficient Health Home Systems Capstone
Defender-Attacker Game Models for Optimal Resource Allocation
Master Thesis

3.

PRACTICE 1: WHAT IS SOFTWARE TESTING?
Software Testing is a method to check whether the actual software
product matches expected requirements and to ensure that software
product is Defect free. It involves execution of software/system
components using manual or automated tools to evaluate one or more
properties of interest. The purpose of software testing is to identify
errors, gaps or missing requirements in contrast to actual
requirements. Some prefer saying Software testing definition as a
White Box and Black Box Testing. In simple terms, Software Testing
means the Verification of Application Under Test (AUT). This Software
Testing course introduces testing software to the audience and justifies
the importance of software testing.

4.

WHY SOFTWARE TESTING IS IMPORTANT?

5.

Why Software Testing is Important?
• Software Testing is Important because if there are any bugs or errors
in the software, it can be identified early and can be solved before
delivery of the software product. Properly tested software product
ensures reliability, security and high performance which further
results in time saving, cost effectiveness and customer satisfaction.

6.

What is the need of Testing?

7.

What is the need of Testing?
• Testing is important because software bugs could be expensive or
even dangerous.
• Software bugs can potentially cause monetary and human loss, and
history is full of such examples.
• Ex: Nissan cars recalled over 1 million cars from the market due to
software failure in the airbag sensory detectors. There has been
reported two accident due to this software failure.
• Ex: Starbucks was forced to close about 60 percent of stores in the
U.S and Canada due to software failure in its POS system

8.

What are the benefits of Software Testing?

9.

What are the benefits of Software Testing?
• Cost-Effective: It is one of the important advantages of software
testing. Testing any IT project on time helps you to save your money
for the long term. In case if the bugs caught in the earlier stage of
software testing, it costs less to fix.
• Security: It is the most vulnerable and sensitive benefit of software
testing. People are looking for trusted products. It helps in removing
risks and problems earlier.
• Product quality: It is an essential requirement of any software
product. Testing ensures a quality product is delivered to customers.
• Customer Satisfaction: The main aim of any product is to give
satisfaction to their customers. UI/UX Testing ensures the best user
experience.

10.

SOFTWARE TESTING STRATEGIES
• Unit Testing: This software testing basic approach is followed by the
programmer to test the unit of the program. It helps developers to know
whether the individual unit of the code is working properly or not.
• Integration testing: It focuses on the construction and design of the
software. You need to see that the integrated units are working without
errors or not. System testing: In this method, your software is compiled as
a whole and then tested as a whole. This testing strategy checks the
functionality, security, portability, amongst others
• Program Testing: This software testing is a method of executing an actual
software program with the aim of testing program behavior and finding
errors. The software program is executed with test case data to analyse the
program behavior or response to the test data. A good program testing is
one which has high chances of finding bugs.

11.

Summary of Software Testing Basics:
• Define Software Testing: Software testing is defined as an activity to
check whether the actual results match the expected results and to
ensure that the software system is Defect free.
• Testing is important because software bugs could be expensive or
even dangerous. The important are reasons for using software testing
are: cost-effective, security, product quality, and customer
satisfaction.
• Typically Testing is classified into three categories functional testing,
non-functional testing or performance testing, and maintenance.
• The important strategies in software engineering are: unit testing,
integration testing, validation testing, and system testing

12.

Task 1
• Make a report about NIT JSC standards in testing in RK

13.

Task 2
• Test KazPOST site and mobile app. Write testing scenarios. Load
wappalyzer on your browser analyze the software on which KazPost
site was built. Use the developer tools in Google Chrome (Ctrl+Shift+I)
to see the bugs and errors on the page. Software for work: Google
Chrome Opera browser Safari Load task 2 into the test scenario
template form with screenshots
• Software for work: Google Chrome, Opera browser, Safari
• Load task 2 into the test scenario template form with screenshots

14.

TEST SCENARIO

15.

What is a Test Scenario?
• A Test Scenario is defined as any functionality that can be tested. It is
also called Test Condition or Test Possibility. As a tester, you should
put yourself in the end user’s shoes and figure out the real-world
scenarios and use cases of the Application Under Test.

16.

Scenario Testing
• Scenario Testing in software testing is a method in which actual
scenarios are used for testing the software application instead of test
cases. The purpose of scenario testing is to test end to end scenarios
for a specific complex problem of the software. Scenarios help in an
easier way to test and evaluate end to end complicated problems.

17.

Why create Test Scenarios?
• Creating Test Scenarios ensures complete Test Coverage Test
Scenarios can be approved by various stakeholders like Business
Analyst, Developers, Customers to ensure the Application Under Test
is thoroughly tested. It ensures that the software is working for the
most common use cases. They serve as a quick tool to determine the
testing work effort and accordingly create a proposal for the client or
organize the workforce. They help determine the most important
end-to-end transactions or the real use of the software applications.
For studying the end-to-end functioning of the program, Test Scenario
is critical.

18.

When not create Test Scenario?
• Test Scenarios may not be created when The Application Under Test is
complicated, unstable and there is a time crunch in the project.
Projects that follow Agile Methodology like Scrum, Kanban may not
create Test Scenarios. Test Scenario may not be created for a new bug
fix or Regression Testing. In such cases, Test Scenarios must be
already heavily documented in the previous test cycles. This is
especially true for Maintenance projects.

19.

How to Write Test Scenarios
• Step 1: Read the Requirement Documents like BRS, SRS, FRS, of the System Under
Test (SUT). You could also refer uses cases, books, manuals, etc. of the application
to be tested.
• Step 2: For each requirement, figure out possible users actions and objectives.
Determine the technical aspects of the requirement. Ascertain possible scenarios
of system abuse and evaluate users with hacker’s mindset.
• Step 3: After reading the Requirements Document and doing your due Analysis,
list out different test scenarios that verify each feature of the software.
• Step 4: Once you have listed all possible Test Scenarios, a Traceability Matrix is
created to verify that each & every requirement has a corresponding Test
Scenario
• Step 5: The scenarios created are reviewed by your supervisor. Later, they are also
reviewed by other Stakeholders in the project.

20.

Tips to Create Test Scenarios
• Each Test Scenario should be tied to a minimum of one Requirement
or User Story as per the Project Methodology.
• Before creating a Test Scenario that verifies multiple Requirements at
once, ensure you have a Test Scenario that checks that requirement in
isolation.
• Avoid creating overly complicated Test Scenarios spanning multiple
Requirements.
• The number of scenarios may be large, and it is expensive to run
them all. Based on customer priorities only run selected Test
Scenarios
English     Русский Rules