SlideShare uma empresa Scribd logo
1 de 17
Peering Into the White Box:  A testers approach to code reviews Alan Page Microsoft
self-promotion slide http://angryweasel.com/bloghttp://www.hwtsam.com http://twitter.com/alanpage
Code Reviews…really?
The Tester’s Point of View Code reviews traditionally a developer activity Developers write unit tests Developers ask “does this work?” Developers look at code one way, but… But testers still find functional bugs Testers ask “how can this fail?” Testers have a different perspective Experiment: Have testers perform code reviews
Types of Reviews More formalMore effectiveGreater cost Less formalLess effectiveLess cost Formal Inspection Ad hoc review Based on Peer Reviews in Software by Wiegers, 2002
Approach Kickoff meeting Collect volunteers Set expectations Schedule meetings Share checklist
Using a Checklist The illusion of attention If you look for everything, you’ll miss something If you look for one thing, you’ll miss other things Mitigation Loop one at a time through a list of common errors
Selecting Code for Review Churn Complexity Intuition Convenience
Results Four teams  Moderate engagement Skill increase Successful “Bug Hunting”
Lessons Learned Not like other testing Balance w/other activities The Checklist Develop “Experts” Development team involvement Bug Tracking
Future Plans Continue with select team members Inspection “SWAT” Track comments and discussion
Are code reviews for you?
Resources Software Inspection – Tom Gilb & Dorothy Graham. Addison-Wesley Professional (January 10, 1994) The Best Kept Secrets of Peer Code Review - http://smartbear.com/codecollab-code-review-book.php Software Inspection (web article) - http://www.the-software-experts.de/e_dta-sw-test-inspection.htm  Fagan Inspections (Wikipedia entry) - http://en.wikipedia.org/wiki/Fagan_inspection
Are input parameters validated and checked for null? All exceptions must not be caught and sunk (i.e. not rethrown)  Do the comments accurately describe the code? Examine loops for performance issues There must be no hard-coded strings and magic numbers in the code  All user-visible strings must be localizable (i.e. retrieved from a resource file) Verify correctness of operators Is arithmetic safe for overflow and 64-bit math? Are the functions or source files exceptionally large or complex?  Are COM interfaces properly ref counted? Are untrusted inputs validated? Check for properly constructed switch statements Are there unused elements in data structures? Are string buffers big enough for localized content?  Does the new code duplicate code that exists elsewhere in the project? Are there unnecessary global variables? Is the code overly complex? Could it be simpler? Do the function and variable names make sense? All memory allocations should be checked for failure? Are comments appropriate and useful? Does the code have performance implications – if so, are optimizations possible? Are there spelling errors in names or comments? Have boundary conditions been checked? 

Mais conteúdo relacionado

Mais procurados

When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPPaula Čučuk
 
Code Review Tool Evaluation
Code Review Tool EvaluationCode Review Tool Evaluation
Code Review Tool EvaluationKate Semizhon
 
Code review
Code reviewCode review
Code reviewdqpi
 
Bro, manage test data like a pro!
Bro, manage test data like a pro!Bro, manage test data like a pro!
Bro, manage test data like a pro!Mikalai Alimenkou
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis PrimerCoverity
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelinesLalit Kale
 
Automation test scripting techniques
Automation test scripting techniquesAutomation test scripting techniques
Automation test scripting techniquesZhu Zhong
 
DevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityDevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityCoverity
 
Testing Philosphies
Testing PhilosphiesTesting Philosphies
Testing PhilosphiesRob Kaufman
 
Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...
Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...
Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...Artemisa Yescas Engler
 
Git branching policy and review comment's prefix
Git branching policy and review comment's prefixGit branching policy and review comment's prefix
Git branching policy and review comment's prefixKumaresh Chandra Baruri
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testingeleksdev
 
Code review process with JetBrains UpSource
Code review process with JetBrains UpSourceCode review process with JetBrains UpSource
Code review process with JetBrains UpSourceOleksii Prohonnyi
 
Testy dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w LaravelTesty dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w LaravelLaravel Poland MeetUp
 
How to get the most out of code reviews
How to get the most out of code reviewsHow to get the most out of code reviews
How to get the most out of code reviewsJavaDayUA
 
Code Review
Code ReviewCode Review
Code ReviewDivante
 
Software Testing - Tool support for testing (CAST) - Mazenet Solution
Software Testing - Tool support for testing (CAST) - Mazenet SolutionSoftware Testing - Tool support for testing (CAST) - Mazenet Solution
Software Testing - Tool support for testing (CAST) - Mazenet SolutionMazenetsolution
 
