Software Quality Assurance
Presented By:
Arfa Sikander
Sundas Amin
Sehrish Asif
Yousra Butt
Paper Title
• A Research Study on importance
of Testing and Quality Assurance
in Software Development Life
Cycle (SDLC) Mo...
Software Testing
3
Software Testing
• Encircling variety of activities along the development cycle and
beyond, aimed at different goals.
• As...
Software Testing…..
• In this paper focus on testing techniques, as well as latest techniques
discuss.
• Now a days testin...
Introduction
 Software testing is the process of executing a program or system with the
intent of finding errors.
 Detec...
Objective of Testing
 The objective of testing is to find problems and fix them to improve
quality.
 Demonstration: It s...
Types of Software Testing
 There are various types of testing techniques that have been
invented.
 There are different t...
Software Testing Techniques
Black box Testing White box Testing Grey box Testing
Functional & system
testing.
Unit testing...
SDLC & Quality Assurance
10
SDLC & Quality Assurance
 Software development life cycle is basically a systematic way of
developing software.
 It incl...
Software Development Process Models
 Software development approaches defined and designed which
are used during developme...
The waterfall Model
• The Waterfall" approach, the whole process of
software development is divided into separate
process ...
The waterfall Model
Advantages
 Waterfall model is used where the duration of project is very less,
and it is best suited...
The Prototyping Model
• A prototype is a working model that is
functionally equivalent to a component of the
product.
• In...
The Prototyping Model
Advantages
 With reduced time and costs, Prototyping can improve the
quality of requirements and sp...
The Spiral Model
• The spiral model, also known as the spiral
lifecycle model, is a systems development
method (SDM) used ...
The Spiral Model
Advantages
 Estimates (i.e. budget, schedule, etc.) Become more realistic as
work progresses, because im...
Quality Assurance
 Quality requires a commitment, particularly from top
management. Quality is frequently associated with...
Quality Assurance……
 Quality management decreases production costs because the
sooner a defect is located and corrected, ...
PROBLEM STATEMENT
Problem Definition
Software development process models
Include testing as a single phase
But required in each phase
Er...
Problem Definition…
 Software quality is essential part of software project
 Varity of quality assurance and control act...
Proposed solution
• V model of testing given by Mr. Perry
– extended SDLC
– Include more phase
24
Apply Testing on all Phases of SDLC
Experts suggestions
 Perform testing on each phase
 Start testing as soon as possibl...
