Manual Notes Code Studio
Manual Notes Code Studio
-----------------------------------------------------
What is Software
Software is collection of programs to help us to perform a task.
Types of Software
Application software
System Software
Programming software
Advantage
a) simple & easy to understand
b) Each phase has specific deliverable and review process which makes it easy to manage.
c) Works well with smaller projects where requirements are very well understood.
d) Clearly defined stages
e) Result of each phases are well documented.
Dis- Advantage
a) Cannot accommodate changing requirements. Thefore , not suitable for project where there is
risk of requirement change.
b) It is not good for complex projects
c) No working software is produced until late during the life cycle. Testing will start only after
coding is complete.
d) There is high amount of risk and uncertainity.
e) If there is defect in requirement phase it will be continued in the later phases also.
Spiral Model
Spiral Model is Iterative in nature and It is also called Version Control Model.
It allows incremental releases of the product or incremental refinement through each iteration
around the spiral.
It overcomes limitation/drawback of waterfall model.
It is best suited for large project or where there is dependency in modules.
Advantages
Review
Inspection
Walkthrough
Dynamic Testing
Whitebox testing
Functional Testing
Integration Testing
System Testing
User Acceptance Testing
Verification
Validation
Validation is a dynamic mechanism of testing and validating if the software product actually
meets the exact needs of the customer or not.
Validation mean checking whether the software product is right or not.
Dynamic testing is performed for validation.
Advantages:
Disadvantages:
Initial investment is more because test team & development team involves right from the early
stage.
Whenever there is change in requirement, the same procedure continues. It leads more
documentation work.
The Moderator : Leads the review process. His role is to determinse the type of review, scheduling
meeting, distribute documents to other particpants.
The Author: He is writer of the "document under review" . His job is to understand improvement.
The Scribber/writter/recorder: He is responsible to record each defect found and any suggestions given
in the meeting for process improvement.
Technical Review : It is lead by trained moderator and technical reviewers will read the document
before meeting for better understanding and to suggest improvement to author.
Requirement review
Design review
Code review
Test plan
test case
Walkthrough : It is a informal review. In this author reads the document or code and discuss with the
peers so that they note out the defects ans suggestions. It is not preplanned and it can be done
whenever it is required.
Inspection : It is most formal review type, in which an author requests the services of a moderator,
scribe, reviewers in a formal meeting. The moderator books the room, sends out the material. The
reviewers read the material before the meeting. During the meeting, the reviewers take turns reading
the work artifact out loud. The scribe takes notes of issues the reviewers discovered in advance and
during the meeting. A formal follow-up is carried out by the moderator after inspection.
SDLC Phases
Requirement Analysis & Gathering Phase
Design
Coding
Testing
Deployment
Maintenance
Quality Assurance It ensures the prevention of defects in the process used to make Software
Applications. So the defects don’t arise when the Software Application is being developed.
QA aims to prevent defects.
QA is responsibe for full SDLC life cycle.
--------------------------------------------------------
Quality Control involves in product-oriented activities. It executes the program or code to
identify the defects in the Software Application.
QC Aims to identify and fix defects.
QC is responsible for software testing.
QE - Quality Engineers
1) SDLC Phases
2) Requirement Analysis & Gathering phase
3) Design
4) Coding
5) Testing
6) Deployment
7) Maintenance
There are mainly 4 levels of software testing
Unit Testing: checks if sofware component are fulfilling functionalities or not. It is done by developers in
development environment.
Integration Testing: checks the data flow from one modeule to another module. Integration means
combining.
For example , In this testing phase difference modues are combined and tested as a group to make sure
that integrated system is ready for system testing.
2) Bottom up integration : In Bottom Up Integration Testing, the low-level modules are integrated and
tested first i.e Testing from sub-module to the main module. In this approach drivers are used as a
temporary module for mission module if module is under development or not available. Drivers , it calls
the module to be tested.
--------------- ----------------------
3) System Testing: System testing is performed on integrated system. It involved load , performace
testing, reliability and security testing. It allows checking system's compliance as per the requirement. It
focus on
1. Functional testing
2. non functional testing
3. UserInterface testing
4. Usability testing
It is end-to-end testing where the testing environment is parallel to the production environment. In the
third level of software testing, we will test the application as a whole system.
Types of UAT
Alpha Testing:
Beta Testing:
System Testing
System testing is 3rd level of testing which focuses on verifying the system as a whole meets
specified requirement.
This is performed after Integration testing and before User Acceptance testing.
It is performed by the testing team independent of development team.
It is black box testing.
This testing is performed in testing environment parallel to production environment.
2) Functional Testing
3) Usability testing
GUI testing : GUI testing is software testing type that checks the Graphical user Interface of the Software
to ensure the functionalities of the software works as per requirement specification.
----------------------
Check for -
1. All the GUI elements for size, position, width, length, and acceptance of characters or numbers.
In Usability Testing, we check the application for user friendliness, efficiency and accuracy."
Easy to understand
Easy to access
Look and feel
Faster to Access
Effective Navigation
Good Error Handling
Context Sensetive Help : Online help or application embedded help for improve user experience.
Functional Testing
Functional Testing is a type of Software Testing whereby the system is tested against the
functional requirements.
Functions/features are tested by providing appropriate input and examining the output. The
actual results are then compared with expected results.
Functional testing ensures that the requirements are properly satisfied by the application.
Testers follow the following steps:
1) Database Testing
Database Testing is used to validate the functional requirements of a database from the end-user’s
perspective.
The main goal of functional database testing is to test whether the transactions and operations
performed by the end-users which are related to the database works as expected or not.
SQL (Structure Query Language) : It is a programming used to define and manipulate the databse.
DDL (Data Definition Language)
DML (Data Manipulation Language) - Insert, Delete , Query , Update
Database testing involves checking :
Schema / Mapping Testing
Stored Procedures and Views Testing
Trigger Testing
Tables and Column testing
Database Server Check
Calculation Testing
Error Handling Testing
Verify Hyperlinks in case of Web application testing
Cookie Testing
Session Testing
Software Testing Concepts - Session #07
Non-functional testing verifies the attributes of the system/software such as performance, load,
stress, scalability, security, compatibility, etc.
It focuses on improving the user experience on how fast the system responds to a request.
It checks the attributes such as memory leaks, performance, or robustness of the system.
It covers all the areas that are not covered in functional testing.
It is performed once the functional testing is complete.
This is Black box testing technique as it does not require knowledge of the internal system i.e it
does not require knowledge of the code for the tester.
1) Performance Testing: Evaluate the overall performance / speed of the system. It validates that
the system meets the expected response time.
2) Load Testing: Slowly/gradually increase the load on the application/system and check the
response time / speed of the application.
3) Stress Testing: Sudden increase the load on the application/system and check the response
time /speed of the application.
4) Volume testing: We evaluate how much data application is able to handle or we can it evaluates
the behavior of the application when large amount of data is passed.
5) Security Testing: Evaluates how secure is our application , to ensure there is no loophole in the
application leads to thread or data loss.
This includes testing of authentication and authorization.
authentication - who you are
authorization/access - what you can do
6) Recovery Testing: Checks that application terminates gracefully in case of failure and data is
recovered.
7) Compatibility Testing: We check whether the application is compatible with difference
environment like web browser, hardware platform, databases, operating system, newtoworks ,
different version , configuration etc..
In this we ensure that application works without any issue in different environment.
8) Forward Compatibility : check the behavior and compatibility of the hardware or software with
newer version.
9) Backward compatibility :This testing is performed to check the behaviour and compatibility of
the hardware or software with their older versions.
10) Instability Testing: checks if the software installs and uninstalls correctly.
11) Sanitation Testing/Garbage Testing : During this testing tester are finding extra functionality in
build w. r. to Customer requirement.
Software Testing Concepts - Session #08
Regression Testing
It is used to authenticate a code change in the software does not impact the existing functionality of the
product. Regression testing is making sure that the product works fine with new functionality, bug fixes,
or any change in the existing feature.
1) Unit Regression : testing only the changed feature is called the Unit Regression Testing.
2) Partial/Regional Regression: test the modification along with the impact area or regions . To find the
impacted areas , impact analysis meeting is conducted and impact list is prepared.
3) Complete Regression : Test the modification along with the remaining areas.
4 ) Re-Testing : Re-testing Testing means testing the functionality or bug again to ensure that bug is fixed.
If not fixed, defects need not be re-opened. If fixed, the defect closed. This is to ensure that the bugs of
previous build is fixed or not.
Smoke Testing is performed after software build to find out the critical /basic functionalities of the
software is working find. This is to check whether software is testable or not.
Sanity Testing : Aims to quickly evaluate whether the basic functionality of a new software build
is working correctly or not.
Adhoc Testing
Exploratory Testing
In this testing, first application under test is explored, flow of application is understood , then
test case is designed and test cases are executed.
This testing is performed when requirement is missing.
This is also informal testing process.
It involves test design and control and notes are taken
progress is also tracked.
It helps to study the product and agument the document and also research the bug.
Monkey Testing
This test is also random in nature, therefore test cases are not used in monkey testing.
Monkey testing can be performed by an individual who does not have a good knowledge of the
application.
Tester test randomly by clicking on random objects and entering the random and invalid data to
check is the application give an error or not.
Negative Testing
In E2E testing, tester create an environment identical to the one that will be used by real users. Then
tester tests all actions that user might perform on the application.
Requirement: Password text box field shall allow users to enter passwords between 8 and 15
alphanumeric characters.
Various positive and negative test scenarios of above requirement.
36 to --- (invalid)-55
min=1 8 (valid)
min-1= 17(invalid)
min+1= 19(valid)
max = 35(Valid)
max +1= 36(invalid)
max-1 = 34 (valid)
MANUAL
Test Case-1 Test Case-2 Test Case-3 Test Case-4
TESTING
User name - Condition1 T T F F Software
Testing
password - Condition2 T F T F
This technique is appropriate for preparing test data to test functionalities which has logical relationship.
Allows user to login only when user name and password are correctly entered.
Example 2 : Transferring money online to an account which is already added and approved.
Test Case- Test Case-2 Test Case- Test Case- Test case - 5
1 3 4
Account Approved T T T T F
OPT Matched T T F F X
Sufficient Money in T F T F X
account
Transfer money Execute
2) Requirement: A text box field shall allow users to enter alphabets between 6-20 characters.
Software
Testing Concepts - Session #15
-----------------------------------------
Error guessing is a software testing technique in which the tester uses their experience of prior testing
& intuition to guess the types of errors that might occur in a system, and then tests for those specific
errors.
It is not a replacement for formal testing methods and should not be relied upon as the sole testing
approach.
The error guessing is best used to supplement other testing techniques and methods to identify defects
that may have been missed by other approaches.
Example
---------
Suppose a tester is testing a web application that allows users to create and manage accounts.
The tester might use error guessing to identify potential errors that could occur during the account
creation process.
Based on their experience with similar systems, the tester might guess that the following errors could
occur:
Create an account with a weak password (e.g., “password” or “123456”). Verify that the system displays
an error message and does not allow the account create.
Duplicate usernames-
-------------------------
The system may not properly check for duplicate usernames, allowing users to create multiple accounts
with the same username.
Attempt to create multiple accounts with the same username. Verify that the system displays an error
message and does not allow the duplicate account create.
Create a user profile and verify that the information properly saved and can access later.
Phases of SDLC
Phases of STLC
1) Requirement Analysis
2) Test Planning
3) Test Design
4) Test Execution
5) Defect Reporting & Tracking
6) Closure/ Sign Off
5) Reproducible (Yes / No): Yes -> Every time defect appears during test execution
No -> Rarely defect appears
10) Priority: Importance of the defect w.r.t customers (high / medium / low)
13) Assign to: Name of the responsible person in development team -> PM
14) Build Version ID: In which build, Test Engineer fount the defect
15) Suggested fix (Optional): Tester tries to produce a suggestion to solve this defect
16) Fixed by: PM or Team Lead
Defect Age: The time gap between “reported on” & “resolved on”
Test Plan
----------
Test plan is like a blue print of how the testing activity is going to take place in the project.
8) Exit Criteria
9) Suspension and Resumption Criteria
10) Responsibilities
11) Risk and Contingencies
12) Assumptions
13) Review and Approvals