Lecture 1 (New)
Lecture 1 (New)
Lecture 1
• 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?
• 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;
•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.
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.
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.
يتحقق ما إذا كانت الوظائف الرئيسية ال تزال تعمل بشكل صحيح .إذا فشل االختبار ،فيمكنهم تصحيح اإلنشاء وإعادة نشره على الفور .من
خالل ذلك ،يمكننا توفير الوقت وضمان بناء عالي الجودة لبيئة ضمان الجودة.
Sample Smoke Test Cases Example
Advantages of Smoke testing
The objective is not to perform exhaustive testing, but to verify that the
critical functionalities of the system are working fine.