Manual Testing
Manual Testing
--------------------you can check the playlist
Testing Concepts-Theory
Testing Process-Theory + Practical
Agile-Continuous Integration -Theory
What is software ?
A Software is a collection of computer programs that helps us to
perform a task.
Types of software
------------------
System Software
Ex:Device drivers, OS, servers,utilities, etc.
Programming Software
Ex:compilers,debuggers,interpreters, etc.
Application Software
Ex: Industrial automation, business software, games, telecoms,etc.
Product Vs Project
------------------
if software application is developed for specific customer requirement
then it is called project.
if software application is developed for multiple customers requirement
then it called product.
What is Software Testing?
-------------------------
Software Testing is part of software development process.
Software Testing is an activity to detect and identify the defects in the
software.
The objective of testing is to release quality product to the client.
Why do we need testing?
-----------------------
Ensure that software is bug free.
Ensure that system meets customer requirements and software
specifications.
Ensure that system meets end user expectation
Fixing the bugs identified after release is expensive.
Software Quality
----------------
Quality: Quality is defined as justification of all the requirements of a
customer in a product.
-Note:Quality is not defined in the product. it is defined in the customer's mind.
Quality software is reasonably
-Bug-free.
-Delivered on time.
-Within budget.
-Meets requirements and /or expectations.
-Maintainable.
Error,bug &failure
------------------
Error: Any incorrect human action that produces a problem in the system is called
an error.
Defect/Bug: Deviation from the expected behavior to the actual behavior of the
system is called defect.
Failure: The deviation identified by end-user while using the system is called a
failure.
Why there are bugs in software ?
-------------------------------
Miscommunication or no communication
Software complexity
Programming errors
Changing requirements
Lack of skilled testers
etc...
Software Development Life Cycle (SDLC)
--------------------------------------
SDLC,Software Development Life Cycle is a process used by software
industry to design,develop and test high quality software's.
The SDLC aims to produce a high quality software that meets
customer expectations.
SDLC Models
------------
Waterfall Model
Incremental Model
Spiral Model
V-Model
Agile Model
Waterfall Model
----------------
Requirement----|
Analysis
System----------|
Design
Implementation----|
Testing------|
Deployment------|
Maintenance
Incremental/Iterative Model
----------------------------------
----Design& ----Testing----Implementation
| Development
|
|
|
Requirements |---Design& ----Testing----Implementation
| Development
|
|
| Design& ----Testing----Implementation
|---Development
Spiral Model
-----------------
. .
. .
. Requirement .
. and Analysis .
. .
. .
Planning . . Design
.
. . . . . . . . . . . . . .
. .
Deployment
and .
Acceptance . . Construction
. Testing .
. .
-System Maintenance
-System Development
-System Enhancement
-Concept Development
V-Model
--------
Verification Validation
{BRS/CRS/URS-------------------------User Acceptance
Testing}
{(Review) SRS------------System Testing
(Black Box
Testing
Technique)}
{(Review) {HLD--------|
Integration Testing
{LLD--------|
Coding---Unit
Testing
Agile Model
------------------
Planning
Testing Req Analysis
Iteration 1
Building Designing
after 2-3 months
Planning
Testing Req Analysis
Iteration 2
Building Designing
after 2-3 months
Planning
Testing Req Analysis
Iteration 3
Building Designing
QA vs QC/QE
------------------
QA-Quality Assurance
QC-Quality Control
QE-Quality Engineering
QA (Prevention) QC/QE(Detection)
------- -----------
-QA is process related -QC is the actual testing of the software
-QA focuses on building in quality -QC focuses on testing for quality
-QA is preventing defects. -QC is detecting defects
-QA is process oriented -QC is product oriented
-QA is entire life cycle -QC for testing part in SDLC
Verification V/S Validation
-----------------------------------
-Verification checks whether we are building the right system.
-Verification typically involves
-Reviews
-Walkthroughs
-Inspections
-Validation checks whether we are building the system right.
-Takes place after Verification are completed.
-Validation typically involves actual testing.
-System Testing
Static V/S Dynamic Testing
----------------------------------
-Static Testing is an approach to test project documents in the form of Reviews,
Walkthrough and Inspections. (Verification)
-Dynamic Testing is an approach to test the actual software by giving inputs and
observing results(Validation)
What is Review ?
--------------------
Reviews:
-conducts on documents to ensure correctness and completeness.
-Example:
-Requirement Reviews
-Design Revidws
-Code Reviews
-Test plan reviews
-Test cases reviews etc.
What is Walkthrough?
----------------------------
Walkthroughs:
-It is a formal review and we can discuss/raise the issues at peer level.
-Also walkthrough does not have minutes of the meet. It can happen at
anytime and conclude just like that no schedule as such.
What is Inspection ?
------------------------
Inspections:
-Its a formal approach to the requirements schedule.
-At least 3-8 people will sit in the meeting
1- reader
2-writer
3-moderator plus concerned.
-Inspection will have a proper schedule which will be
intimated via email to the concerned developer/tester.
Levels of Software Testing
--------------------------------
-Unit Testing
-Integration Testing
-System Testing
-User Acceptance Testing(UAT)
Test
___ Unit Test < -------------------------------------------individual
| component
|
| Test
| -------------Integration < ---------------------------------Component
__________ Test groups
|
|
| Test the
| ----------------System <------------------------------------integrated
____________ Test system
|
| Test the
|----------------- Acceptance <-----------------------------------final
test system
Unit Testing
----------------
-A unit is the smallest testable part of software. It usually has one or
a few inputs and usually a single output.
-Unit testing conducts on a single program or single module.
-Unit testing is white box testing technique.
-Unit testing is conducted by the developers.
-Unit testing techniques:
-Basis path testing
-Control structure testing
-Conditional coverage
-Loops Coverage
-Mutation Testing
Integration Testing
-----------------------
-In Integration Testing, individual software modules are integrated
logically and tested as a group
-Integration testing focuses on checking data communication amongst
these modules.
-Integrated Testing is white box texting technique
-Integrated testing is conducted by the developers.
Approaches:
-Top Down Approach
-Bottom Up Approach
-Sandwich Approach(Hybrid)
-Stub : is called by the Module under Test.
-Driver: calls the module to be tested.
Bottom up Integration
---------------------------
In the bottom up strategy, each module at lower levels is tested with
higher modules until all modules are tested. It takes help of Drivers for
testing.
Module
/\ 1
|
| Module Module {Driver}-Temporary Program
| 2 3
Bottom
Up Module Module Module
4 5 6
Module
Top
Down 1
|
| Module Module {Stub}-Temporary program
| 2 3
\/
Module Module Module
4 5 6
System Testing
-------------------
-Testing over all functionality of the application with respective client
requirements.
-It is a black box testing technique.
-This testing is conducted by testing team.
-Before conducting system testing we should know the requirements.
-System Testing focuses on below aspects
-User Interface Testing(GUI)
-Functional Testing
-Non-Functional Testing
-Usability Testing
-After Completion of System Testing UAT team conducts
acceptance testing in two levels.
-Alpha testing (Dummy Data)
-Beta testing (Real-Time Data)
Methodologies
-------------------
-White Box Testing
-Black Box Testing
-Grey Box Testing
White Box Testing
-----------------------
-White Box Testing conducts on internal logic of the programs.
-Programming skills are required.
-Ex:Unit Testing & Integration testing
(We know the code)
Test case Input-------->Application code --------> Test Case Output
White Box Testing Approach
Black Box Testing
----------------------
-Testing conducts on functionality of the application whether it is
working according to customer requirements or not.
Ex. System Testing & UAT testing
(We Don't know the code)
Test case Input-------->Application code --------> Test Case Output
Black Box Testing Approach
Grey Box Testing
----------------------
-Both combination of white box and black box testing.
Ex-Database Testing.
Black Box + White Box = Grey Box
Testing Testing Testing
Black Box Testing Types
------------------------------
-GUI Testing
-Usability Testing
-Functional Testing
-Non-Functional Testing
What is GUI ?
There are two types of interfaces in a computer application.
-Command Line Interface is where you type text and
computer responds to that command.
-GUI stands for Graphical User Interface where you interact
with the computer using images(Icons) rather than text.
Graphical User Interface(GUI) testing is the process of testing the system's GUI.
-GUI testing involves checking the screens with the controls like menus,buttons,icons and all
types of bars-tool bar, menu bar, dialog boxes and windows etc.
-During GUI Testing Test Engineers validates user interface of the application as following ascpects:
-Look & Feel
-Easy to use
-Navigation & Shortcut keys
GUI Objects
-Window, Dialog Box, Push Button, Radio Button,Radio Group, Tool bar, Edit Box, Text Box,
Check Box, List Box, Drop down Box, Combo Box, Tab, Tree View, Progress bar, Table,Scroll bar ..
Check List for GUI Testing
-It checks if all the basic elements are available in the page or not.
-It checks the spelling of the objects.
-It checks alignments of the objects.
-It checks content display in web pages.
-It checks if the mandatory fields are highlights or not.
-It checks consistency in background color and color font type and font size etc.
Usability Testing
---------------------
-During this testing validates application provided context sensitive help or not to
the user.
-Checks how easily the end users are able to understand and operate the application
is called usability testing.
Functional Testing
-----------------------
-Object Properties Coverage
-Input Domain Coverage(BVA,ECP)
-Database Testing/Backend Coverage
-Error Handling Coverage
-Calculations/Manipulation Coverage
-Links Existence & Links Execution
-Cookies & Sessions
Object Properties Testing
-Every object has certain properties
-Ex: Enable,Disable,Focus,Text etc..
-During Functional testing Test Engineers validate properties of objects in runtime
Input Domain Testing
-During input domain testing Test Engineers validate data provided to the application
w.r.t value and length.
-There are two techniques in input domain Techniques.
-Equalance Class Partition(ECP) (for value)
-Boundary Value Analysis(BVA) (for lengths)
ECP & BVA
Requirement:
-User name filed allows only lower case with min 6 max 8 letters.
Username
---------------------
Password
----------------------
SIGN IN
ECP for User Name BVA for User Name
___________________________ _________________________________________
Valid | Invalid Parameters Value Result
___________________________ _________________________________________
a.....z A....Z Min 6 valid
0.....9 Min +1 7 valid
Min-1 5 Invalid
Special Characters Max 8 valid
(@,#,$,& etc. Max+1 9 Invalid
____________________________ Max-1 7 valid
________________________________________
Database Testing
---------------------
-During Database testing Test Engineers validate the data w.r.t database.
-Validates DML operations(Insert,Update,Delete&Select)
-SQL Language: DDL, DML, DCL etc..
DDL-Data Definition Language -Create, alter, drop
DML-Data Maniputation language- Insert, update, select,delete
DCL-Commit, roll back etc.
Error Handling Testing
-----------------------------
-Validate error messages thrown by the application when we
provide invalid data.
-The error messages should be clear and easy to understand to
the user.
Calculations/Manipulations Testing
-------------------------------------------
-Validate mathematical calculations.
Links Coverage
-------------------
Links existence-Links placed in the appropriate location or not
Links execution- link is navigating to appropriate page or not.
Types of links:-
-Internal links
-External links
-Broken links
Cookies & Sessions
------------------------
-Cookie-Temporary internet files which are created at client side when
we open the web sites. These files contains User data.
-Session-Sessions are time slots which are allocated to the user at the
serve side.
Non-Functional Testing
-----------------------------
-Performance Testing
-Load Testing
-Stress Testing
-Volume Testing
-Security Testing
-Recovery Testing
-Compatibility Testing
-Configuration Testing
-Installation Testing
-Sanitation Testing
Performance Testing
-------------------------
-Load: Testing speed of the system while increasing the load gradually till
the customer expected number.
-Stress:Testing speed of the system while increasing/reducing the load on
the system to check any where its breaking.
-Volume: Check how much volumes of data is able to handle by the system.
Security Testing
--------------------
-Testing security provided by the system
-Types:
Authentication
Access Control/Authorization
Encryption/Decryption
Recovery Testing
---------------------
Testing Recovery provided by the system. Whether the system recovering
abnormal to normal condition or not.
Compatibility Testing
----------------------------
Testing Compatibility of the system w. r. t OS, H/W & Browsers.
-Operation System Compatibility
-Hardware Compatibility(Configuration Testing)
-Browser Compatibility
-Forward & Backward Compatibility
Installation Testing
-----------------------
Testing installation for the application on customer expected platforms and check
installation steps, navigation, how much space is occupied in memory.
Check Un-Installation.
Sanitation/Garbage Testing
-----------------------------------
-Check whether application is providing any extra/additional features beyond the
customer requirements.
STLC-Software Testing Life Cycle
-------------------------------------------
Testing Terminology
--------------------------
Adhoc Testing:
------------------
-Software testing performed without proper planning and documentation.
-Testing is carried out with the knowledge of the tester about the application and the tester
tests randomly without following the specifications/requirements.
Monkey Testing:
---------------------
-Test the functionality randomly without knowledge of application and test cases is called
Monkey Testing.
Re-Testing:
--------------
-Testing functionality repetitively is called re-testing.
-Re-testing gets introduced in the following two scenarios.
Testing is functionality with multiple inputs to confirm the business validation are implemented
(or) not
Regression Testing
-----------------------
-It is a process of identifying various features in the modified build where there is a chance of getting
side-effects and resting these features
-The new functionalities added to the existing system (or) modification made to the existing system
It must be noted that a bug fixer might introduce side-effects and a regression testing is helpful to
identify these side effects.
Sanity Testing
-----------------
This is a basic functional testing conducted by test engineer
whenever receive build from development team
Smoke Testing
------------------
This is also basic functional testing conducted by developer or
tester before releasing the build to the next cycle.
End to End Testing:
------------------------
Testing the overall functionalities of the system including the data
integration among all the modules is called end -to end testing.
Exploratory Testing
------------------------
Exploring the application and understanding the functionalities
adding or modifying the existing test cases for better testing is
called exploratory testing.
Comments
Post a Comment