SlideShare une entreprise Scribd logo
1  sur  23
BLRTMM6

Testers in product development -
       Code review phase

          Chetan Giridhar
        (http://technobeans.com)
          Vishal Kanaujia
    (http://freethreads.wordpress.com)
Objective
• Break the myth – “testers need not or
  shouldn’t review developer’s code”
• Substantiate the merits of the idea, analyzes
  the flip side.
• Audiences to evaluate the thought…
What is Code Review
• According to Wikipedia, “Code review is
  systematic examination (often as peer review) of
  computer source code intended to find and fix
  mistakes overlooked in the initial development
  phase, improving both the overall quality of
  software and the developers' skills.”
• Code Review helps in finding or rather preventing
  critical defects early in the cycle (thereby
  reducing the bug fixing costs)
• Improving developers’ knowledge and provide
  exposure to the other components of the
  software system.
Importance of code review
• Better quality of code
  – Logic and semantic errors
  – Potential bugs, corner cases
  – Design suggestions
  – UT suggestions
• Enforced coding standards
• Helps in improving skills of fellow developers
• Better cross domain understanding
Let’s review code together
Ex)
void foo(char* input) {
   printf(“Input char is %s”, *(input+2));

    int *p = malloc();
    int* B[10];

    for (I =0; I < 10; i++) {
          free(p);
          int* q = malloc();

         B[i] = q;
    }
}
Ex)
email = None
def parse_email():
  global email
  if email is None:
     import email, re

Ex)
Use SQLiteHandler;
Sql = SQLiteHandler();
Sql.connect();
Sql.execute();
……..
……..
Sql.connect();
Sql.execute();
Sql.commit();
Sql.close();
Whose game is it?
• Traditionally, code reviews are done by
  developers and they can best review it!
• Testers were not expected to code; Coding
  skills were ‘good to have’!
• Now, industry prefers test engineers
  competent in development skills too
  – leveraging development perspective in test
  – ensuring better designed automation frameworks
  – white-box testing to improve coverage
For: Involve testers in code
           reviews
• Utilizing Dev and QA outlook
  – Development teams work with the intent of
    building the system.
  – QA thinks of ways of breaking the system.
  – Developers may oversee scenarios, which a tester
    may uncover.
  – Developers often neglect or de-prioritize UT for
    their modules.
• QA builds product knowledge
  – QA is only aware of the functionalities to be tested
    from the requirement specification documents.
  – Code reviews will help QA bridge gaps between
    their perception of the requirement and the
    actual code implementation.
  – QA understands the product better which is
    imperative for testing the product.
• Improved test documentation
  – Code reviews help QA identify gaps in test
    documentation.
  – Improved test plan and test case design
    documents.
  – Improved test automation.
• Reduced testing time and costs
  – If QA were to participate in code reviews, they
    wouldn’t have to wait for the RTQA build to
    understand the implementation.
  – Speeds up testing and reduces the overall product
    life cycle time.
• Better triaging from QA
  – QA understands the code changes.
  – QA would try to pinpoint a failure as they are
    aware of the implementation.
  – Saves a lot of developer time.
  – Improves Dev/QA productivity.
• Involvement of QA in Root Cause Analysis
  (RCA)
  – QA is cognizant of all the functionalities and the
    implementation.
  – QA could assist in performing root cause analysis
    of defects that have been reported in the field.
• Aids in white-box testing
  – Taking part in code review would definitely help
    testers in improving and adding more tests in
    white-box testing.
• Improved quality of code-comments and
  enforcing coding guidelines
  – The idea here is that developer egos can be used
    to boost the quality of code. 
  – Developers will include better comments so that
    they don’t have to answer too many questions
    from the reviewers.
• Help for a newly set-up development team
  – New development team is set up to work on a
    research project.
  – Suggestions from senior QA members given to
    Dev as formal/informal inputs make developers
    comfortable.
  – Code review meetings can be seen as an
    opportunity for such discussions.
• Improving rapport between Dev and QA
  – As code reviews are helpful for both Dev and
    QA, they would be beneficial for developing a
    healthy environment among the teams.
Against: Code review is not for
            testers!
