SlideShare ist ein Scribd-Unternehmen logo
1 von 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? 

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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 productivityPrincipled Technologies
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Kürzlich hochgeladen (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

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? 

Hinweis der Redaktion

  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