Automated Testing for Web Applications - Wurbe #36
Automated Testing for Web Applications - Wurbe #36Automated Testing for Web Applications - Wurbe #36
Automated Testing for Web Applications - Wurbe #36Andrei Savu
 

Mais procurados (20)

Code Review for iOS
Code Review for iOSCode Review for iOS
Code Review for iOS
 
When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHP
 
Code Review Tool Evaluation
Code Review Tool EvaluationCode Review Tool Evaluation
Code Review Tool Evaluation
 
Code review
Code reviewCode review
Code review
 
Bro, manage test data like a pro!
Bro, manage test data like a pro!Bro, manage test data like a pro!
Bro, manage test data like a pro!
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis Primer
 
Code Review
Code ReviewCode Review
Code Review
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
 
Automation test scripting techniques
Automation test scripting techniquesAutomation test scripting techniques
Automation test scripting techniques
 
DevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityDevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first Security
 
Testing Philosphies
Testing PhilosphiesTesting Philosphies
Testing Philosphies
 
Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...
Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...
Reading Summary - Static Analysis to find Bugs & ROI Models for Static Analys...
 
Git branching policy and review comment's prefix
Git branching policy and review comment's prefixGit branching policy and review comment's prefix
Git branching policy and review comment's prefix
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testing
 
Code review process with JetBrains UpSource
Code review process with JetBrains UpSourceCode review process with JetBrains UpSource
Code review process with JetBrains UpSource
 
Testy dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w LaravelTesty dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w Laravel
 
How to get the most out of code reviews
How to get the most out of code reviewsHow to get the most out of code reviews
How to get the most out of code reviews
 
Code Review
Code ReviewCode Review
Code Review
 
Software Testing - Tool support for testing (CAST) - Mazenet Solution
Software Testing - Tool support for testing (CAST) - Mazenet SolutionSoftware Testing - Tool support for testing (CAST) - Mazenet Solution
Software Testing - Tool support for testing (CAST) - Mazenet Solution
 
Automated Testing for Web Applications - Wurbe #36
Automated Testing for Web Applications - Wurbe #36Automated Testing for Web Applications - Wurbe #36
Automated Testing for Web Applications - Wurbe #36
 

Destaque

Pad workshop linked in presentation
Pad workshop linked in presentationPad workshop linked in presentation
Pad workshop linked in presentationLee Haynes
 
SwaaS Analytics Client Presentation
SwaaS Analytics Client PresentationSwaaS Analytics Client Presentation
SwaaS Analytics Client PresentationShailesh Chopdekar
 
문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권
문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권
문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권티켓 핀
 
Ppt filsafat sejarah yeni 2
Ppt filsafat sejarah yeni 2Ppt filsafat sejarah yeni 2
Ppt filsafat sejarah yeni 2novyeni02
 
Alice Avanian BSAS Presentation 9-15-15
Alice Avanian BSAS Presentation 9-15-15Alice Avanian BSAS Presentation 9-15-15
Alice Avanian BSAS Presentation 9-15-15Alice Avanian, CFA
 
2. Arte Ibérico
2. Arte Ibérico2. Arte Ibérico
2. Arte IbéricoJ Luque
 
Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...
Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...
Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...Sander Hermsen
 
How To Develop Your Focus
How To Develop Your FocusHow To Develop Your Focus
How To Develop Your FocusSadman Ridoy
 
shipyard hazards rev 01 2009 01
 shipyard hazards rev 01 2009 01 shipyard hazards rev 01 2009 01
shipyard hazards rev 01 2009 01Ainnz Abiggaill
 
BALLENT,Anahi. Las huellas de la politica. Capitulo IV
BALLENT,Anahi. Las huellas de la politica. Capitulo IVBALLENT,Anahi. Las huellas de la politica. Capitulo IV
BALLENT,Anahi. Las huellas de la politica. Capitulo IVUrba2014
 
Fuse- Power system Protection
Fuse- Power system Protection  Fuse- Power system Protection
Fuse- Power system Protection Md. Nahid Sarker
 
profesor_ II mitad s. XX
profesor_ II mitad s. XXprofesor_ II mitad s. XX
profesor_ II mitad s. XXEditorial Ecir
 

Destaque (20)

Pad workshop linked in presentation
Pad workshop linked in presentationPad workshop linked in presentation
Pad workshop linked in presentation
 
