SlideShare una empresa de Scribd logo
1 de 6
1
King Saud University
College of Computer & Information Sciences
Department of Computer Science
The productivity of testing in software development
life cycle
CSC 569
By
Nora Abdul-Aziz Alriyes
434920502
Email(nora.alriyes@gmail.com)
Under the supervision of
Dr. Saleh Hammami
31/12/2015
2
ABSTRACT
This paper introduces software testing as productive phase in SDLC based on many experiences in
the market place. Organizations have faced many testing challenges in term of limited time and
resources against the rapid development of new generation software. In our research we intent to
discover testing as more productive than detecting phase and answer three questions about testing:
Who test my software? How test my software? and what to test in the software. In order to answer
these questions, we identified the advantage and disadvantages of many strategies based on case studies
or true experiences of companies. For example the value of testing of sole tester and how we could
enhance this role; we also discovered google strategy of testing and we found many important aspects
should be taken into account for tech organizations; Finally, to answer the question: what to test in the
software we proposed the benefits of testing at many models like: waterfall model, Risk based model
and iterative model based on the needs of varied software companies.
Keywords—Testing ; Google; software testing; Testers; Testing Roles;
3
TABLE OF CONTENTS
I. Introduction................................................................................................................................................................................ 4
II. Related work.............................................................................................................................................................................. 4
A. Who tests my software ?........................................................................................................................................................ 4
B. How to test my software?...................................................................................................................................................... 4
C. What to test in my software? ................................................................................................................................................. 5
III. Disussion ............................................................................................................................................................................... 5
IV. Conclusion............................................................................................................................................................................. 6
V. References.................................................................................................................................................................................. 6
4
I. INTRODUCTION
Testing is fundamental phase in Software development life
cycle (SDLC) which is used to validate the software based on
user needs. Or it can be defined as : “the process of executing a
program with the intent of finding errors”.[3]. So, the primary
goal of this phase is detecting issues that could interrupt the
users’ goals.
Nowadays, with complexity of the software and the
demanding of business trade, testing becomes more challenging
practice.
To create a software, commonly many companies and teams
uses waterfall model [Figure 1] with testing as the last phase
before ship the software to the customer. Often Testers dilemma
when they discovered important issues in late stages, then it
takes more time correcting them by the developer, and
sometimes this situation can lead also to accumulated wrong
code design that takes much more time to be rolled back. This
situation is being faced by many practitioners and impact
negatively on customer satisfaction. [3]
Our research goal is to discover the effectiveness of tester
role, also to find new ways to make testers more productive in
SDLC model.
[Figure 1] Waterfall model [5]
II. RELATED WORK
A. Who tests my software ?
The authors in [1] emphasized that testing is socio-Technical
rather than purely technical.
They tried to fill the gap between the researches and the real
practitioners in the technical market. The three researchers
discovered testing organization and testing value in three
successful software companies. They discovered the defects
database and extensively did many interviews with employees
about the test processes for each company. They classified the
issues based on employee’s duties, and identify the importance
of these bugs and fixing rate.
[Figure 2] represents the average results they found in for all
the three companies. They found that Testers have the lowest
important defects for the customers. In contrary, Managers, sales
employees and consultants found the most important issues from
user point view.
In addition, the defects found by developers have the highest
fix rate, but testers have the lowest fix rate defects.
Finally, they conclude, that the responsibility of testing any
product is getting important with those whom close more to the
real users, while they focused more on the customer view point.
And the testing process by involving by managers and sales
employees; that would improve the product more than individual
tester. [1]
Despite of that author in [4] raised that many testers lacked
the appropriate vision for the product. As well as the challenge
to test high coverage of the combination of the hardware and
software. Coverage is referred to: Extent of testing for the
feature of software to cover all the functional code; this concept
is a way to measure how much percent the tester can cover the
functional code and prove that it worked properly.
[Figure 2] The average results of defects importance and fix rate
in[1]
B. How to test my software?
Google one of the companies who invents their own creative
way of testing. When we think about google we think about
enormous successful applications and products. At google
testers is a part of their centralized organization called
“Engineering productivity”. At google product team who owns
the quality not testers, while we all know that developers can’t
test! The author: James Whittaker raised that as:” Quality is a
development issue not a testing issue, to the extent to embed
testing practice inside development”. [2]
They invented two types of testing roles in addition to the
developer role they called as following: SWE (Software
Engineer), SET (Software Engineer in Test) and TE (Test
Engineer).
SWE is a traditional developer role who builds he functional
code, create design description and data structure. SWE also
responsible for TDD unites tests, fault tolerance designs, failure
recovery …etc.
SET is the owner of testing feature. SET’s responsible about
the testability of the code, they review the design to ensure that
the code is clean, consistent and work long. They focus more on
testing as a developer then as a user.
5
TE is the responsible about functional defects, whom
prevents the user from bad designs, security, privacy and
confusing user experience. TE also spend a time write a code as
automation script and the code that drives usage scheme. So,
they focus more on testing as user then as a developer. [2]
One of the keys that google depend on with few testers is
building few features then release it in the moment it’s useful.
They are not attempt to ship many features at once. This idea
supports by their types of tests. They have only three types of
testing:
 small test: or it called unit test, automated and used to