• Steep learning curve
  – Imperative to evaluate the development skills of
    the QA team .
  – Steep learning curve and time involved for QA to
    gain development or white-box testing skills to
    understand and review code.
• Extra effort required by the testing team
  – Better planning to include additional responsibility
    in QA cycle.
  – Impacts QA deadlines and may lead to project
    deadline slippages.
• Testing based on implementation rather than
  specification
  – QA test the product based on implementation
    knowledge and not based on the specification.
  – Defeats the whole purpose of QA perspective!
  – QA may start justifying the behavior of the product
    based on product knowledge rather than validating
    against requirements.
• Over-involvement of testers understanding
  complex code
  – Testers may get too interested in understanding a
    complex code snippet.
  – Tester spends too much time appreciating the code
    and spends less time in testing.
• Code complexity/simplicity decides the
  testing strategy
  – Depending on the complexity of the code, QA may
    change their testing strategy.
  – Testing effort projected based on code-
    complexity; wrong assumptions.
  – Results in incorrect test planning.
To summarize
– Not only do reviews help QA in improving the product
  knowledge, but also errors found by the QA team
  during code reviews can be fixed earlier in the cycle.
– Code reviews also help in improving test
  documentation and give QA an opportunity to identify
  more areas in testing .
– Moreover, developers also benefit as they get a
  chance to get inputs on the products from
  experienced QA who have worked on similar
  technologies before.
– May look like an attractive proposition, but it should
  be evaluated. Does it suit my needs? Does it solve my
  purpose?
Conclusion

     We would definitely advocate it!
           It’s worth a try!

Remember: Time is required before it starts
            paying dividends..
Your thoughts? 
Previous references
Chetan has written this article and was first
    published at TestingExperience titled
   ‘Advocating Code Review for Testers’.
            Have a look at it at
      http://technobeans.com/articles
         Appreciated by Alan Page

Contenu connexe

Tendances

Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
nadeembtech
 
Codingstandards matiar
Codingstandards matiarCodingstandards matiar
Codingstandards matiar
Matiar Rahman
 
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
The University of Adelaide
 

Tendances (19)

Top 10 static code analysis tool
Top 10 static code analysis toolTop 10 static code analysis tool
Top 10 static code analysis tool
 
Static analysis as part of the development process in Unreal Engine
Static analysis as part of the development process in Unreal EngineStatic analysis as part of the development process in Unreal Engine
Static analysis as part of the development process in Unreal Engine
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
Regular use of static code analysis in team development
Regular use of static code analysis in team developmentRegular use of static code analysis in team development
Regular use of static code analysis in team development
 
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
Codingstandards matiar
Codingstandards matiarCodingstandards matiar
Codingstandards matiar
 
Code Review
Code ReviewCode Review
Code Review
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
How to successfully grow a code review culture
How to successfully grow a code review cultureHow to successfully grow a code review culture
How to successfully grow a code review culture
 
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...Revisiting Code Ownership and Its Relationship with Software Quality in the S...
Revisiting Code Ownership and Its Relationship with Software Quality in the S...
 
Dat 210 academic adviser ....tutorialrank.com
Dat 210 academic adviser ....tutorialrank.comDat 210 academic adviser ....tutorialrank.com
Dat 210 academic adviser ....tutorialrank.com
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis
 
DevLabs Alliance top 20 Cucumber Interview Questions for SDET
DevLabs Alliance top 20 Cucumber Interview Questions for SDETDevLabs Alliance top 20 Cucumber Interview Questions for SDET
DevLabs Alliance top 20 Cucumber Interview Questions for SDET
 
How to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development CompanyHow to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development Company
 
Code Review for iOS
Code Review for iOSCode Review for iOS
Code Review for iOS
 

En vedette

Manitobah product development phase gates
Manitobah product development phase gatesManitobah product development phase gates
Manitobah product development phase gates
Teddy Pai
 
20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM
20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM
20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM
camunda services GmbH
 
Seminar Presentation Design Excellence For Manufacturing Sustainability V1
Seminar Presentation   Design Excellence For Manufacturing Sustainability V1Seminar Presentation   Design Excellence For Manufacturing Sustainability V1
Seminar Presentation Design Excellence For Manufacturing Sustainability V1
Kamarulzaman Darus
 
