0% found this document useful (0 votes)
4 views29 pages

Lecture 1 (New)

The document outlines the importance of software testing and quality assurance, emphasizing its role in identifying bugs early in the Software Development Life Cycle (SDLC) to ensure product reliability and customer satisfaction. It discusses various types of software testing, including functional and non-functional testing, and highlights strategies such as unit testing and integration testing. Additionally, it details black box testing and specifically focuses on smoke testing as a method to verify the stability of software builds before further testing is conducted.

Uploaded by

betoelferjani
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)
4 views29 pages

Lecture 1 (New)

The document outlines the importance of software testing and quality assurance, emphasizing its role in identifying bugs early in the Software Development Life Cycle (SDLC) to ensure product reliability and customer satisfaction. It discusses various types of software testing, including functional and non-functional testing, and highlights strategies such as unit testing and integration testing. Additionally, it details black box testing and specifically focuses on smoke testing as a method to verify the stability of software builds before further testing is conducted.

Uploaded by

betoelferjani
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/ 29

Course: Software Testing

& Quality Assurance

Lecture 1

Dr. Salwa Elakeili


Faculty of Information Technology
[email protected]
Agenda
• Introduction
• Why Software Testing is Important?
• What are the benefits of Software Testing?
• When we start testing in SDLC?
• When the time is right to stop testing?
• Types of Software Testing
• Testing Strategies in Software Engineering
• Types of Black Box Testing
• Smoke testing
Introduction
• Software is a key ingredient in many of the devices and
systems that pervade our society.
• Software defines behavior
• Network routers, finance, switching networks, other
infrastructure
‫ وتبديل الشبكات والبنية التحتية األخرى‬، ‫ والتمويل‬، ‫أجهزة التوجيه الشبكة‬
• Software is an essential component of embedded applications such
as
• airplanes,
• air traffic control systems,
• watches,
• ovens,
• cars,
• DVD players,
• garage door openers,
• cell phones, and
• remote controllers.
Introduction (Cont)
• Testing: method that the industry uses to evaluate software under development.

• Testing used in industry for quality assurance (QA).

• Testing is the process of executing a program with the intent of finding


faults (bugs)

• Def of Software testing : is a process, to evaluate the functionality of a software


application with an intent to find whether the developed software met the specified
requirements or not and to identify the defects to ensure that the product is defect
free in order to produce the quality product.

• Another def: Software testing is the process of verifying a system with the
purpose of identifying any errors, gaps or missing requirement versus the actual
requirement. Software testing is broadly categorized into two types - functional
testing and non-functional testing.
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.
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.
When we start testing in SDLC?
• Software testing should start early in the Software Development Life Cycle (SDLC). This
helps to capture and eliminate defects in the early stages of SDLC i.e requirement gathering and
design phases. An early start to testing helps to reduce the number of defects and ultimately the
rework cost in the end.

• During the testing phase, developers find out whether their code and programming work
according to customer requirements.

• Unit testing is the first stage of software testing levels. During this stage, testers evaluate
individual components of the system to see if these components are functioning properly on
their own.
Why early testing is required?

• An early start to testing helps to reduce the number of defects and ultimately the
rework cost in the end.
• Involving testers early in the project can:
• reduce the total cost of ownership of the software,
• improve quality,
• save time and
• help ensure the best possible user experience.

• For the later phases of testing, you also want to make sure that you
have the right people involved
When the time is right to stop testing?

• The most common factors that are taken into account when deciding
when to stop testing are:
• Deadlines, e.g. release deadlines, testing deadlines;

• Percentage of test cases passed;

• Test budget and rate of spending ;

• Amount of code, functionality, or requirements to be covered;

• Minimum accepted bug rate;


Types of Software Testing
• Functional testing: what the system actually does is functional testing. To
verify that each function of the software application behaves as specified in
the requirement document. Testing all the functionalities by providing
appropriate input to verify whether the actual output is matching the
expected output or not. It falls within the scope of black box testing and the
testers need not concern about the source code of the application.

• Non-functional testing: how well the system performs is non-functionality


testing. Non-functional testing refers to various aspects of the software such
as performance, security, and compatibility etc.. Main focus is to improve
the user experience on how fast the system responds to a request.
Testing Strategies in Software Engineering
• Here are important strategies in software engineering:

• 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.
Test levels
Black Box - Testing
• Also named : closed box , data-driven , input/output driven, behavioral testing
• Provide both valid and invalid inputs.
• The output is matched with expected result (from specifications).
• The tester has no knowledge of internal structure of the program.
• It is impossible to find all errors using this approach.
• Test all possible types of inputs
(including invalid ones like characters, float,
negative integers, etc.).
Black box / Functional testing