exercise the code for only one function. It wrote by SWE
or SET in development environment.
 Median test: it can be manual or automated in testing or
real environment; this type of testing is to ensure that
neighbors of functions incorporate with each other
successfully.
 Large test: covers three or more feature and represents
real user scenario, SWE, SET and TE all responsible on
writing large tests to ensure that software works in the
way users expect.
TE’s who can decide where to focus on and they interpret
test results and execute the most tests scripts. They are playing
crucial role, the authors of book [2] point them as: ”They are
product experts, quality advisers and analyzers of risk”.
Google invents these testing techniques of what they
believed that it is more productive than the traditional testing
practices in a way to get over produce buggy systems. [2]
C. What to test in my software?
Testing practices are must be varied between tech companies
based on their needs and resources.
Waterfall is still popular model to develop software. Testing
engineers who used traditional modeles have faced many
challenges against rapid development cycles. The authors in[3]
tried to state some of solution to adapt with waterfall testing
model.
The main problem with waterfall model that software
development life cycle (SDLC) is only a part of overall software
life cycle Figure [1]. Most software products sustain under
maintenance phase to correct the accumulated defects during the
development phase which could take time more than the cycle
itself. [3]
The authors in [3] points to many important testing
challenges:
1. The limited time and resources
2. The delay to deliver the releases which impacts
negatively on customer satisfaction.
3. Finding the most important defects in the last stages.
Their goal is to form a robust model for development/Testing
without compromising business needs and overcomes the above
challenges in testing.
The first model they proposed for testing is Risk Based
Testing Model (RBTM): “it is an approach recommended for
projects with schedule limitation”. It’s basically prioritize what
develop and test first from software requirements based on: Risk
of failure for a function and the impact of that failure. [3]
It tests first the highest risk functions then medium, finally
low risk functions. As testing practice, we must categorize every
test case by priority, important for the user and the risk of failure.
[Figure 3] is an example of prioritize test cases in RBTM
model from [3] study. A factor called Functional Point (FB) to
estimate the test cases and calculated as FP= Test case weight
*Test case Points.
And every test case must be selected or not based on risk of
failure. The total effort estimation for this model decreased by
30 percent. in the RBTM than in waterfall model.
Also in [3] mentioned ITM (iterative test model) as a useful
approach by increment development or agile method. This
method can be useful when specify groups of functions for every
cycle and if it can be as a start point for the next cycle.
The authors Evaluated the three models: Waterfall, iterative
and Risk based testing model in matter of time and cost and
conclude that the lowest execution time and testing cost was in
RBTM than iterative model and waterfall model for more than
30 percent.
Figure [4]: example of prioritize test cases in RBTM model
[3].
III. DISUSSION
The case study in [1] clarified a strong view point that testing
practices and the defects by solo tester or external testing
company don’t have a strong impact on the product or for the
user. While the high important defects are raised those whom
engaged more with customer and the real users those whom
socially and technically aware of the product goal.
However, the study [1] was limited on only three companies;
the approach that used by these companies, software types and
size all are important factors to take into account and evaluate
the tester role. We also suppose that the number of products
delivered by each company and the rate of customer satisfaction
are also important to evaluate testing impact.
Nevertheless, we do believe that testers have crucial role to
validate systems functions, but they can be more effective when
6
they became more involved with users socially and with
developers technically.
In the other hand google shows solid organizational roles of
testing which covered by all product team members, SWE, SET
and TE all have crucial role to make each other productive more
than the traditional roles. It is also a way to prevent he product
of accumulating a wrong steps of system design that can’t be
rolled back.
Google tried to ensure that problem of test coverage is
resolved by testing every feature with small test, then make sure
that all these tested features are working probably with medium
and large test; also by making tow roles of testing the code that
can be a solution for the many challenges raised in [4].
Although, many flaws have been raised by google inventor
against their model of testing, first, providing tow testers would
lead the developer to depend totally on the testers to not think
about testing his own code; that’s can be against their goal of
testing:” Quality must be built in not bolted on”.
In addition, we agreed with the authors of [3] that TE’s must
not spent enormous time on testing and more enable the users to
try their product as soon as it gets useful; the real users will
always found issues can’t be found by a tester.
Another side to discuss about google strategy of testing is
that google made their own products by specific requirements
internally for the general audience, while most tech companies
have their commitments with specific customers with limited
time and resources to deliver their product. And we suppose that
not all companies can adapt with google strategy with that
limitations.
We had discovered in [3] that the authors recommend an
efficient model instead of waterfall model, that kind of model
can be adaptive with many companies used Waterfall or agile
methods; Risk Based Testing Model (RBTM) can adapt within
any traditional model of SDLC. It would also decrease the test
time. Also we believed that it will make the tester find the
important issues in earlier stages. Besides, Iterative model
recommended more than RBTM for the projects need more user
involvement with a quick feedback.
IV. CONCLUSION
In this research we presented many testers challenges and
discovered testing models and answer three questions; Who and
how and what to test in the software. We found that the solo
tester is not effective enough without socially technically
engaging with the user, product developers. While, the most
important testing tasks must be with the one who’s understand
the social, organizational and technical context of the product.
In order to answer the question how to test any product? We
found that no tester could test and cover effectively many feature
once, this could lead to accumulate many wrong steps in code
design which is takes enormous time be rolled back. Revising
the code design for every feature and make it able to be tested
by automated scripts is very effective way to make sure that the
code is consistent and clear and can work long. Developers need
to be more productive by testing their feature one by one and
gradually test neighbor of functions then the whole system. So
they can prevent to build buggy systems need more time and
effort than the SDLC cycle itself.
Risk based testing model got over on many challenges of testing
in waterfall model which is basically could prioritize functions
based on risk to be tested first then we can avoid find the most
important issues in late stages. Finally, we can emphasize that
it is always better to release the software as soon as it becomes
useful for the real users; they would always find issues more
than any tester.
V. REFERENCES
[1] Mäntylä, Mika V., Juha Itkonen, and Joonas Iivonen. "Who tested
my software? Testing as an organizationally cross-cutting activity."
Software Quality Journal20.1 (2012): 145-172.
[2] Whittaker, James A., Jason Arbon, and Jeff Carollo. How Google
tests software. Addison-Wesley, 2012.
[3] Sivakami, K., and K. Mohan Kumar. "Comparative Study on
Software Testing Models." (2014).
[4] Kaner, Cem. "Fundamental challenges in software testing."
Colloquium at Butler University. 2003.
[5] Travis Morris. WHAT BEING AGILE MEANS TO ME. Web. 3 Aug
2015.<http://www.travdes.com/wp-
content/uploads/2015/08/maxresdefault.jpg >