Jfco5b
Jfco5bJfco5b
Jfco5b
 
Shoaib Ayub
Shoaib AyubShoaib Ayub
Shoaib Ayub
 
SwaaS Analytics Client Presentation
SwaaS Analytics Client PresentationSwaaS Analytics Client Presentation
SwaaS Analytics Client Presentation
 
Three Thoughts
Three ThoughtsThree Thoughts
Three Thoughts
 
문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권
문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권
문화상품권현금화 티켓핀 O1O 7577 OO63 원스토어 문화상품권
 
Certificaat.22
Certificaat.22Certificaat.22
Certificaat.22
 
Ppt filsafat sejarah yeni 2
Ppt filsafat sejarah yeni 2Ppt filsafat sejarah yeni 2
Ppt filsafat sejarah yeni 2
 
19 o convite de cristo
19   o convite de cristo19   o convite de cristo
19 o convite de cristo
 
KarenJohnsonCV.doc
KarenJohnsonCV.docKarenJohnsonCV.doc
KarenJohnsonCV.doc
 
Alice Avanian BSAS Presentation 9-15-15
Alice Avanian BSAS Presentation 9-15-15Alice Avanian BSAS Presentation 9-15-15
Alice Avanian BSAS Presentation 9-15-15
 
2. Arte Ibérico
2. Arte Ibérico2. Arte Ibérico
2. Arte Ibérico
 
Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...
Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...
Involving the user in your design with the Behavioural Lenses - MEDICA Trade ...
 
How To Develop Your Focus
How To Develop Your FocusHow To Develop Your Focus
How To Develop Your Focus
 
shipyard hazards rev 01 2009 01
 shipyard hazards rev 01 2009 01 shipyard hazards rev 01 2009 01
shipyard hazards rev 01 2009 01
 
Communication
CommunicationCommunication
Communication
 
BALLENT,Anahi. Las huellas de la politica. Capitulo IV
BALLENT,Anahi. Las huellas de la politica. Capitulo IVBALLENT,Anahi. Las huellas de la politica. Capitulo IV
BALLENT,Anahi. Las huellas de la politica. Capitulo IV
 
Fuse- Power system Protection
Fuse- Power system Protection  Fuse- Power system Protection
Fuse- Power system Protection
 
Examen de comunio y confirmacion
Examen de comunio y confirmacionExamen de comunio y confirmacion
Examen de comunio y confirmacion
 
profesor_ II mitad s. XX
profesor_ II mitad s. XXprofesor_ II mitad s. XX
profesor_ II mitad s. XX
 

Semelhante a Peering into the white box: A testers approach to Code Reviews

Static white box testing lecture 12
Static white box testing lecture 12Static white box testing lecture 12
Static white box testing lecture 12Abdul Basit
 
White box testing
White box testingWhite box testing
White box testingAbdul Basit
 
Code Review
Code ReviewCode Review
Code ReviewRavi Raj
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
 
How to do code review and use analysis tool in software development
How to do code review and use analysis tool in software developmentHow to do code review and use analysis tool in software development
How to do code review and use analysis tool in software developmentMitosis Technology
 
Code review best practice
Code review best practiceCode review best practice
Code review best practiceOren Digmi
 
Anti Patterns Siddhesh Lecture1 Of3
Anti Patterns Siddhesh Lecture1 Of3Anti Patterns Siddhesh Lecture1 Of3
Anti Patterns Siddhesh Lecture1 Of3Siddhesh Bhobe
 
Documenting Code - Patterns and Anti-patterns - NLPW 2016
Documenting Code - Patterns and Anti-patterns - NLPW 2016Documenting Code - Patterns and Anti-patterns - NLPW 2016
Documenting Code - Patterns and Anti-patterns - NLPW 2016Søren Lund
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionJosh Gough
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Abhijeet Vaikar
 
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.pdfsarah david
 
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.pptxsarah david
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Grig Gheorghiu
 
Unit3 software review control software
Unit3 software review control softwareUnit3 software review control software
Unit3 software review control softwareReetesh Gupta
 
An Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationAn Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationBlue Elephant Consulting
 

Semelhante a Peering into the white box: A testers approach to Code Reviews (20)

Static white box testing lecture 12
Static white box testing lecture 12Static white box testing lecture 12
Static white box testing lecture 12
 
White box testing
White box testingWhite box testing
White box testing
 
Code Review
Code ReviewCode Review
Code Review
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
Unit iv
Unit ivUnit iv
Unit iv
 
