SlideShare a Scribd company logo
1 of 14
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 ApplicationMichael Choi
 
[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 ScrapingDamian 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 MyAppConverterJaoued 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 LearningDavid 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 Developmentjoelabrahamsson
 
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.pptxskhushi9980
 
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 PerformanceSucuri
 
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
 
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...
 
The Open Web
The Open WebThe Open Web
The Open Web
 

More from QA or the Highway

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA 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.pptxQA 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.pptxQA or the Highway
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfQA or the Highway
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfQA 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.pdfQA 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.pdfQA 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.pdfQA 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.pdfQA or the Highway
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfQA 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.pdfQA 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.pptxQA 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.pdfQA 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.pdfQA 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.pptxQA or the Highway
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfQA 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.pdfQA 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.pptxQA 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.pptxQA 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.pdfQA 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

Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Recently uploaded (20)

Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

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>