Más contenido relacionado

La actualidad más candente

5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
Takanori Suzuki
 
Manual testing good notes
Manual testing good notesManual testing good notes
Manual testing good notes
dkns0906
 
Exploring Exploratory Testing
Exploring Exploratory TestingExploring Exploratory Testing
Exploring Exploratory Testing
nazeer pasha
 
50 points from the book_How Google tests Software
50 points from the book_How Google tests Software50 points from the book_How Google tests Software
50 points from the book_How Google tests Software
Shenbaga Sundar
 

La actualidad más candente (16)

5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
5WCSQ(CFP) - Quality Improvement by the Real-Time Detection of the Problems
 
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMA RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
 
Releasing Software Without Testing Team
Releasing Software Without Testing TeamReleasing Software Without Testing Team
Releasing Software Without Testing Team
 
Software testing
Software testing   Software testing
Software testing
 
Beginners QA Testing
Beginners QA TestingBeginners QA Testing
Beginners QA Testing
 
Manual testing good notes
Manual testing good notesManual testing good notes
Manual testing good notes
 
Software testing
Software testingSoftware testing
Software testing
 
Otto Vinter - Analysing Your Defect Data for Improvement Potential
Otto Vinter - Analysing Your Defect Data for Improvement PotentialOtto Vinter - Analysing Your Defect Data for Improvement Potential
Otto Vinter - Analysing Your Defect Data for Improvement Potential
 
