SlideShare a Scribd company logo
Confidential & Proprietary
www.leadingedje.com
ChatGPT as a
Testing Tool
Bob Fornal
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
About Me
● Husband and Father
● Senior Solutions Developer at Leading EDJE, Inc.
● 1978 - Started Writing Code
● 1990 - Completed BS CPS
● 1994 - Started Teaching Computers
● 2012 - Select Sires, Inc.
● 2016 - Leading EDJE, Inc.
● May 2023 - Code Squid (https://code-squid.com)
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
ASSUMPTIONS (when I started)
1. ChatGPT is a tool.
2. The data is out of date.
3. It’s a natural language processing tool driven by “AI” technology.
4. 100 million active users in January, only two months after its launch.
5. Trained on vast amounts of information from the Internet, including websites, books, news
articles, and more.
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Baseline Research
Senior Developer
In Person
Video
When ChatGPT is confidently wrong
Student Creates App(s)
Fully ChatGPT generated
Interview
Lag before answering
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Inmate Mentality
● If ChatGPT were human, you’d say it’s “lying through its teeth.”
● Inmates always blamed someone else. I often heard, “everyone around me
was doing (this dumb thing), so I did too.”
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
My Research
Angular API Code Angular Library Code
GitHub Actions to
GitHub Pages
Angular / React
Email Regular Expressions
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Thoughts …
1. Phrasing a QUERY is as complicated and nuanced as a Google Search.
2. It takes KNOWLEDGE and EXPERIENCE to evaluate the usefulness of a
particular answer.
3. An answer can be beyond our SKILLSET to evaluate.
4. It generates a good list of IMPROVEMENTS to code.
5. It generates a solid set of UNIT TESTS most of the time (50% plus).
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Questions Used (Angular API Code)
1. I'm looking for javascript code to connect to an api endpoint with basic error
handling.
2. Can you do the same thing with Angular and TypeScript?
3. Can the same thing be done with async/await and try/catch blocks?
4. Can you create an angular service with a getData function that gets from an
api endpoint using async/await and try/catch blocks and stored the data in a
behavior subject that can be subscribed to?
5. Can you write the unit tests for this service?
6. Is there a better way to design the service?
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Questions Used (Angular API Service)
Asked, “Is there a better way to design the service?”
It depends on the specific requirements of your application, but here are some ways that you could improve the
design of the service:
1. Return a single instance of the BehaviorSubject: Instead of returning a new Observable from the
getData method every time it is called, you could return a single instance of the BehaviorSubject that is
created in the service. This way, multiple subscribers will receive updates from the same subject.
2. Cache the data: If the data from the API is not expected to change frequently, you could cache the data in
the service after the first successful request and return the cached data on subsequent calls to the getData
method. This will reduce the number of unnecessary HTTP requests and improve the performance of the
application.
3. Return an error state: Instead of logging an error to the console, you could return an error state in the
BehaviorSubject that indicates whether the data was successfully fetched or if an error occurred. This will
allow components to handle the error state and display appropriate error messages to the user.
4. Use a generic type for the BehaviorSubject: You could use a generic type for the BehaviorSubject to
specify the type of the data that it will be storing. This will improve the type safety of the code and make it
easier to catch errors during development.
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Questions Used (Angular Library)
1. Can you generate an input component for an Angular Library?
2. Can you generate the same component with an Event Emitter?
3. Can you show me how to use this component?
4. Can you show me unit tests for the InputComponent?
5. Show me a Storybook story for the InputComponent (that handles the
value change).
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Questions Used (Regular Expressions)
1. Generate a javascript email regular expression.
2. Generate a comprehensive email regular expression.
3. Can you design some unit tests against the comprehensive regular
expression?
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Positives (PSA)
1. Asking “what does this code do” seems OK.
2. Asking “what could be done to improve this code” seems OK.
3. Asking for Unit Tests seems to work in SOME situations.
4. Debugging Code might be OK.
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
Thoughts …
1. Phrasing a QUERY is as complicated and nuanced as a Google Search.
2. It takes KNOWLEDGE and EXPERIENCE to evaluate the usefulness of a
particular answer.
3. An answer can be beyond our SKILLSET to evaluate.
4. It generates a good list of IMPROVEMENTS to code.
5. It generates a solid set of UNIT TESTS most of the time (50% plus).
Confidential & Proprietary
www.leadingedje.com
Confidential & Proprietary
www.leadingedje.com
What to Avoid When
Writing Unit Tests

More Related Content

Similar to Robert Fornal - ChatGPT as a Testing Tool.pptx

System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
Michael Choi
 
Reasons to Use Typescript for Your Next Project Over Javascript.pdf
Reasons to Use Typescript for Your Next Project Over Javascript.pdfReasons to Use Typescript for Your Next Project Over Javascript.pdf
Reasons to Use Typescript for Your Next Project Over Javascript.pdf
MobMaxime
 
Angular
AngularAngular
Raman monga
Raman mongaRaman monga
Raman monga
Raman Monga
 
The Open Web
The Open WebThe Open Web
The Open Web
Lachlan Hardy
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
European Collaboration Summit
 
Datasets, APIs, and Web Scraping
Datasets, APIs, and Web ScrapingDatasets, APIs, and Web Scraping
Datasets, APIs, and Web Scraping
Damian T. Gordon
 
Using ap is to gather data
Using ap is to gather data Using ap is to gather data
Using ap is to gather data
Ke Jiang
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformApigee | Google Cloud
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
Jaoued Ahmed
 
Building Powerful and Intelligent Applications with Azure Machine Learning
Building Powerful and Intelligent Applications with Azure Machine LearningBuilding Powerful and Intelligent Applications with Azure Machine Learning
Building Powerful and Intelligent Applications with Azure Machine Learning
David Walker, CSM,CSD,MCP,MCAD,MCSD,MVP
 
Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...
Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...
Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...
All Things Open
 
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
dtz001
 
Progressive EPiServer Development
Progressive EPiServer DevelopmentProgressive EPiServer Development
Progressive EPiServer Development
joelabrahamsson
 
Project_Goibibo information technology automation testing.pptx
Project_Goibibo information technology automation testing.pptxProject_Goibibo information technology automation testing.pptx
Project_Goibibo information technology automation testing.pptx
skhushi9980
 
Sucuri Webinar: How to Optimize Your Website for Best Performance
Sucuri Webinar: How to Optimize Your Website for Best PerformanceSucuri Webinar: How to Optimize Your Website for Best Performance
Sucuri Webinar: How to Optimize Your Website for Best Performance
Sucuri
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Applitools
 

Similar to Robert Fornal - ChatGPT as a Testing Tool.pptx (20)

System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Reasons to Use Typescript for Your Next Project Over Javascript.pdf
Reasons to Use Typescript for Your Next Project Over Javascript.pdfReasons to Use Typescript for Your Next Project Over Javascript.pdf
Reasons to Use Typescript for Your Next Project Over Javascript.pdf
 
Projects
ProjectsProjects
Projects
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
Angular
AngularAngular
Angular
 
Raman monga
Raman mongaRaman monga
Raman monga
 
The Open Web
The Open WebThe Open Web
The Open Web
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 
Datasets, APIs, and Web Scraping
Datasets, APIs, and Web ScrapingDatasets, APIs, and Web Scraping
Datasets, APIs, and Web Scraping
 
Using ap is to gather data
Using ap is to gather data Using ap is to gather data
Using ap is to gather data
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps Platform
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
 
Building Powerful and Intelligent Applications with Azure Machine Learning
Building Powerful and Intelligent Applications with Azure Machine LearningBuilding Powerful and Intelligent Applications with Azure Machine Learning
Building Powerful and Intelligent Applications with Azure Machine Learning
 
Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...
Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...
Deployment Design Patterns - Deploying Machine Learning and Deep Learning Mod...
 
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
AllThingsOpen 2018 - Deployment Design Patterns (Dan Zaratsian)
 
Madhusmita mohanty_MohantyCV
Madhusmita mohanty_MohantyCVMadhusmita mohanty_MohantyCV
Madhusmita mohanty_MohantyCV
 
Progressive EPiServer Development
Progressive EPiServer DevelopmentProgressive EPiServer Development
Progressive EPiServer Development
 
Project_Goibibo information technology automation testing.pptx
Project_Goibibo information technology automation testing.pptxProject_Goibibo information technology automation testing.pptx
Project_Goibibo information technology automation testing.pptx
 
Sucuri Webinar: How to Optimize Your Website for Best Performance
Sucuri Webinar: How to Optimize Your Website for Best PerformanceSucuri Webinar: How to Optimize Your Website for Best Performance
Sucuri Webinar: How to Optimize Your Website for Best Performance
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 

More from QA or the Highway

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA or the Highway
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
QA or the Highway
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
QA or the Highway
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
QA or the Highway
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
QA or the Highway
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
QA or the Highway
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
QA or the Highway
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
QA or the Highway
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
QA or the Highway
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
QA or the Highway
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
QA or the Highway
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
QA or the Highway
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
QA or the Highway
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
QA or the Highway
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
QA or the Highway
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
QA or the Highway
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
QA or the Highway
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
QA or the Highway
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
QA or the Highway
 
Ben Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdfBen Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdf
QA or the Highway
 

More from QA or the Highway (20)

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
 
Ben Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdfBen Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdf
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 

Robert Fornal - ChatGPT as a Testing Tool.pptx

  • 2. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com About Me ● Husband and Father ● Senior Solutions Developer at Leading EDJE, Inc. ● 1978 - Started Writing Code ● 1990 - Completed BS CPS ● 1994 - Started Teaching Computers ● 2012 - Select Sires, Inc. ● 2016 - Leading EDJE, Inc. ● May 2023 - Code Squid (https://code-squid.com)
  • 3. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com ASSUMPTIONS (when I started) 1. ChatGPT is a tool. 2. The data is out of date. 3. It’s a natural language processing tool driven by “AI” technology. 4. 100 million active users in January, only two months after its launch. 5. Trained on vast amounts of information from the Internet, including websites, books, news articles, and more.
  • 4. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Baseline Research Senior Developer In Person Video When ChatGPT is confidently wrong Student Creates App(s) Fully ChatGPT generated Interview Lag before answering
  • 5. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Inmate Mentality ● If ChatGPT were human, you’d say it’s “lying through its teeth.” ● Inmates always blamed someone else. I often heard, “everyone around me was doing (this dumb thing), so I did too.”
  • 6. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com My Research Angular API Code Angular Library Code GitHub Actions to GitHub Pages Angular / React Email Regular Expressions
  • 7. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Thoughts … 1. Phrasing a QUERY is as complicated and nuanced as a Google Search. 2. It takes KNOWLEDGE and EXPERIENCE to evaluate the usefulness of a particular answer. 3. An answer can be beyond our SKILLSET to evaluate. 4. It generates a good list of IMPROVEMENTS to code. 5. It generates a solid set of UNIT TESTS most of the time (50% plus).
  • 8. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Questions Used (Angular API Code) 1. I'm looking for javascript code to connect to an api endpoint with basic error handling. 2. Can you do the same thing with Angular and TypeScript? 3. Can the same thing be done with async/await and try/catch blocks? 4. Can you create an angular service with a getData function that gets from an api endpoint using async/await and try/catch blocks and stored the data in a behavior subject that can be subscribed to? 5. Can you write the unit tests for this service? 6. Is there a better way to design the service?
  • 9. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Questions Used (Angular API Service) Asked, “Is there a better way to design the service?” It depends on the specific requirements of your application, but here are some ways that you could improve the design of the service: 1. Return a single instance of the BehaviorSubject: Instead of returning a new Observable from the getData method every time it is called, you could return a single instance of the BehaviorSubject that is created in the service. This way, multiple subscribers will receive updates from the same subject. 2. Cache the data: If the data from the API is not expected to change frequently, you could cache the data in the service after the first successful request and return the cached data on subsequent calls to the getData method. This will reduce the number of unnecessary HTTP requests and improve the performance of the application. 3. Return an error state: Instead of logging an error to the console, you could return an error state in the BehaviorSubject that indicates whether the data was successfully fetched or if an error occurred. This will allow components to handle the error state and display appropriate error messages to the user. 4. Use a generic type for the BehaviorSubject: You could use a generic type for the BehaviorSubject to specify the type of the data that it will be storing. This will improve the type safety of the code and make it easier to catch errors during development.
  • 10. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Questions Used (Angular Library) 1. Can you generate an input component for an Angular Library? 2. Can you generate the same component with an Event Emitter? 3. Can you show me how to use this component? 4. Can you show me unit tests for the InputComponent? 5. Show me a Storybook story for the InputComponent (that handles the value change).
  • 11. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Questions Used (Regular Expressions) 1. Generate a javascript email regular expression. 2. Generate a comprehensive email regular expression. 3. Can you design some unit tests against the comprehensive regular expression?
  • 12. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Positives (PSA) 1. Asking “what does this code do” seems OK. 2. Asking “what could be done to improve this code” seems OK. 3. Asking for Unit Tests seems to work in SOME situations. 4. Debugging Code might be OK.
  • 13. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com Thoughts … 1. Phrasing a QUERY is as complicated and nuanced as a Google Search. 2. It takes KNOWLEDGE and EXPERIENCE to evaluate the usefulness of a particular answer. 3. An answer can be beyond our SKILLSET to evaluate. 4. It generates a good list of IMPROVEMENTS to code. 5. It generates a solid set of UNIT TESTS most of the time (50% plus).
  • 14. Confidential & Proprietary www.leadingedje.com Confidential & Proprietary www.leadingedje.com What to Avoid When Writing Unit Tests

Editor's Notes

  1. chat.openai.com
  2. On an OS project that I was running, I had a developer write unit tests and ask for a pairing session. The tests looked odd (component level tests in Angular versus traditional modular). He said, “I got this from ChatGPT and couldn’t get it working.” Tools Does not use current Internet Data. Definition of AI: put things in order in a statistical way without understanding meaning (LOOK RIGHT) SCARY “From the Internet” … which is ALWAYS RIGHT.
  3. SENIOR DEVELOPER: Met and discussed an individual’s ability to determine if it’s right or wrong. All total, I tested 12 different scenarios. VIDEO Pluralsight: https://www.youtube.com/watch?v=ZZoT005p8ko (Simon Allardice) STUDENT Bootcamp response, work is fully ChatGPT generated. I looked at the answers and understood them. INTERVIEW Seen more than once recently. Companies are rethinking interviews.
  4. All total, I tested 12 different scenarios. These were the major ones and the results I found. With Angular API, Angular Library, and Email RegEx I tried UNIT TESTS.
  5. It only provides a single answer, not several that you can evaluate. You’re evaluating that single answer. … … Only 50% of the sime, see #2
  6. It only provides a single answer, not several that you can evaluate. You’re evaluating that single answer. … … Only 50% of the sime, see #2
  7. <!-- HTML Credit Code for Can Stock Photo --> <a href="https://www.canstockphoto.com">(c) Can Stock Photo / catalby</a>