The New Product Process
The New Product ProcessThe New Product Process
The New Product Process
Lena Argosino
 
DFMEA DR & DVP 261113 KCV
DFMEA DR & DVP 261113 KCVDFMEA DR & DVP 261113 KCV
DFMEA DR & DVP 261113 KCV
Kamal Vora
 
Product design and process selection
Product design and process selectionProduct design and process selection
Product design and process selection
Sujan Oli
 
New Product Development
New Product DevelopmentNew Product Development
New Product Development
Vishal Thakur
 

En vedette (20)

Future enterprise presentation, at EBN Congress Brussels 2015, by Iosif Alvertis
Future enterprise presentation, at EBN Congress Brussels 2015, by Iosif AlvertisFuture enterprise presentation, at EBN Congress Brussels 2015, by Iosif Alvertis
Future enterprise presentation, at EBN Congress Brussels 2015, by Iosif Alvertis
 
Manitobah product development phase gates
Manitobah product development phase gatesManitobah product development phase gates
Manitobah product development phase gates
 
Product development phase project 2012
Product development phase project 2012Product development phase project 2012
Product development phase project 2012
 
SME High Impact Program - Khuzairi Yahaya
SME High Impact Program - Khuzairi Yahaya SME High Impact Program - Khuzairi Yahaya
SME High Impact Program - Khuzairi Yahaya
 
20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM
20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM
20080605 JUG Stuttgart Business Process Simulation mit JBoss jBPM
 
CloudTeams Methodology: a Roadmap for Customer-Driven Software Development
CloudTeams Methodology: a Roadmap for Customer-Driven Software DevelopmentCloudTeams Methodology: a Roadmap for Customer-Driven Software Development
CloudTeams Methodology: a Roadmap for Customer-Driven Software Development
 
Agiles Business Process Management (ABPM)
Agiles Business Process Management (ABPM)Agiles Business Process Management (ABPM)
Agiles Business Process Management (ABPM)
 
New Product Development and Stage Gates
New Product Development and Stage GatesNew Product Development and Stage Gates
New Product Development and Stage Gates
 
Seminar Presentation Design Excellence For Manufacturing Sustainability V1
Seminar Presentation   Design Excellence For Manufacturing Sustainability V1Seminar Presentation   Design Excellence For Manufacturing Sustainability V1
Seminar Presentation Design Excellence For Manufacturing Sustainability V1
 
High level telecom product development process and framework
High level telecom product development process and frameworkHigh level telecom product development process and framework
High level telecom product development process and framework
 
The New Product Process
The New Product ProcessThe New Product Process
The New Product Process
 
DFMEA DR & DVP 261113 KCV
DFMEA DR & DVP 261113 KCVDFMEA DR & DVP 261113 KCV
DFMEA DR & DVP 261113 KCV
 
Technology life cycle
Technology life cycleTechnology life cycle
Technology life cycle
 
Kotler 10 new-product development and product life-cycle strategies moghimi
Kotler 10  new-product development and product  life-cycle strategies moghimiKotler 10  new-product development and product  life-cycle strategies moghimi
Kotler 10 new-product development and product life-cycle strategies moghimi
 
Guide to New Product Development (NPD)
Guide to New Product Development (NPD)Guide to New Product Development (NPD)
Guide to New Product Development (NPD)
 
Product design and process selection
Product design and process selectionProduct design and process selection
Product design and process selection
 
Guide to Product Management
Guide to Product ManagementGuide to Product Management
Guide to Product Management
 
New Product Development
New Product DevelopmentNew Product Development
New Product Development
 
New Product Development
New Product DevelopmentNew Product Development
New Product Development
 
Fruit punch - Launching a New Product - Marketing
Fruit punch - Launching a New Product - MarketingFruit punch - Launching a New Product - Marketing
Fruit punch - Launching a New Product - Marketing
 

Similaire à Testers in product development code review phase

Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0
The Linux Foundation
 
