A Research Study on importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC) Models & Quality Assurance for Product Development using Agile & A Software Quality Framework for Mobile Application Testing
A Research Study on importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC) Models & Quality Assurance for Product Development using Agile & A Software Quality Framework for Mobile Application Testing
Similaire à A Research Study on importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC) Models & Quality Assurance for Product Development using Agile & A Software Quality Framework for Mobile Application Testing
Similaire à A Research Study on importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC) Models & Quality Assurance for Product Development using Agile & A Software Quality Framework for Mobile Application Testing (20)
A Research Study on importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC) Models & Quality Assurance for Product Development using Agile & A Software Quality Framework for Mobile Application Testing
2. Paper Title
• A Research Study on importance
of Testing and Quality Assurance
in Software Development Life
Cycle (SDLC) Models
Publication
• International Journal of Soft
Computing and Engineering
(IJSCE) ISSN: 2231-2307, Volume-
2, Issue-3, July 2012
Authors • Maneela Tuteja, Gaurav Dubey
Paper Information
4. Software Testing
• Encircling variety of activities along the development cycle and
beyond, aimed at different goals.
• Assessing software to determine its quality.
• Its consumes 40-50% development efforts, for high reliability it
requires more efforts, it is a part of SE.
• SE is a very broad area, which have many technical and non-
technical areas.
– Design
– Specification
– Implementation
– Maintenance
4
5. Software Testing…..
• In this paper focus on testing techniques, as well as latest techniques
discuss.
• Now a days testing is most challenging and dominating activity using by
industry.
• Software Testing trade off between budget, time and quality.
• Testing is single most used approach to ensuring the software quality.
• Purpose of Software testing is
Quality Assurance
Verification
Validation
5
6. Introduction
Software testing is the process of executing a program or system with the
intent of finding errors.
Detecting all of the different failure modes for software is generally
infeasible.
Discovering the design defects in software, is equally difficult, for the
same reason of complexity.
The iterative process of software testing consists of
Designing tests
Executing tests
Identifying problems.
Getting problems fixed
6
7. Objective of Testing
The objective of testing is to find problems and fix them to improve
quality.
Demonstration: It shows that, system can be used for integration
with acceptable risk.
Detection: It discovers defects, errors and deficiencies.
Prevention: It provides information to prevent or reduce the
number of errors clarify system specifications and performance.
Improving Quality: By doing effective testing, we can minimize
errors and hence improve the quality of software.
7
8. Types of Software Testing
There are various types of testing techniques that have been
invented.
There are different testing technique use for different artifacts
like designing, coding and planning software requirement
specification.
All the testing techniques are divided into mainly three
categories:
Black Box: which tests external behavior of the system.
White Box: which tests internal behavior of the system.
Both internal and external behavior are called grey box
testing.
8
9. Software Testing Techniques
Black box Testing White box Testing Grey box Testing
Functional & system
testing.
Unit testing Integration Testing
Stress testing Error handling testing
Performance testing Desk checking
Regression Testing
Usability testing Code walk through
Acceptance Testing Code reviews and
inspection
Beta testing Code coverage testing
Ad hoc Testing Statement/ Path/
Integrati on Testing,
Regression testing Function testing,
Intersystem testing Complexity testing
Parallel testing Mutation testing
Boundary value 9
11. SDLC & Quality Assurance
Software development life cycle is basically a systematic way of
developing software.
It includes various phases starting from the functional requirement
than designing takes place then development and then testing.
After testing is finished, the source code is generally released for
Unit Acceptance Testing (UAT) in client testing environment.
After approval from client, the source code is released into
production environment.
11
12. Software Development Process Models
Software development approaches defined and designed which
are used during development process of software.
Various types of SDLC Models are :
Water-fall Model
Prototype Model
RAD Model
V Model
12
13. The waterfall Model
• The Waterfall" approach, the whole process of
software development is divided into separate
process phases.
• Waterfall model are:
• Requirement Specifications phase
• Software Design
• Implementation
• Testing
• Deployment of system
• Maintenance
13
14. The waterfall Model
Advantages
Waterfall model is used where the duration of project is very less,
and it is best suited for small projects.
Waterfall model is suitable when the specification and
requirements are clearly stated for the software projects.
Disadvantages
When a mistake occurs in a particular phase, the same mistakes
gets carried over to the last phase
14
15. The Prototyping Model
• A prototype is a working model that is
functionally equivalent to a component of the
product.
• In such a scenario where there is an absence
of detailed information regarding the input to
the system, the processing needs and the
prototyping model may be employed.
15
16. The Prototyping Model
Advantages
With reduced time and costs, Prototyping can improve the
quality of requirements and specifications provided to
developers.
Prototyping requires user involvement and allows them to see
and interact with a prototype.
Disadvantages
Insufficient analysis: The focus on a limited prototype can
distract developers from properly analyzing the complete
project.
16
17. The Spiral Model
• The spiral model, also known as the spiral
lifecycle model, is a systems development
method (SDM) used in information technology
(IT).
• This model of development combines the
features of the prototyping model and the
waterfall model.
• The spiral model is intended for large, expensive,
and complicated projects.
17
18. The Spiral Model
Advantages
Estimates (i.e. budget, schedule, etc.) Become more realistic as
work progresses, because important issues are discovered earlier.
Disadvantages
As it is highly customized so there is limiting re-usability.
It is applied differently for each application.
There is a risk of not meeting budget or schedule.
18
19. Quality Assurance
Quality requires a commitment, particularly from top
management. Quality is frequently associated with cost, meaning
that high quality equals high cost.
The aim therefore, is to prevent quality defects or deficiencies in
the first place, and to make the products assessable by quality
assurance measures.
Quality demands requirement specifications in enough detail that
the products produced can be quantitatively measured against
those specifications.
The undetected bugs in the software that caused millions of losses
to business have necessitated the growth of independent testing,
which is performed by a company other than the developers of the
system. 19
20. Quality Assurance……
Quality management decreases production costs because the
sooner a defect is located and corrected, the less costly it will be in
the long run.
Total cost of effective quality management is the sum of four
following component costs:
Prevention costs consist of actions taken to prevent defects
from occurring in the first place.
Inspection costs consist of measuring, evaluating, and auditing
products.
Inter failure costs are those incurred in fixing defective
products before they are delivered.
20
22. Problem Definition
Software development process models
Include testing as a single phase
But required in each phase
Error doesn't exist just in syntax
Can be in software requirements document,
design document, test plan
There exist a lot of testing techniques to find
those error
Now here first
problem raises
Which technique will be
suitable for
which phase software
development life cycle?
By solving this problem
Improvement of quality on
each phase will be possible
Full utilization of all testing
techniques
22
23. Problem Definition…
Software quality is essential part of software project
Varity of quality assurance and control activities
Different quality attributes need different types of testing
Here another problem
raises
Which technique for
which attribute?
Solution of this problem
help save time and produce quicker
results
streamlined testing of project attributes
23
24. Proposed solution
• V model of testing given by Mr. Perry
– extended SDLC
– Include more phase
24
25. Apply Testing on all Phases of SDLC
Experts suggestions
Perform testing on each phase
Start testing as soon as possible
Requirement analysis should be done by only tester
25
36. CONCLUSION
Testing is necessary on each phase of SDLC
There are various types of SDLC (Waterfall Model, RAD Mode,
Iterative Model, Proto Type Model, Spiral Model, V-Model, etc)
But all of them start testing after implementation
Through this paper a effort is made to associate testing types with
SDLC phases and project attributes
FUTURE WORK
In future it will possible to relate new coming testing techniques
with phases of SDLC
It will help in taking full advantage of all testing techniques
36
37. Paper Information
37
Paper Title
• Quality Assurance for Product
Development using Agile
Publication
• 2014 International Conference on
Reliability, Optimization and
Information Technology - ICROIT
2014, India, Feb 6-8 2014
Authors
• Anil Agarwal
• NKGarg
• Avirag Jain
38. Presentation Agenda
38
Traditional v/s Agile approach
Differences between models
Agile challenges
Agile testing strategies
Agile testing quadrant
Strategies for improving quality
Conclusion
40. TRADITIONAL VS. AGILE
Waterfall:
More properly called the
'Traditional‘ approach.
It is a linear approach to
software development.
It represents a distinct
stage of software
development, and each
stage generally finishes
before the next one can
begin.
Agile:
It is an iterative, team-
based approach to
development.
This approach
emphasizes the rapid
delivery of an application
in complete functional
components.
40
42. Poses a
series of
QUESTIONS
42
What is Role of
QA in Product
development
using Agile?
Is QA a skill that
every developer
should possess in
Agile model?
Do Agile teams
actually need
members with
QA backgrounds?
What does it
really mean to be
an Agile tester?
Are we ready to
hand over the
testing keys to
the developers?
43. HOW AGILE IS DIFFERENT
Incremental & iterative development
Greater Collaboration
Responds to changes quickly & efficiently
Requires far greater discipline throughout the development cycle
Testing is done concurrently with implementation
Requires cross-functional teams
Every user story must satisfy the acronym INVEST
43
44. 44
1.
Knowledgeable
and
Experienced
teams
2. Requires
change in
Mindset &
Approach
3.
Communication
and
Collaboration
4. Continuous
Tracking &
Monitoring
5.Continuous
integration and
release of new
builds
6. Requires
change in Mindset
& Approach
7.Communication
and Collaboration
8. Continuous
integration and
release of new
builds
CHALLENGES
45. AGILE - TESTING STRATEGIES
Involve QA right from the beginning
Testing is a key component of agile development
Encourage performing Multiple Roles
Development and Testing should move in parallel
Take feedback, improve and move ahead
Testing throughout the SDLC
Inception / Sprint 0
Construction Sprints
Transition
45
Inception / Sprint 0 –
The goal of this phase is to
initiate the team and get
your team going in the right
direction.
Testing/validation activities
include beginning to set up
testing environment and
tools
Potentially reviewing the
initial models, plans, and
vision or stakeholders goals
document.
Inception / Sprint 0
46. Construction Sprints
46
Goal is to produce more
potentially shippable software.
Agile Team:
Testers are embedded in
the development team
Independent Testing Team:
support multiple project teams
and complex forms of testing
which are typically beyond the
ability of the "whole team" to
perform on their own.
Functional Testing
Acceptance Testing
Exploratory Testing
Scenario Testing
System Testing
Usability Testing
47. 47
Goal of the Transition phase is to
successfully deploy your system into
production.
This can be quite complex in practice
including:
Training of end users
Support people and operations
Peoplecommunication
Marketing of the product release
Backup and potential restoration
Staged deployment of the system
Final translation of the UI and
documentation
Finalization of system, user
documentation and so on.
Transition
50. STRATEGIES FOR IMPROVING QUALITY
Bring SQA as a whole in Agile & not just Software testing
Involve team members performing multiple roles
Development & Testing move in parallel
Get continuous feedback from Customers, improve & move ahead
Continuous improvement in team competencies
(domain I technology I process)
Improve quality of user stories
Avoid setting up over ambitious targets
Automate as much as possible
Keep Test Criteria, Entry & Exit levels
Advanced Pair programming (pair QA alongside with Developers)
50
51. Paper Information
Paper Title
• A Software Quality Framework for
Mobile Application Testing
Authors
• Yajie Wang, Ming Jiang, Yueming
Wei
Publication
• The Fourth International
Conference on Advances in System
Testing and Validation Lifecycle.
2012
51
52. Introduction
At present, with the development of wireless networks and the
popularization of mobile devices, mobile applications become more
an more popular
With the rapid growth of mobile application market, demands on
software quality rises rapidly
Applications are expected to be more quick, responsive and have
good user interface experiences
Focus on mobile software quality only form the view of test and
validation
52
53. Test Framework Architecture
The framework is composed of 4 components:
A mobile devices information system
A defect system for mobile applications
An aggregation of key test scenarios
A mechanism for usability test
55. Mobile Devices Information System
Include:
Device database
Device real time management system
Accessed by the whole team members
56. Defect System
The defect system for mobile applications is distinguished from an
ordinary defect system
Defines some special type of defects and special attributes of defect
QA testers apply defect system and found defects then make it easy
to be understood
57. Aggregation of Key Test Scenarios
It collects five parts:
Test scenarios related to resource limitation
Test scenarios related to imitating real usage activities
Test of the server portion of the application
Test of those related to privacy, legacy and charge
Test for good user experience
Mobile application verified from these five aspects can be called a
valid application
58. Usability Test
Describes an effective way to have a usability test
Used by QA tests to gain usability challenge and advice from
outside the application’s working team
59. Implementation of the Framework
Structuring a mobile devices information systems
Building a defect system for mobile applications
Defining an aggregation of key test scenarios
Establishing a mechanism for usability test
60. Structuring a mobile devices information systems
Diversity of mobile devices makes great difference to mobile
application development and test
“Database” refers to anything from a Microsoft Excel
Spreadsheet to a little SQA database
Device info. Stored in the database during project
requirement phase
61. CONT….
A record for mobile devices should include following items:
Important device technical specification details
Modification information especially hardware or any firmware
upgrade
Known bugs and important limitations with the device
For real device management, two aspects are highlighted:
Library check-in and check-out system
What device is a “clean” device
62. Building a Defect System for Mobile Applications
Almost all defects for desktop software may occur on mobile
applications
Some typical defaults are:
Program crashing
Unexpected terminations
Inadequate input validation
Responsiveness problems
Usability issues etc
63. CONT….
Some types of defects typical on mobile applications are highlighted:
Using too much memory space
Usability issues related to input methods, font sizes etc
Application “not playing nicely” on the device means not
compatible with other applications
Not handling private data securely
Application not conforming third party to the agreements
64. CONT….
Whenever a system is adapted, some defect attributes to be
encompassed in the system.
These are:
The application version information , language and so on
Device configuration and state information
Steps to reduce the problem
Device screenshots
65. Defining an Aggregation of Key Test Scenarios
Resource limitations of mobile applications include
Device limitations (memory, processing power, screen type,
battery level, storage capacity, platform version, input method
etc)
Network limitations (bandwidth and accessibility)
Imitating real usage activities
QA testers imitates some strange activities during testing the
application and divide these activities into two aspects:
Compatible with other programs
How to deal with accidents
66. Server and service testing
Testers often focus on the client portion of the mobile application
In fact, most applications depend on the server
Make sure thorough the server and service testing is the part of
overall test plan not just the client portion
Related to charge, privacy and legacy
QA testers should test if an application complies with policies,
protocols and agreements which the application must meet.
Common agreements are Android License Agreement
Requirements, Mobile Carrier/Operator Requirements and
Application Certification Requirements, etc
For good user experience
The first concern is installation and upgrade
The second is user interface experience
The third is stability and responsiveness
67. Establishing a Mechanism for Usability Test
It is a combination of laboratory tests and field tests
Laboratory tests are traditional way for usability tests, which are
usually conducted in usability test laboratories, consisting of e.g. a
living room or office-like area connected to a monitoring area with
a one-way mirror
They have several same key points in their procedures
One is selecting of participated users
Another is compiling test scenarios list
68. Conclusion
• A framework for QA testers to test mobile applications was
proposed
• This framework provides a helpful method to solve the
question of heavy workload bought by mobile device’s
diversity and defines a specific defect system for mobile
services to describe problems more accurately
• Also, the framework suggests a set of test scenarios to be
attended to particularly and highlights a mechanism for
usability test. The benefit for product quality from them are
proved in our test