A Research Study on importance of Testing and Quality Assurance in Software Development Life Cycle...
-
Upload
sehrish-asif -
Category
Education
-
view
613 -
download
4
description
Transcript of A Research Study on importance of Testing and Quality Assurance in Software Development Life Cycle...
Software Quality Assurance
Presented By:Arfa SikanderSundas AminSehrish AsifYousra Butt
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
Software Testing
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
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
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
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.
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.
9
Software Testing TechniquesBlack 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 throughAcceptance Testing Code reviews and
inspectionBeta 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
10
SDLC & Quality Assurance
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.
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
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
14
The waterfall ModelAdvantages 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
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.
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.
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.
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.
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.
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.
PROBLEM STATEMENT
22
Problem Definition
Software development process modelsInclude testing as a single phaseBut required in each phaseError 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
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
24
Proposed solution
• V model of testing given by Mr. Perry– extended SDLC– Include more phase
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
26
Identifying Testing Techniques according to Phase of SDLC
27
Testing plan phase
28
Requirements gathering phase
29
Analysis phase
30
Designing phase
31
Integration phase
32
Implementation phase
33
Coding phase
34
Maintenance phase
35
Testing Technique for Quality Attributes
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
37
Paper Information
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 AgendaTraditional v/s Agile approach
Differences between models
Agile challenges
Agile testing strategies
Agile testing quadrant
Strategies for improving quality
Conclusion
39
Traditional Model
Agile Model
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.
41
TRADITIONAL(Waterfall) VS. AGILE
42
Poses a series of Q
UESTIO
NS
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?
HOW AGILE IS DIFFERENTIncremental & 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
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
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
Goal is to produce morepotentially 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
Goal of the Transition phase is tosuccessfully deploy your system into production.
This can be quite complex in practice including:
Training of end users Support p e o p l e a n d operations People communication 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
Transition-TDD
48
If FAIL
49
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)
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
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
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
CONT….
Mobile Devices Information System Include:
Device database Device real time management system Accessed by the whole team members
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
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
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
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
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
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
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
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
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
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 activitiesQA 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
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
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
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
Thank you
70