Modern SDLC and QA.pptx
Modern SDLC and QA.pptxModern SDLC and QA.pptx
Modern SDLC and QA.pptx
Zaid Shabbir
 

Similaire à Testers in product development code review phase (20)

code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptxcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
 
Code review best practice
Code review best practiceCode review best practice
Code review best practice
 
Topic production code
Topic production codeTopic production code
Topic production code
 
Code Reviews
Code ReviewsCode Reviews
Code Reviews
 
Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
 
Process Guidelines V2
Process Guidelines V2Process Guidelines V2
Process Guidelines V2
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goals
 
Quality Loopback
Quality LoopbackQuality Loopback
Quality Loopback
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Test-Driven Code Review: An Empirical Study
Test-Driven Code Review: An Empirical StudyTest-Driven Code Review: An Empirical Study
Test-Driven Code Review: An Empirical Study
 
Automated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps NextAutomated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps Next
 
Unit3 software review control software
Unit3 software review control softwareUnit3 software review control software
Unit3 software review control software
 
Software coding &amp; testing, software engineering
Software coding &amp; testing, software engineeringSoftware coding &amp; testing, software engineering
Software coding &amp; testing, software engineering
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Product QA - A test engineering perspective
Product QA - A test engineering perspectiveProduct QA - A test engineering perspective
Product QA - A test engineering perspective
 
Test planning and software's engineering
Test planning and software's engineeringTest planning and software's engineering
Test planning and software's engineering
 
Software testing
Software testingSoftware testing
Software testing
 
Modern SDLC and QA.pptx
Modern SDLC and QA.pptxModern SDLC and QA.pptx
Modern SDLC and QA.pptx
 

Plus de Chetan Giridhar (7)

Async programming and python
Async programming and pythonAsync programming and python
Async programming and python
 
PyCon India 2012: Rapid development of website search in python
PyCon India 2012: Rapid development of website search in pythonPyCon India 2012: Rapid development of website search in python
PyCon India 2012: Rapid development of website search in python
 
Fuse'ing python for rapid development of storage efficient FS
Fuse'ing python for rapid development of storage efficient FSFuse'ing python for rapid development of storage efficient FS
Fuse'ing python for rapid development of storage efficient FS
 
Diving into byte code optimization in python
Diving into byte code optimization in python Diving into byte code optimization in python
Diving into byte code optimization in python
 
Tutorial on-python-programming
Tutorial on-python-programmingTutorial on-python-programming
Tutorial on-python-programming
 
PyCon India 2011: Python Threads: Dive into GIL!
PyCon India 2011: Python Threads: Dive into GIL!PyCon India 2011: Python Threads: Dive into GIL!
PyCon India 2011: Python Threads: Dive into GIL!
 
