Software :
Software is a collection of programs, data, and instructions that tell a computer how to perform
specific tasks.
It is the non-physical (intangible) component of a computer system that enables hardware to function.
Software can be categorized into two types.
System software
Application Software
These are developed based on client business needs in order to perform their business activities
In App s/w again divided into
two types
Ex:-www.cus.com is
a project for “constanza” client. www.qasanjeev.com is a project for “Sanjeev”
- S/W Testing will help to deliver reliable Application to the customer and it will reduce maintenance cost of project.
- Objective of Software testing is to identify defects, when change defects quality improves
Bug :
If a QA (Quality Analyst) detect a bug, they can reproduce the bug and record it with the help of the bug report template.
Defect: -
When the application is not working as per the requirement is knows as defects. It is specified as the difference from the actual and expected result of the application or software.
In other words, we can say that the bug announced by the programmer and inside the code is called a Defect.
Issue :
An issue is a broader term that refers to any problem or concern that affects the quality, functionality, or usability of a software product or project. An issue could be a bug, but it could also be a feature request, a change request, a question, a feedback, a complaint, or a suggestion.
Error :
The Problem in code leads to errors, which means that a mistake can occur due to the developer's coding error as the developer misunderstood the requirement or the requirement was not defined correctly. The developers use the term error.
The fault may occur in software because it has not added the code for fault tolerance, making an application act up.
A fault may happen in a program because of the following reasons:
- Lack of resources
- An invalid step
- Inappropriate data definition
Many defects lead to the software's failure, which means that a loss specifies a fatal issue in software/ application or in its module, which makes the system unresponsive or broken.
In other words, we can say that if an end-user detects an issue in the product, then that particular issue is called a failure.
Possibilities are there one defect that might lead to one failure or several failures.
For example, in a bank application if the Amount Transfer module is not working for end-users when the end-user tries to transfer money, submit button is not working. Hence, this is a failure.
Completeness:- Verify all the
client business needs or requirements are covered or not in terms of the
functionalities in this Application.
In a simple S/W testing is a combination of verification and validation
Software Quality: - As per produces products (Development team) when App fulfilled client with all the client requirements when he will say it is a qualify Application
As per client or customer and user point of view when App fit for use, according to their business needs then we will say that is a quality Application.
Following are the major factors depends on software quality:
1) Budget or cost 2) In time release 3) Reliability
i)
Meet client requirements in terms of functionality
ii) Meet client expectations
Software Testing Methods
In general organization follows 4 types of methods to validate application
1). Manual testing
2).
Automation testing
3). Performance Testing
4). Security Testing
Manual Testing: Without using any automation tools
test engineer will verify the actual behavior of App by performing
the
operations or transactions. For manual testing test engineer will prepare test
cases which are used to validate Applications.
Advantage: - simple & easy
Disadvantages:-
· Time consuming [more time taken to execute]
· Human errors
Automation Testing: Validating Application functional features/functional Test cases by running Automation framework Test scripts is called Automation Testing
Advantages: - 1) less time to execute 2) There is no possibility of human errors
3) Possible for more iterations.
Disadvantages: - 1) Automation tools are expensive 2) Skilled automation test engineers are required
Performance Testing:
Performance
testing is a non-functional software testing technique that determines how the
stability, speed, scalability, and responsiveness of an application holds up
under a given workload. It’s a key step in ensuring software quality, but
unfortunately, is often seen as an afterthought, in isolation, and to begin
once functional testing is completed, and in most cases, after the code is
ready to release.
The
goals of performance testing include evaluating application output, processing
speed, data transfer velocity, network bandwidth usage, maximum concurrent
users, memory utilization, workload efficiency, and command response times.
Security Testing:
Security testing is an important aspect of software testing
focused on identifying and addressing security vulnerabilities in a software
application. It aims to ensure that the software is secure from malicious
attacks, unauthorized access, and data breaches.
Roles and Responsibilities of a Functionality Test Engineer:
1) Analyze the client requirements [BRS, AS IS, RFP, To Be Process & FRS]
2) Identify the test Scenario’s
3) Prepare Test
cases
4) Develop Automation script
5) Review on Test cases & Automation Test script
6) Execution of Test cases and script
7) Defect Reporting
8) Retesting & Regression Testing
SDLC [system development life cycle]
It describes
development process of a software project or product to fulfill the client
requirement with in the specified cost & time
Following are the phases involved in SDLC
1) Requirements collection
2) Requirement Analysis
3) Design
4) Coding
5) Testing
6) Release & maintenance
In this phase B.A will collect requirements with an interaction of client and collected requirements will be documented as BRS\URS\CRS
1) Budget feasibility
2) Time feasibility
3) Requirements are reliable or not in terms of technology to develop
After feasibility study if
project is acceptable then business analyst will intimate to the client by
releasing RFP and SLA documents.
Requirement Analysis:-
In the phase system analyst
will analyse client business needs from BRS based on that he will prepare
detailed document called FRS/ SRS
FRS describes detailed
functionality of each component like which date it should accept & how the
component should work
Design: - In this
phase design Architect will design application architecture to fulfil the
client requirements which are specified at FRS. In this phase following are the
doc prepared by DA
1) GUI design doc
2) Data base Design Doc
3) Application Design Doc / TDD
i)
GUI Design Doc :- It contains prototypes of an
application
üPrototype will help to foresee the future implementation of an
application & better
understandability of functionalities
ü Proto type is a sample
application without functionality (dummy screens)
ü Prototypes are not mandatory
for all projects
ii)
Data base Design Doc :- It describes about database structure and
application in terms of no of tables relation b/w those tables & rules
implemented in database
iii)
ADD/
Technical Design doc :- it contains 2
types of sub doc’s 1)
HLD 2) LLD
HLD: - It describes no of
modules required for a project & relation b/w those modules
Ex:- For a Hospital management system may contain following modules.
Modularization: splitting the
projects with set of modules for easy development of application is called
Modularization
Module: It is a some portion
of application which have ssthe set of similar requirements of functionalities
LLD: - There should be
individual LLD for each module in order to develop the logic while writing the
programs
Note: - Design docs are important for developers in order to write the
programs
Coding / Implementation: - In
this phase developers will write the program using programming language (for
windows based application) or scripting languages (for web based application)
O/p of this phase is source code document
(s.c.doc)
Testing:- After completion of
coding programs are available for execution. Initially developers will perform
unit test & integration testing using W.B.T (white box testing techniques)
After that separate testing
team will perform system testing using B.B.T (Black Box Testing)
Then client also performs user acceptance testing Release & Maintenance:-
Release: - After system
testing & creating user acceptance testing on our work product then we
deliver application to the client for further use at live environment is called
“Release or Go live or Production
Maintenance: - while using
the application client can identify some defects or he may require some other
functionality in the existing system then he will send change request (C.R) to
the development team
Based on initial agreement (SLA), CCB (change control board) will work on change request
Common problems
in SDLC:-
1) Poor Requirements:- when
requirements are incomplete & not clear to understand that will be a
problem to develop the application
2) Unrealistic schedule :- If
too much of work is crammed/ assigned in too little time that will be a problem
3) Inadequate testing/ Incomplete testing :-
In present scenario it is difficult to estimate how much testing is sufficient to validate application
4) Dynamic changes in requirement :- When client continuously sending changes in requirements then that will be a problem
5) Miscommunication: - lack of communication b/w Developers , clients , DA , SA..Etc.
No comments:
Post a Comment