• Based on requirements and functionality

• Not based on any knowledge of internal


design or code

• Covers all combined parts of a system

• Tests are data driven


Black Box Testing and Software Development Life Cycle (SDLC)

•Requirement -
 This is the initial stage of SDLC and in this stage, a requirement is gathered.
 Software testers also take part in this stage.
•Test Planning & Analysis -
 Testing Types applicable to the project are determined.
 A Test Plan is created which determines possible project risks and their mitigation.
•Design -
 In this stage Test cases/scripts are created on the basis of software requirement
documents
•Test Execution-
 In this stage Test Cases prepared are executed.
 Bugs if any are fixed and re-tested.
Types of Black Box Testing
Practically, there are several types of Black Box Testing that are possible but if we
consider the major variant of it then below mentioned are the two fundamental ones.

1) Functional Testing
Few major types of Functional Testing are:
•Smoke Testing
•Sanity Testing
•Integration Testing
•System Testing
•Regression Testing
•User Acceptance Testing
Types of Black Box Testing
2) Non-Functional Testing
Few major types of non- Functional Testing are:
• Usability Testing
• Load Testing
• Performance Testing
• Compatibility Testing
• Stress Testing
• Scalability Testing
Types of Black Box Testing
1) Functional Testing
This type deals with the functional requirements or specifications of an application.
It is done by software testers.

For Example,
when we test a Dropdown list, we
click on it and verify that it expands
and all the expected values are
showing in the list.
Functional Testing

•Smoke Testing
•Sanity Testing
•Regression Testing
What is Smoke Testing?

Smoke testing is defined as a type of software testing that determines whether the
deployed build is stable or not.

• To ensure core functionality working properly.


• Smoke testing is a process where the software build is deployed to QA
environment and is verified to ensure the stability of the application.

• It is also called as "Build verification Testing" or “Confidence Testing.”

It is a mini and rapid regression test of major functionality. It is a simple test that
shows the product is ready for testing.

The term smoke testing came from the hardware testing where the initial pass is done
to check if it did not catch a fire or smoked on the initial switch on
The main aim of smoke testing is to detect early major issues. Smoke tests are
designed to demonstrate system stability and conformance to requirements.

Smoke tester will select and run a subset of test cases that cover the most
important functionality of a component or a system. To ascertain if critical
functions of the software work correctly.

Smoke test may address a simple questions like “does the program run?, “does
it open a window?
When do we do smoke testing ?
Smoke Testing is done whenever the new functionalities of software are developed and
integrated with existing build that is deployed in QA/staging environment. It ensures
that all critical functionalities are working correctly or not.

Example 1: -New registration button is added in the


login window and build is deployed with the new
code. We perform smoke testing on a new build.
Example 2: Logging window: Able to move to next
window with valid username and password on clicking
submit button.
When Should We Perform Smoke Testing?

In this testing method, the development team deploys the build in the QA. The subsets
of test cases are identified, and then testers run test cases on the build. The QA team
tests the application against the critical functionalities. These series of test cases are
designed to expose errors that are in build. If these tests are passed, the QA team
continues with Functional Testing.

Any failure indicates a need to handle the system back to the development team.
Whenever there is a change in the build, we perform Smoke Testing to ensure stability.
‫? ‪How to do Smoke Testing‬‬
‫‪Smoke Testing is usually done manually though there is a possibility of accomplishing the same through automation.‬‬

‫‪Smoke test cycle‬‬

‫يتحقق ما إذا كانت الوظائف الرئيسية ال تزال تعمل بشكل صحيح ‪.‬إذا فشل االختبار ‪ ،‬فيمكنهم تصحيح اإلنشاء وإعادة نشره على الفور ‪.‬من‬
‫خالل ذلك ‪ ،‬يمكننا توفير الوقت وضمان بناء عالي الجودة لبيئة ضمان الجودة‪.‬‬
Sample Smoke Test Cases Example
Advantages of Smoke testing

1. Easy to perform testing


2. Defects will be identified in early stages.
3. Improves the quality of the system
4. Reduces the risk
5. Progress is easier to access.
6. Saves test effort and time
7. Easy to detect critical errors and correction of errors.
8. It runs quickly
9. Minimizes integration risks
Summary

 Testing is the process of executing a program with the intent of finding


faults (bugs)
 SW testing is categories into black box testing, white box testing

 Smoke Testing determines whether the deployed build is stable or not.

 The objective is not to perform exhaustive testing, but to verify that the
critical functionalities of the system are working fine.

You might also like