Software testing lecture notes
Software testing  lecture notesSoftware testing  lecture notes
Software testing lecture notes
 
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
Latest Manual Testing Interview Questions and Answers 2015 - H2kinfosys
 
Obstacle Driven Development
Obstacle Driven Development Obstacle Driven Development
Obstacle Driven Development
 
Case studies of Test Driven Development
Case studies of Test Driven DevelopmentCase studies of Test Driven Development
Case studies of Test Driven Development
 
Exploring Exploratory Testing
Exploring Exploratory TestingExploring Exploratory Testing
Exploring Exploratory Testing
 
Who tested my software Testing as an organizationally cross-cutting activity
Who tested my software Testing as an organizationally cross-cutting activity Who tested my software Testing as an organizationally cross-cutting activity
Who tested my software Testing as an organizationally cross-cutting activity
 
50 points from the book_How Google tests Software
50 points from the book_How Google tests Software50 points from the book_How Google tests Software
50 points from the book_How Google tests Software
 
Capital One DevOps Case Study: A Bank with the Heart of Tech Company
Capital One DevOps Case Study: A Bank with the Heart of Tech CompanyCapital One DevOps Case Study: A Bank with the Heart of Tech Company
Capital One DevOps Case Study: A Bank with the Heart of Tech Company
 

Destacado

Destacado (6)

What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?
 