How to do code review and use analysis tool in software development
How to do code review and use analysis tool in software developmentHow to do code review and use analysis tool in software development
How to do code review and use analysis tool in software development
 
Code review best practice
Code review best practiceCode review best practice
Code review best practice
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
Code review
Code reviewCode review
Code review
 
Anti Patterns Siddhesh Lecture1 Of3
Anti Patterns Siddhesh Lecture1 Of3Anti Patterns Siddhesh Lecture1 Of3
Anti Patterns Siddhesh Lecture1 Of3
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality Tools
 
Code Review
Code ReviewCode Review
Code Review
 
Documenting Code - Patterns and Anti-patterns - NLPW 2016
Documenting Code - Patterns and Anti-patterns - NLPW 2016Documenting Code - Patterns and Anti-patterns - NLPW 2016
Documenting Code - Patterns and Anti-patterns - NLPW 2016
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous Inspection
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)
 
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_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
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009
 
Unit3 software review control software
Unit3 software review control softwareUnit3 software review control software
Unit3 software review control software
 
An Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationAn Introduction To Software Development - Implementation
An Introduction To Software Development - Implementation
 

Último

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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 RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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)wesley chun
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
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...Miguel Araújo
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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 WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Último (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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)
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
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...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Peering into the white box: A testers approach to Code Reviews

  • 1. Peering Into the White Box: A testers approach to code reviews Alan Page Microsoft
  • 4. The Tester’s Point of View Code reviews traditionally a developer activity Developers write unit tests Developers ask “does this work?” Developers look at code one way, but… But testers still find functional bugs Testers ask “how can this fail?” Testers have a different perspective Experiment: Have testers perform code reviews
  • 5. Types of Reviews More formalMore effectiveGreater cost Less formalLess effectiveLess cost Formal Inspection Ad hoc review Based on Peer Reviews in Software by Wiegers, 2002
  • 6. Approach Kickoff meeting Collect volunteers Set expectations Schedule meetings Share checklist
  • 7. Using a Checklist The illusion of attention If you look for everything, you’ll miss something If you look for one thing, you’ll miss other things Mitigation Loop one at a time through a list of common errors
  • 8. Selecting Code for Review Churn Complexity Intuition Convenience
  • 9. Results Four teams Moderate engagement Skill increase Successful “Bug Hunting”
  • 10.
  • 11.
  • 12.
  • 13. Lessons Learned Not like other testing Balance w/other activities The Checklist Develop “Experts” Development team involvement Bug Tracking
  • 14. Future Plans Continue with select team members Inspection “SWAT” Track comments and discussion
  • 15. Are code reviews for you?
  • 16. Resources Software Inspection – Tom Gilb & Dorothy Graham. Addison-Wesley Professional (January 10, 1994) The Best Kept Secrets of Peer Code Review - http://smartbear.com/codecollab-code-review-book.php Software Inspection (web article) - http://www.the-software-experts.de/e_dta-sw-test-inspection.htm Fagan Inspections (Wikipedia entry) - http://en.wikipedia.org/wiki/Fagan_inspection
  • 17. Are input parameters validated and checked for null? All exceptions must not be caught and sunk (i.e. not rethrown) Do the comments accurately describe the code? Examine loops for performance issues There must be no hard-coded strings and magic numbers in the code All user-visible strings must be localizable (i.e. retrieved from a resource file) Verify correctness of operators Is arithmetic safe for overflow and 64-bit math? Are the functions or source files exceptionally large or complex? Are COM interfaces properly ref counted? Are untrusted inputs validated? Check for properly constructed switch statements Are there unused elements in data structures? Are string buffers big enough for localized content? Does the new code duplicate code that exists elsewhere in the project? Are there unnecessary global variables? Is the code overly complex? Could it be simpler? Do the function and variable names make sense? All memory allocations should be checked for failure? Are comments appropriate and useful? Does the code have performance implications – if so, are optimizations possible? Are there spelling errors in names or comments? Have boundary conditions been checked? 

Notas do Editor

  1. Portfolio theory
  2. B
  3. Radiologist missing guide wire
  4. Code Churn – We identified areas of the product with high amounts of recently modified or added code and selected source files within that area as potentially reviewable. Code Complexity – Code with a large number of paths or variables, or code with a high number of dependencies is prone to error. Tester Intuition – “Gut feel” or “tester intuition”; testers often have a hunch of where bugs may lurk, and in our experience, these hunches are accurate enough to influence the selection.
  5. Swat teams
  6. Sample checklist items