Pycon11: Python threads: Dive into GIL!
Pycon11: Python threads: Dive into GIL!Pycon11: Python threads: Dive into GIL!
Pycon11: Python threads: Dive into GIL!
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Testers in product development code review phase

  • 1. BLRTMM6 Testers in product development - Code review phase Chetan Giridhar (http://technobeans.com) Vishal Kanaujia (http://freethreads.wordpress.com)
  • 2. Objective • Break the myth – “testers need not or shouldn’t review developer’s code” • Substantiate the merits of the idea, analyzes the flip side. • Audiences to evaluate the thought…
  • 3. What is Code Review • According to Wikipedia, “Code review is systematic examination (often as peer review) of computer source code intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills.” • Code Review helps in finding or rather preventing critical defects early in the cycle (thereby reducing the bug fixing costs) • Improving developers’ knowledge and provide exposure to the other components of the software system.
  • 4. Importance of code review • Better quality of code – Logic and semantic errors – Potential bugs, corner cases – Design suggestions – UT suggestions • Enforced coding standards • Helps in improving skills of fellow developers • Better cross domain understanding
  • 5. Let’s review code together Ex) void foo(char* input) { printf(“Input char is %s”, *(input+2)); int *p = malloc(); int* B[10]; for (I =0; I < 10; i++) { free(p); int* q = malloc(); B[i] = q; } }
  • 6. Ex) email = None def parse_email(): global email if email is None: import email, re Ex) Use SQLiteHandler; Sql = SQLiteHandler(); Sql.connect(); Sql.execute(); …….. …….. Sql.connect(); Sql.execute(); Sql.commit(); Sql.close();
  • 7. Whose game is it? • Traditionally, code reviews are done by developers and they can best review it! • Testers were not expected to code; Coding skills were ‘good to have’! • Now, industry prefers test engineers competent in development skills too – leveraging development perspective in test – ensuring better designed automation frameworks – white-box testing to improve coverage
  • 8. For: Involve testers in code reviews
  • 9. • Utilizing Dev and QA outlook – Development teams work with the intent of building the system. – QA thinks of ways of breaking the system. – Developers may oversee scenarios, which a tester may uncover. – Developers often neglect or de-prioritize UT for their modules.
  • 10. • QA builds product knowledge – QA is only aware of the functionalities to be tested from the requirement specification documents. – Code reviews will help QA bridge gaps between their perception of the requirement and the actual code implementation. – QA understands the product better which is imperative for testing the product.
  • 11. • Improved test documentation – Code reviews help QA identify gaps in test documentation. – Improved test plan and test case design documents. – Improved test automation. • Reduced testing time and costs – If QA were to participate in code reviews, they wouldn’t have to wait for the RTQA build to understand the implementation. – Speeds up testing and reduces the overall product life cycle time.
  • 12. • Better triaging from QA – QA understands the code changes. – QA would try to pinpoint a failure as they are aware of the implementation. – Saves a lot of developer time. – Improves Dev/QA productivity.
  • 13. • Involvement of QA in Root Cause Analysis (RCA) – QA is cognizant of all the functionalities and the implementation. – QA could assist in performing root cause analysis of defects that have been reported in the field. • Aids in white-box testing – Taking part in code review would definitely help testers in improving and adding more tests in white-box testing.
  • 14. • Improved quality of code-comments and enforcing coding guidelines – The idea here is that developer egos can be used to boost the quality of code.  – Developers will include better comments so that they don’t have to answer too many questions from the reviewers.
  • 15. • Help for a newly set-up development team – New development team is set up to work on a research project. – Suggestions from senior QA members given to Dev as formal/informal inputs make developers comfortable. – Code review meetings can be seen as an opportunity for such discussions. • Improving rapport between Dev and QA – As code reviews are helpful for both Dev and QA, they would be beneficial for developing a healthy environment among the teams.
  • 16. Against: Code review is not for testers!
  • 17. • Steep learning curve – Imperative to evaluate the development skills of the QA team . – Steep learning curve and time involved for QA to gain development or white-box testing skills to understand and review code. • Extra effort required by the testing team – Better planning to include additional responsibility in QA cycle. – Impacts QA deadlines and may lead to project deadline slippages.
  • 18. • Testing based on implementation rather than specification – QA test the product based on implementation knowledge and not based on the specification. – Defeats the whole purpose of QA perspective! – QA may start justifying the behavior of the product based on product knowledge rather than validating against requirements. • Over-involvement of testers understanding complex code – Testers may get too interested in understanding a complex code snippet. – Tester spends too much time appreciating the code and spends less time in testing.
  • 19. • Code complexity/simplicity decides the testing strategy – Depending on the complexity of the code, QA may change their testing strategy. – Testing effort projected based on code- complexity; wrong assumptions. – Results in incorrect test planning.
  • 20. To summarize – Not only do reviews help QA in improving the product knowledge, but also errors found by the QA team during code reviews can be fixed earlier in the cycle. – Code reviews also help in improving test documentation and give QA an opportunity to identify more areas in testing . – Moreover, developers also benefit as they get a chance to get inputs on the products from experienced QA who have worked on similar technologies before. – May look like an attractive proposition, but it should be evaluated. Does it suit my needs? Does it solve my purpose?
  • 21. Conclusion We would definitely advocate it! It’s worth a try! Remember: Time is required before it starts paying dividends..
  • 23. Previous references Chetan has written this article and was first published at TestingExperience titled ‘Advocating Code Review for Testers’. Have a look at it at http://technobeans.com/articles Appreciated by Alan Page