Académique Documents
Professionnel Documents
Culture Documents
Software :-
1. Collection of programs to perform certain operation.
2. Set of instructions , data for execution of specific task
Types of Software:-
a) System Software :-
1. Set of instructions which are dedicated to managing system (Computer / Mobile / Tablet etc …)
is called as system software.
2. Communicates with hardware devices
3. Controls and monitors various hardware resources like CPU, memory, peripheral devices like
monitor, printer etc.
4. Supports the development and execution of other application software.
Operating system
Programming language translators
Communication software
Compiler and Interpreters
Command line shell
b) Application Software :-
1. Application software is a collection of one or more programs used to solve a specific task or to
fulfill certain requirement
2. This is used to develop various applications like games , websites , etc …
Software-Company:-
1. There are two types of company
Product Based:-
Product based company is a company which makes their own products to provide the
solution based on market value to meet clients requirements
Service Based:-
Service based is a company which provides software products and services to their
Respective clients.
Product And Project:-
a) Product :-
i. A software application developed by vender company to meet multiple customers requirement
is called product.
ii. A software application that can be offered to market to solve a problem.
iii. A software application i.e. developed to satisfy customers need
iv. Requirements gather from market survey or its own
v. Develop the application with its own time and avails it for all.
b) Project :-
I. A software application developed by third party vendor company for specific customer
requirement is called project
II. Customer other term known as client
III. Takes requirements from particular client and develop application and handover application
to respective clients within given time period
Need of Testing:-
I. To ensure software is bug free . And it should not enter in to any failure state.
II. To ensure software meets our customer requirements
III. To ensure software meets end user expectations
IV. To ensure quality of the product
V. To ensure effective performance of software application or product.
Software-Testing:-
1) Software testing is defined as an activity to check whether the actual results match the expected
results and to ensure smooth execution of software system or application to meet the customer
satisfaction as well as client expectation
2) Software testing also helps to identify errors or defects and missing requirements in contrary to
the actual requirements. It can be either done manually or using automated tools.
3) It’s a integral part of software development process .
4) Main objective of testing is to release quality product to client.
Software Quality:-
I. Quality is defined as justification of all the requirements of a customer in a software product.
II. It is the degree of conformance to explicit or implicit requirements and expectations.
III. Explicit: clearly defined and documented
IV. Implicit: not clearly defined and documented but indirectly suggested
V. Requirements: business/product/software requirements
VI. Expectations: mainly end-user expectations
VII. Quality software is reasonably :-
1) Bug free
2) Delivered on time
3) Within budget
4) Meeting requirements and/or expectation
5) Maintainable
Why Software has bugs :-
Following are the various reason for software having bugs .
Miscommunication or No Communication :-
The success of any software application depends on communication between stakeholders,
development and testing teams. Unclear requirements and misinterpretation of requirements
are two major factors causing defects in software.
Also, defects are introduced in the development stage if exact requirements are not
communicated properly to development teams.
Software Complexity
The complexity of current software applications can be difficult for anyone without experience in
modern-day software development.
Programming Errors :-
Programmers, like anyone else, can make programming mistakes. Not all developers are domain
experts. Inexperienced programmers or programmers without proper domain knowledge can introduce
simple mistakes while coding.
Lack of simple coding practices, unit testing, debugging are some of the common reasons why these
issues get introduced at the development stage.
Changing Requirements:-
The customer may not understand the effects of changes or may understand and request them
anyway – redesign, rescheduling of engineers, effects on other projects, work already completed
that may have to be redone or thrown out, hardware requirements that may be affected, etc.
If there are many minor changes or any major changes, known and unknown dependencies
among parts of the project are likely to interact and cause problems, and the complexity of
keeping track of changes may result in errors. The enthusiasm of engineering staff may be
affected.
In some fast-changing business environments, continuously modified requirements may be a
fact of life.
In this case, management must understand the resulting risks, and QA and test engineers
must adapt and plan for continuous extensive testing to keep the inevitable bugs from running
out of control.
Not having a proper test setup (test environment) for testing all requirements.
Starting to write code or test cases without understanding the requirements clearly.
The incorrect design which leads to issues being carried out in all phases of the Software Development
Cycle.
Releasing software patches frequently without completing the Software Testing Life Cycle.
Not providing training to resources for the skills needed for developing or testing the application
properly.
Giving very little or no time for Regression Testing.
Not Automating Repetitive Test Cases and depending on the testers for manual verification every time.
Not prioritizing test execution.
Not tracking the development and test execution progress continuously. Last-minute changes are likely
to introduce errors.
The wrong assumption made while coding and testing stages.
Feasibility Study:-
Once the requirement analysis phase is completed the next step is to define and document software
needs.
This process conducted with the help of 'Software Requirement Specification' document also known
as 'SRS' document. It includes everything which should be designed and developed during the
project life cycle.
There are mainly five types of feasibilities checks:
o Economic: Can we complete the project within the budget or not?
o Legal: Can we handle this project as cyber law and other regulatory framework/compliances.
o Operation feasibility: Can we create operations which is expected by the client?
o Technical: Need to check whether the current computer system can support the software
o Schedule: Decide that the project can be completed within the given schedule or not.
Design:-
This is third phage of SDLC
The system and software design documents are prepared as per the requirement specification
document. This helps to understand overall architecture
This phase is treated as input for next SDLC model
There are two types of design document
I. High-Level Design (HLD):-
a. Brief description and name of each module
b. An outline about the functionality of every module
c. Interface relationship and dependencies between modules
d. Database tables identified along with their key elements
e. Complete architecture diagrams along with technology details
II. Low-Level Design(LLD):-
Coding:-
Testing:-
Testing is the last phase of the Software Development Life Cycle before the software is delivered to
customers.
This phages comes after development phase. In this phase once development of software application
completes , whole application is deployed into test environment.
The testing team starts testing the functionality of the entire system. This is done to verify that the
entire application works according to the customer requirement.
During this phase, QA and testing team may find some bugs/defects which they communicate to
developers. The development team fixes the bug and send back to QA for a re-test. This process
continues until the software is bug-free, stable, and working according to the business needs of that
system.
Once the software testing phase is over and no bugs or errors left in the system then the final
deployment process starts.
Once the product is tested, it is deployed in the production environment or first UAT (User
Acceptance testing) is done depending on the customer expectation.
In the case of UAT, a replica of the production environment is created and the customer along with
the developers does the testing. If the customer finds the application as expected, then sign off is
provided by the customer to go live.
Maintenance:-
Once the system is deployed, and customers start using the developed system, following 3 activities
occur
Bug fixing - bugs are reported because of some scenarios which are not tested at all
Upgrade - Upgrading the application to the newer versions of the Software
Enhancement - Adding some new features into the existing software
Who Performs:-
Client
End-user
Software Testing life Cycle (STLC) :-
A. STLC is an integral part of Software Development Life Cycle (SDLC). But, STLC deals only with the
testing phases.
B. STLC is a sequence of different activities performed by the testing team to ensure the quality of the
software or the product.
STLC Phases :-
There are 6 phases in STLC . Each of these stages has a definite Entry and Exit criteria, Activities &
Deliverables associated with it.
Refer below diagram for different phases in STLC.
STLC Phases Description :-
Requirement Analysis :
Requirement Analysis is the very first step in Software Testing Life Cycle (STLC). During this
phase, test team or Test Manager gathers Business Requirement Specification Document (BRD) from
stakeholders like Business Analysist(BA)/client and share this to team.
Test team studies/analyze the requirement documents from a testing point of view to identify the
testable requirements. If any conflict, missing or not understood any requirement, then QA team
follow up with the various stakeholders like Business Analyst, System Architecture, Client,
Technical Manager/Lead etc for better understanding of the document.
Different types of requirements :-
1) Business Requirements – They are high-level requirements that are taken from the business case
from the projects.
2) Architectural & Design Requirements – These requirements are more detailed than business
requirements. It determines the overall design required to implement the business requirement.
3) System & Integration Requirements – It is detailed description of each and every requirement. It can
be in form of user stories which is really describing everyday business language. The requirements
are in abundant details so that developers can begin coding.
Entry Criteria :-
Following documents should be available
1) Requirements Specification
2) Application architectural
3) User Acceptance criteria should be well defined.
Activities :-
1) Prepare the list of questions or queries and get resolved from Business Analyst, System
Architecture, Client, Technical Manager/Lead etc.
2) Identify types of tests like Functional, Security, and Performance etc to be performed
3) Define the testing focus and priorities.
4) Prepare Requirement Traceability Matrix (RTM).Generally this is done by Test Manager or
Lead. But all team members have to update this throughout the test life cycle .
5) List down the Test environment details where testing activities will be carried out.
6) Checkout the Automation feasibility if required & prepare the Automation feasibility
report.
Deliverables / Exit Criteria :-
1) List of questions with all answers to be resolved from business i.e. testable requirements
2) Requirement Traceability Matrix (RTM)
3) Automation feasibility report (if applicable)
Test Planning :-
Its is one of the important phase of Software testing life cycle . This phase also called as Test
Strategy phase.
This test planning is a document which will be prepared by senior people like Test lead or sometimes by
test manager