Why Open Application Platforms Matter to Enterprise Developers (Cloud Foundry...
Why Open Application Platforms Matter to Enterprise Developers (Cloud Foundry...Why Open Application Platforms Matter to Enterprise Developers (Cloud Foundry...
Why Open Application Platforms Matter to Enterprise Developers (Cloud Foundry...
 
Measuring Performance & Productivity in Software Development Teams
Measuring Performance & Productivity in Software Development TeamsMeasuring Performance & Productivity in Software Development Teams
Measuring Performance & Productivity in Software Development Teams
 
Acm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slidesAcm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slides
 
Mobile Bootcamp Presentation: Mobile Application Development Platforms
Mobile Bootcamp Presentation: Mobile Application Development PlatformsMobile Bootcamp Presentation: Mobile Application Development Platforms
Mobile Bootcamp Presentation: Mobile Application Development Platforms
 
Pre-launch Checklist for Going Production on AWS
Pre-launch Checklist for Going Production on AWS Pre-launch Checklist for Going Production on AWS
Pre-launch Checklist for Going Production on AWS
 

Similar a The productivity of testing in software development life cycle

stm f.pdf
stm f.pdfstm f.pdf
stm f.pdf
HarshNagda5
 
International Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJSInternational Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJS
hildredzr1di
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
smumbahelp
 
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIESCHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
Samruddhi Sheth
 
Aim (A).pptx
Aim (A).pptxAim (A).pptx
Aim (A).pptx
14941
 

Similar a The productivity of testing in software development life cycle (20)

EFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEWEFFECTIVE TEST CASE DESING: A REVIEW
EFFECTIVE TEST CASE DESING: A REVIEW
 
stm f.pdf
stm f.pdfstm f.pdf
stm f.pdf
 
International Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJSInternational Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJS
 
Software testing
Software testingSoftware testing
Software testing
 
Software_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdfSoftware_testing Unit 1 bca V.pdf
Software_testing Unit 1 bca V.pdf
 
Effective Testing fo Startups
Effective Testing fo StartupsEffective Testing fo Startups
Effective Testing fo Startups
 
Stm unit1
Stm unit1Stm unit1
Stm unit1
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Principles and Goals of Software Testing
Principles and Goals of Software Testing Principles and Goals of Software Testing
Principles and Goals of Software Testing
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIESCHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
CHAPTER 1 BASIC CONCEPTS AND PRELIMINARIES
 
Introduction to Investigation And Utilizing Lean Test Metrics In Agile Softwa...
Introduction to Investigation And Utilizing Lean Test Metrics In Agile Softwa...Introduction to Investigation And Utilizing Lean Test Metrics In Agile Softwa...
Introduction to Investigation And Utilizing Lean Test Metrics In Agile Softwa...
 
Why Software Testing is Crucial in Software Development_.pdf
Why Software Testing is Crucial in Software Development_.pdfWhy Software Testing is Crucial in Software Development_.pdf
Why Software Testing is Crucial in Software Development_.pdf
 
Aim (A).pptx
Aim (A).pptxAim (A).pptx
Aim (A).pptx
 
Importance of Testing in SDLC
Importance of Testing in SDLCImportance of Testing in SDLC
Importance of Testing in SDLC
 
Fundamentals of testing what is testing (reference graham et.al (2006))
Fundamentals of testing   what is testing (reference graham et.al (2006))Fundamentals of testing   what is testing (reference graham et.al (2006))
Fundamentals of testing what is testing (reference graham et.al (2006))
 
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEMA RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
A RELIABLE AND AN EFFICIENT WEB TESTING SYSTEM
 
FROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTING
FROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTINGFROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTING
FROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTING
 
From the Art of Software Testing to Test-as-a-Service in Cloud Computing
From the Art of Software Testing to Test-as-a-Service in Cloud ComputingFrom the Art of Software Testing to Test-as-a-Service in Cloud Computing
From the Art of Software Testing to Test-as-a-Service in Cloud Computing
 
Qa Faqs
Qa FaqsQa Faqs
Qa Faqs
 

Último

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 

The productivity of testing in software development life cycle

  • 1. 1 King Saud University College of Computer & Information Sciences Department of Computer Science The productivity of testing in software development life cycle CSC 569 By Nora Abdul-Aziz Alriyes 434920502 Email(nora.alriyes@gmail.com) Under the supervision of Dr. Saleh Hammami 31/12/2015
  • 2. 2 ABSTRACT This paper introduces software testing as productive phase in SDLC based on many experiences in the market place. Organizations have faced many testing challenges in term of limited time and resources against the rapid development of new generation software. In our research we intent to discover testing as more productive than detecting phase and answer three questions about testing: Who test my software? How test my software? and what to test in the software. In order to answer these questions, we identified the advantage and disadvantages of many strategies based on case studies or true experiences of companies. For example the value of testing of sole tester and how we could enhance this role; we also discovered google strategy of testing and we found many important aspects should be taken into account for tech organizations; Finally, to answer the question: what to test in the software we proposed the benefits of testing at many models like: waterfall model, Risk based model and iterative model based on the needs of varied software companies. Keywords—Testing ; Google; software testing; Testers; Testing Roles;
  • 3. 3 TABLE OF CONTENTS I. Introduction................................................................................................................................................................................ 4 II. Related work.............................................................................................................................................................................. 4 A. Who tests my software ?........................................................................................................................................................ 4 B. How to test my software?...................................................................................................................................................... 4 C. What to test in my software? ................................................................................................................................................. 5 III. Disussion ............................................................................................................................................................................... 5 IV. Conclusion............................................................................................................................................................................. 6 V. References.................................................................................................................................................................................. 6
  • 4. 4 I. INTRODUCTION Testing is fundamental phase in Software development life cycle (SDLC) which is used to validate the software based on user needs. Or it can be defined as : “the process of executing a program with the intent of finding errors”.[3]. So, the primary goal of this phase is detecting issues that could interrupt the users’ goals. Nowadays, with complexity of the software and the demanding of business trade, testing becomes more challenging practice. To create a software, commonly many companies and teams uses waterfall model [Figure 1] with testing as the last phase before ship the software to the customer. Often Testers dilemma when they discovered important issues in late stages, then it takes more time correcting them by the developer, and sometimes this situation can lead also to accumulated wrong code design that takes much more time to be rolled back. This situation is being faced by many practitioners and impact negatively on customer satisfaction. [3] Our research goal is to discover the effectiveness of tester role, also to find new ways to make testers more productive in SDLC model. [Figure 1] Waterfall model [5] II. RELATED WORK A. Who tests my software ? The authors in [1] emphasized that testing is socio-Technical rather than purely technical. They tried to fill the gap between the researches and the real practitioners in the technical market. The three researchers discovered testing organization and testing value in three successful software companies. They discovered the defects database and extensively did many interviews with employees about the test processes for each company. They classified the issues based on employee’s duties, and identify the importance of these bugs and fixing rate. [Figure 2] represents the average results they found in for all the three companies. They found that Testers have the lowest important defects for the customers. In contrary, Managers, sales employees and consultants found the most important issues from user point view. In addition, the defects found by developers have the highest fix rate, but testers have the lowest fix rate defects. Finally, they conclude, that the responsibility of testing any product is getting important with those whom close more to the real users, while they focused more on the customer view point. And the testing process by involving by managers and sales employees; that would improve the product more than individual tester. [1] Despite of that author in [4] raised that many testers lacked the appropriate vision for the product. As well as the challenge to test high coverage of the combination of the hardware and software. Coverage is referred to: Extent of testing for the feature of software to cover all the functional code; this concept is a way to measure how much percent the tester can cover the functional code and prove that it worked properly. [Figure 2] The average results of defects importance and fix rate in[1] B. How to test my software? Google one of the companies who invents their own creative way of testing. When we think about google we think about enormous successful applications and products. At google testers is a part of their centralized organization called “Engineering productivity”. At google product team who owns the quality not testers, while we all know that developers can’t test! The author: James Whittaker raised that as:” Quality is a development issue not a testing issue, to the extent to embed testing practice inside development”. [2] They invented two types of testing roles in addition to the developer role they called as following: SWE (Software Engineer), SET (Software Engineer in Test) and TE (Test Engineer). SWE is a traditional developer role who builds he functional code, create design description and data structure. SWE also responsible for TDD unites tests, fault tolerance designs, failure recovery …etc. SET is the owner of testing feature. SET’s responsible about the testability of the code, they review the design to ensure that the code is clean, consistent and work long. They focus more on testing as a developer then as a user.
  • 5. 5 TE is the responsible about functional defects, whom prevents the user from bad designs, security, privacy and confusing user experience. TE also spend a time write a code as automation script and the code that drives usage scheme. So, they focus more on testing as user then as a developer. [2] One of the keys that google depend on with few testers is building few features then release it in the moment it’s useful. They are not attempt to ship many features at once. This idea supports by their types of tests. They have only three types of testing:  small test: or it called unit test, automated and used to exercise the code for only one function. It wrote by SWE or SET in development environment.  Median test: it can be manual or automated in testing or real environment; this type of testing is to ensure that neighbors of functions incorporate with each other successfully.  Large test: covers three or more feature and represents real user scenario, SWE, SET and TE all responsible on writing large tests to ensure that software works in the way users expect. TE’s who can decide where to focus on and they interpret test results and execute the most tests scripts. They are playing crucial role, the authors of book [2] point them as: ”They are product experts, quality advisers and analyzers of risk”. Google invents these testing techniques of what they believed that it is more productive than the traditional testing practices in a way to get over produce buggy systems. [2] C. What to test in my software? Testing practices are must be varied between tech companies based on their needs and resources. Waterfall is still popular model to develop software. Testing engineers who used traditional modeles have faced many challenges against rapid development cycles. The authors in[3] tried to state some of solution to adapt with waterfall testing model. The main problem with waterfall model that software development life cycle (SDLC) is only a part of overall software life cycle Figure [1]. Most software products sustain under maintenance phase to correct the accumulated defects during the development phase which could take time more than the cycle itself. [3] The authors in [3] points to many important testing challenges: 1. The limited time and resources 2. The delay to deliver the releases which impacts negatively on customer satisfaction. 3. Finding the most important defects in the last stages. Their goal is to form a robust model for development/Testing without compromising business needs and overcomes the above challenges in testing. The first model they proposed for testing is Risk Based Testing Model (RBTM): “it is an approach recommended for projects with schedule limitation”. It’s basically prioritize what develop and test first from software requirements based on: Risk of failure for a function and the impact of that failure. [3] It tests first the highest risk functions then medium, finally low risk functions. As testing practice, we must categorize every test case by priority, important for the user and the risk of failure. [Figure 3] is an example of prioritize test cases in RBTM model from [3] study. A factor called Functional Point (FB) to estimate the test cases and calculated as FP= Test case weight *Test case Points. And every test case must be selected or not based on risk of failure. The total effort estimation for this model decreased by 30 percent. in the RBTM than in waterfall model. Also in [3] mentioned ITM (iterative test model) as a useful approach by increment development or agile method. This method can be useful when specify groups of functions for every cycle and if it can be as a start point for the next cycle. The authors Evaluated the three models: Waterfall, iterative and Risk based testing model in matter of time and cost and conclude that the lowest execution time and testing cost was in RBTM than iterative model and waterfall model for more than 30 percent. Figure [4]: example of prioritize test cases in RBTM model [3]. III. DISUSSION The case study in [1] clarified a strong view point that testing practices and the defects by solo tester or external testing company don’t have a strong impact on the product or for the user. While the high important defects are raised those whom engaged more with customer and the real users those whom socially and technically aware of the product goal. However, the study [1] was limited on only three companies; the approach that used by these companies, software types and size all are important factors to take into account and evaluate the tester role. We also suppose that the number of products delivered by each company and the rate of customer satisfaction are also important to evaluate testing impact. Nevertheless, we do believe that testers have crucial role to validate systems functions, but they can be more effective when
  • 6. 6 they became more involved with users socially and with developers technically. In the other hand google shows solid organizational roles of testing which covered by all product team members, SWE, SET and TE all have crucial role to make each other productive more than the traditional roles. It is also a way to prevent he product of accumulating a wrong steps of system design that can’t be rolled back. Google tried to ensure that problem of test coverage is resolved by testing every feature with small test, then make sure that all these tested features are working probably with medium and large test; also by making tow roles of testing the code that can be a solution for the many challenges raised in [4]. Although, many flaws have been raised by google inventor against their model of testing, first, providing tow testers would lead the developer to depend totally on the testers to not think about testing his own code; that’s can be against their goal of testing:” Quality must be built in not bolted on”. In addition, we agreed with the authors of [3] that TE’s must not spent enormous time on testing and more enable the users to try their product as soon as it gets useful; the real users will always found issues can’t be found by a tester. Another side to discuss about google strategy of testing is that google made their own products by specific requirements internally for the general audience, while most tech companies have their commitments with specific customers with limited time and resources to deliver their product. And we suppose that not all companies can adapt with google strategy with that limitations. We had discovered in [3] that the authors recommend an efficient model instead of waterfall model, that kind of model can be adaptive with many companies used Waterfall or agile methods; Risk Based Testing Model (RBTM) can adapt within any traditional model of SDLC. It would also decrease the test time. Also we believed that it will make the tester find the important issues in earlier stages. Besides, Iterative model recommended more than RBTM for the projects need more user involvement with a quick feedback. IV. CONCLUSION In this research we presented many testers challenges and discovered testing models and answer three questions; Who and how and what to test in the software. We found that the solo tester is not effective enough without socially technically engaging with the user, product developers. While, the most important testing tasks must be with the one who’s understand the social, organizational and technical context of the product. In order to answer the question how to test any product? We found that no tester could test and cover effectively many feature once, this could lead to accumulate many wrong steps in code design which is takes enormous time be rolled back. Revising the code design for every feature and make it able to be tested by automated scripts is very effective way to make sure that the code is consistent and clear and can work long. Developers need to be more productive by testing their feature one by one and gradually test neighbor of functions then the whole system. So they can prevent to build buggy systems need more time and effort than the SDLC cycle itself. Risk based testing model got over on many challenges of testing in waterfall model which is basically could prioritize functions based on risk to be tested first then we can avoid find the most important issues in late stages. Finally, we can emphasize that it is always better to release the software as soon as it becomes useful for the real users; they would always find issues more than any tester. V. REFERENCES [1] Mäntylä, Mika V., Juha Itkonen, and Joonas Iivonen. "Who tested my software? Testing as an organizationally cross-cutting activity." Software Quality Journal20.1 (2012): 145-172. [2] Whittaker, James A., Jason Arbon, and Jeff Carollo. How Google tests software. Addison-Wesley, 2012. [3] Sivakami, K., and K. Mohan Kumar. "Comparative Study on Software Testing Models." (2014). [4] Kaner, Cem. "Fundamental challenges in software testing." Colloquium at Butler University. 2003. [5] Travis Morris. WHAT BEING AGILE MEANS TO ME. Web. 3 Aug 2015.<http://www.travdes.com/wp- content/uploads/2015/08/maxresdefault.jpg >