Identifying Testing Techniques
according to Phase of SDLC
26
Testing plan phase
27
Requirements gathering phase
28
Analysis phase
29
Designing phase
30
Integration phase
31
Implementation phase
32
Coding phase
33
Maintenance phase
34
Testing Technique for Quality Attributes
35
CONCLUSION
 Testing is necessary on each phase of SDLC
 There are various types of SDLC (Waterfall Model, RAD Mode,
Iter...
Paper Information
37
Paper Title
• Quality Assurance for Product
Development using Agile
Publication
• 2014 International ...
Presentation Agenda
38
Traditional v/s Agile approach
Differences between models
Agile challenges
Agile testing strategies...
Traditional
Model
Agile Model
39
TRADITIONAL VS. AGILE
Waterfall:
 More properly called the
'Traditional‘ approach.
 It is a linear approach to
software ...
TRADITIONAL(Waterfall) VS. AGILE
41
Poses a
series of
QUESTIONS
42
What is Role of
QA in Product
development
using Agile?
Is QA a skill that
every developer
s...
HOW AGILE IS DIFFERENT
Incremental & iterative development
Greater Collaboration
Responds to changes quickly & efficiently...
44
1.
Knowledgeable
and
Experienced
teams
2. Requires
change in
Mindset &
Approach
3.
Communication
and
Collaboration
4. C...
AGILE - TESTING STRATEGIES
 Involve QA right from the beginning
 Testing is a key component of agile development
 Encou...
Construction Sprints
46
Goal is to produce more
potentially shippable software.
Agile Team:
 Testers are embedded in
the ...
47
Goal of the Transition phase is to
successfully deploy your system into
production.
This can be quite complex in practi...
Transition-TDD
48
If FAIL
49
STRATEGIES FOR IMPROVING QUALITY
 Bring SQA as a whole in Agile & not just Software testing
 Involve team members perfor...
Paper Information
Paper Title
• A Software Quality Framework for
Mobile Application Testing
Authors
• Yajie Wang, Ming Jia...
Introduction
 At present, with the development of wireless networks and the
popularization of mobile devices, mobile appl...
Test Framework Architecture
The framework is composed of 4 components:
 A mobile devices information system
 A defect sy...
CONT….
Mobile Devices Information System
 Include:
 Device database
 Device real time management system
 Accessed by the whol...
Defect System
 The defect system for mobile applications is distinguished from an
ordinary defect system
 Defines some s...
Aggregation of Key Test Scenarios
 It collects five parts:
 Test scenarios related to resource limitation
 Test scenari...
Usability Test
 Describes an effective way to have a usability test
 Used by QA tests to gain usability challenge and ad...
Implementation of the Framework
 Structuring a mobile devices information systems
 Building a defect system for mobile a...
Structuring a mobile devices information systems
 Diversity of mobile devices makes great difference to mobile
applicatio...
CONT….
A record for mobile devices should include following items:
 Important device technical specification details
 Mo...
Building a Defect System for Mobile Applications
Almost all defects for desktop software may occur on mobile
applications
...
CONT….
Some types of defects typical on mobile applications are highlighted:
 Using too much memory space
 Usability iss...
CONT….
Whenever a system is adapted, some defect attributes to be
encompassed in the system.
These are:
 The application ...
Defining an Aggregation of Key Test Scenarios
Resource limitations of mobile applications include
 Device limitations (me...
Server and service testing
 Testers often focus on the client portion of the mobile application
 In fact, most applicati...
Establishing a Mechanism for Usability Test
 It is a combination of laboratory tests and field tests
 Laboratory tests a...
Conclusion
• A framework for QA testers to test mobile applications was
proposed
• This framework provides a helpful metho...
69
70
Upcoming SlideShare
Loading in …5
×

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

4,122 views

Published on

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

Published in: Education, Technology
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total views
4,122
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
204
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide
  • The two basic development methodologies are:
  • 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

    1. 1. Software Quality Assurance Presented By: Arfa Sikander Sundas Amin Sehrish Asif Yousra Butt
    2. 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
    3. 3. Software Testing 3
    4. 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. 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. 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. 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. 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. 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
    10. 10. SDLC & Quality Assurance 10
    11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
    21. 21. PROBLEM STATEMENT
    22. 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. 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. 24. Proposed solution • V model of testing given by Mr. Perry – extended SDLC – Include more phase 24
    25. 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
    26. 26. Identifying Testing Techniques according to Phase of SDLC 26
    27. 27. Testing plan phase 27
    28. 28. Requirements gathering phase 28
    29. 29. Analysis phase 29
    30. 30. Designing phase 30
    31. 31. Integration phase 31
    32. 32. Implementation phase 32
    33. 33. Coding phase 33
    34. 34. Maintenance phase 34
    35. 35. Testing Technique for Quality Attributes 35
    36. 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. 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. 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
    39. 39. Traditional Model Agile Model 39
    40. 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
    41. 41. TRADITIONAL(Waterfall) VS. AGILE 41
    42. 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. 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. 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. 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. 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. 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
    48. 48. Transition-TDD 48 If FAIL
    49. 49. 49
    50. 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. 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. 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. 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
    54. 54. CONT….
    55. 55. Mobile Devices Information System  Include:  Device database  Device real time management system  Accessed by the whole team members
    56. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
    69. 69. 69
    70. 70. 70

    ×