SlideShare a Scribd company logo
PHP Test Fest
Become a core PHP Developer
Who am I?
Lead Developer and Solutions Architect for
DynamicReservations
Writing PHP web apps professionally for 12 yrs
DDD and EventSourcing fanatic (I will talk for hours)
Recovered Architecture Astronaut
Co-Organiser of PHPDublin
@barryosull
barry@tercet.io
http://dev.to/barryosull
http://barryosullivan.me
What is PHPTestFest?
World wide event - Sep to Dec 2017
Write tests for the core of PHP
Meeting Virtually and Physically
PHPDublin is taking part!
Day long event, help devs in Ireland write tests
Why am I qualified to give this talk?
Because I am a core contributor to PHP
The file I committed
“Hey, I could do that!”
Writing tests in PHP
So easy, even I could do it
Testing in PHP
PHP tests are written as PHPT files
These are just PHP files with extra bits
No C code required!
They’re super easy to read and write
Any PHP developer can do it
Walk through an example
--TEST --
Test description
--FILE--
Test contents
--EXPECT--
Expected output
php-src/Zend/tests/nullable_types/string.phpt
Types of test
1. Basic 2. Error 3. Bug
Running your tests
1. Get your machine setup to run the tests
a. Install docker on your machine
b. Run the following command line
curl -s https://raw.githubusercontent.com/herdphp/docker-phpqa/master/bin/installer.sh | bash
2. Fork the PHP-SRC from github
3. Clone to your local machine
4. Create your test file in the tests directory of the file/function you’re testing
5. Run your tests
Debugging failing tests
Running a failing test creates the following file extensions with same name as the test
.out - The actual output that the PHP code from the --FILE-- section generated
.exp - The output we expected from the --EXPECT-- section
.diff - A diff file with the actual output compared to the expected output
.log - Both actual and expected output in one file
.php - The --FILE-- section as a PHP file
.sh - A bash script that runs the PHP file in the same environment that run-tests ran it
Example diff file
php-src/Zend/tests/nullable_types/string.phpt php-src/Zend/tests/nullable_types/string.diff
Submitting your test
1. Push your changes to your fork on github
2. Create a PR between your branch and master
3. Wait …
4. Celebrate when it’s accepted!
Finding untested code
The whole point of writing a test is to test untested code
Go to http://gcov.php.net/
Look for something with low coverage
Write a test for it!
The test I wrote
You will not believe how simple it is
How I found curl_share_close needed to be
tested
How I found curl_share_close needed to be
tested
My simple test
What it looks like now
What it looks like now
Tips for navigating the C code
Not as hard as it looks
- PHP_FUNCTION marks the definition of a function
- Look for untested function code
- Goto the php.net definition for that function
- Looks for example code
- Use that as a template for your test
Writing a test from scratch
Because a tutorial isn’t complete without a live demo!
(one that will most likely break)
We missed an error case
Missed Error Case
Live demo time
It’s that easy
Today we showed
1. PHPT tests in PHP
2. How to find code to test
3. How to write the tests
4. How to submit tests
5. Wrote a test in ~5 minutes
In other words:
PHP Test Fest
Day long event in on a Saturday in September (details TBD).
The Dublin PHPTestFest team
https://groups.google.com/a/phpcommunity.org/group/testfest/ #phptestfest
https://phptestfest.org/
Michael Flanagan
@micflan
Bruno Siqueira
@brunoric
Ken Guest
@kenguest
Barry O Sullivan
@barryosull
Joao Paulo V Martins
@jpvm
Mark Railton
@railto
Ad

Recommended

Surgeons guide plugin development
Surgeons guide plugin development
afragen
 
PHP Files: An Introduction
PHP Files: An Introduction
Jacques Woodcock
 
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
John Potocny
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)
Aaron Schlesinger
 
Beginning development in go
Beginning development in go
Equaleyes Solutions Ltd.
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and Titanium
Ben Ramsey
 
Desktop Apps with PHP and Titanium (ZendCon 2010)
Desktop Apps with PHP and Titanium (ZendCon 2010)
Ben Ramsey
 
An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)
Jeremy Coates
 
An introduction to Phing the PHP build system
An introduction to Phing the PHP build system
Jeremy Coates
 
Golang
Golang
Michael Blake
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHP
Tareq Hasan
 
Go lang
Go lang
Suelen Carvalho
 
Як РНР розробник пише код на Kotlin
Як РНР розробник пише код на Kotlin
phpfriendsclub
 
Integração Contínua com PHPCI
Integração Contínua com PHPCI
Thiago Paes
 
Dev + DevOps для PHP розробника
Dev + DevOps для PHP розробника
phpfriendsclub
 
Practical PowerShell Programming for Professional People
Practical PowerShell Programming for Professional People
Ben Ten (0xA)
 
Practical PowerShell Programming for Professional People - DerbyCon 4
Practical PowerShell Programming for Professional People - DerbyCon 4
Ben Ten (0xA)
 
Using Composer to create manageable WordPress websites
Using Composer to create manageable WordPress websites
Anna Ladoshkina
 
An introduction to go programming language
An introduction to go programming language
Technology Parser
 
Introduction to go lang
Introduction to go lang
Amal Mohan N
 
Building Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScript
funkatron
 
Go language presentation
Go language presentation
paramisoft
 
Practical PowerShell Programming for Professional People - Extended Edition
Practical PowerShell Programming for Professional People - Extended Edition
Ben Ten (0xA)
 
Typescript kata The TDD style 2 edition
Typescript kata The TDD style 2 edition
Ronnie Hegelund
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshop
Fotis Alexandrou
 
Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)
Paul Jones
 
FuelPHP
FuelPHP
Nitin Reddy Katkam
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...
Combell NV
 
PHP Internals
PHP Internals
Nico Loubser
 

More Related Content

What's hot (20)

An introduction to Phing the PHP build system
An introduction to Phing the PHP build system
Jeremy Coates
 
Golang
Golang
Michael Blake
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHP
Tareq Hasan
 
Go lang
Go lang
Suelen Carvalho
 
Як РНР розробник пише код на Kotlin
Як РНР розробник пише код на Kotlin
phpfriendsclub
 
Integração Contínua com PHPCI
Integração Contínua com PHPCI
Thiago Paes
 
Dev + DevOps для PHP розробника
Dev + DevOps для PHP розробника
phpfriendsclub
 
Practical PowerShell Programming for Professional People
Practical PowerShell Programming for Professional People
Ben Ten (0xA)
 
Practical PowerShell Programming for Professional People - DerbyCon 4
Practical PowerShell Programming for Professional People - DerbyCon 4
Ben Ten (0xA)
 
Using Composer to create manageable WordPress websites
Using Composer to create manageable WordPress websites
Anna Ladoshkina
 
An introduction to go programming language
An introduction to go programming language
Technology Parser
 
Introduction to go lang
Introduction to go lang
Amal Mohan N
 
Building Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScript
funkatron
 
Go language presentation
Go language presentation
paramisoft
 
Practical PowerShell Programming for Professional People - Extended Edition
Practical PowerShell Programming for Professional People - Extended Edition
Ben Ten (0xA)
 
Typescript kata The TDD style 2 edition
Typescript kata The TDD style 2 edition
Ronnie Hegelund
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshop
Fotis Alexandrou
 
Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)
Paul Jones
 
FuelPHP
FuelPHP
Nitin Reddy Katkam
 
An introduction to Phing the PHP build system
An introduction to Phing the PHP build system
Jeremy Coates
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHP
Tareq Hasan
 
Як РНР розробник пише код на Kotlin
Як РНР розробник пише код на Kotlin
phpfriendsclub
 
Integração Contínua com PHPCI
Integração Contínua com PHPCI
Thiago Paes
 
Dev + DevOps для PHP розробника
Dev + DevOps для PHP розробника
phpfriendsclub
 
Practical PowerShell Programming for Professional People
Practical PowerShell Programming for Professional People
Ben Ten (0xA)
 
Practical PowerShell Programming for Professional People - DerbyCon 4
Practical PowerShell Programming for Professional People - DerbyCon 4
Ben Ten (0xA)
 
Using Composer to create manageable WordPress websites
Using Composer to create manageable WordPress websites
Anna Ladoshkina
 
An introduction to go programming language
An introduction to go programming language
Technology Parser
 
Introduction to go lang
Introduction to go lang
Amal Mohan N
 
Building Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScript
funkatron
 
Go language presentation
Go language presentation
paramisoft
 
Practical PowerShell Programming for Professional People - Extended Edition
Practical PowerShell Programming for Professional People - Extended Edition
Ben Ten (0xA)
 
Typescript kata The TDD style 2 edition
Typescript kata The TDD style 2 edition
Ronnie Hegelund
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshop
Fotis Alexandrou
 
Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)
Paul Jones
 

Similar to Php test fest (20)

Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...
Combell NV
 
PHP Internals
PHP Internals
Nico Loubser
 
Php7
Php7
longvohoang
 
PHP Documentor
PHP Documentor
manugoel2003
 
Beginning PHP
Beginning PHP
Mohammed Safwat
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHP
Eric Johnson
 
The road to php 7.1
The road to php 7.1
Michelangelo van Dam
 
Php
Php
Vineet Vats
 
PHP on IBM i Tutorial
PHP on IBM i Tutorial
ZendCon
 
Introduction to PHP (SDPHP)
Introduction to PHP (SDPHP)
Eric Johnson
 
Tdd in php a brief example
Tdd in php a brief example
Jeremy Kendall
 
Wp Presentation
Wp Presentation
guestffa7b22
 
KEY PERFORMANCE INDICATOR FOR ICT-UNIT (new)Lect_04c_Detailed_Self_Reading.ppt
KEY PERFORMANCE INDICATOR FOR ICT-UNIT (new)Lect_04c_Detailed_Self_Reading.ppt
SenzotaSemakuwa
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
Michiel Rook
 
Bdd and Behat
Bdd and Behat
Adam Englander
 
[Mas 500] Intro to Programming
[Mas 500] Intro to Programming
rahulbot
 
PHP Doesn't Suck
PHP Doesn't Suck
John Hobbs
 
Enterprise PHP
Enterprise PHP
John Coggeshall
 
Phing: Building with PHP
Phing: Building with PHP
hozn
 
Php Best Practices
Php Best Practices
Ansar Ahmed
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...
Combell NV
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHP
Eric Johnson
 
PHP on IBM i Tutorial
PHP on IBM i Tutorial
ZendCon
 
Introduction to PHP (SDPHP)
Introduction to PHP (SDPHP)
Eric Johnson
 
Tdd in php a brief example
Tdd in php a brief example
Jeremy Kendall
 
KEY PERFORMANCE INDICATOR FOR ICT-UNIT (new)Lect_04c_Detailed_Self_Reading.ppt
KEY PERFORMANCE INDICATOR FOR ICT-UNIT (new)Lect_04c_Detailed_Self_Reading.ppt
SenzotaSemakuwa
 
Building and deploying PHP applications with Phing
Building and deploying PHP applications with Phing
Michiel Rook
 
[Mas 500] Intro to Programming
[Mas 500] Intro to Programming
rahulbot
 
PHP Doesn't Suck
PHP Doesn't Suck
John Hobbs
 
Phing: Building with PHP
Phing: Building with PHP
hozn
 
Php Best Practices
Php Best Practices
Ansar Ahmed
 
Ad

More from Barry O Sullivan (6)

Value objects
Value objects
Barry O Sullivan
 
Building a blog with an Onion Architecture
Building a blog with an Onion Architecture
Barry O Sullivan
 
Managing expectations
Managing expectations
Barry O Sullivan
 
DDD: lessons learned
DDD: lessons learned
Barry O Sullivan
 
Cleaning up your codebase with a clean architecture
Cleaning up your codebase with a clean architecture
Barry O Sullivan
 
Design patterns - The Good, the Bad, and the Anti-Pattern
Design patterns - The Good, the Bad, and the Anti-Pattern
Barry O Sullivan
 
Building a blog with an Onion Architecture
Building a blog with an Onion Architecture
Barry O Sullivan
 
Cleaning up your codebase with a clean architecture
Cleaning up your codebase with a clean architecture
Barry O Sullivan
 
Design patterns - The Good, the Bad, and the Anti-Pattern
Design patterns - The Good, the Bad, and the Anti-Pattern
Barry O Sullivan
 
Ad

Recently uploaded (20)

WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 

Php test fest

  • 1. PHP Test Fest Become a core PHP Developer
  • 2. Who am I? Lead Developer and Solutions Architect for DynamicReservations Writing PHP web apps professionally for 12 yrs DDD and EventSourcing fanatic (I will talk for hours) Recovered Architecture Astronaut Co-Organiser of PHPDublin @barryosull [email protected] http://dev.to/barryosull http://barryosullivan.me
  • 3. What is PHPTestFest? World wide event - Sep to Dec 2017 Write tests for the core of PHP Meeting Virtually and Physically PHPDublin is taking part! Day long event, help devs in Ireland write tests
  • 4. Why am I qualified to give this talk? Because I am a core contributor to PHP
  • 5. The file I committed
  • 6. “Hey, I could do that!”
  • 7. Writing tests in PHP So easy, even I could do it
  • 8. Testing in PHP PHP tests are written as PHPT files These are just PHP files with extra bits No C code required! They’re super easy to read and write Any PHP developer can do it
  • 9. Walk through an example --TEST -- Test description --FILE-- Test contents --EXPECT-- Expected output php-src/Zend/tests/nullable_types/string.phpt
  • 10. Types of test 1. Basic 2. Error 3. Bug
  • 11. Running your tests 1. Get your machine setup to run the tests a. Install docker on your machine b. Run the following command line curl -s https://raw.githubusercontent.com/herdphp/docker-phpqa/master/bin/installer.sh | bash 2. Fork the PHP-SRC from github 3. Clone to your local machine 4. Create your test file in the tests directory of the file/function you’re testing 5. Run your tests
  • 12. Debugging failing tests Running a failing test creates the following file extensions with same name as the test .out - The actual output that the PHP code from the --FILE-- section generated .exp - The output we expected from the --EXPECT-- section .diff - A diff file with the actual output compared to the expected output .log - Both actual and expected output in one file .php - The --FILE-- section as a PHP file .sh - A bash script that runs the PHP file in the same environment that run-tests ran it
  • 13. Example diff file php-src/Zend/tests/nullable_types/string.phpt php-src/Zend/tests/nullable_types/string.diff
  • 14. Submitting your test 1. Push your changes to your fork on github 2. Create a PR between your branch and master 3. Wait … 4. Celebrate when it’s accepted!
  • 15. Finding untested code The whole point of writing a test is to test untested code Go to http://gcov.php.net/ Look for something with low coverage Write a test for it!
  • 16. The test I wrote You will not believe how simple it is
  • 17. How I found curl_share_close needed to be tested
  • 18. How I found curl_share_close needed to be tested
  • 20. What it looks like now
  • 21. What it looks like now
  • 22. Tips for navigating the C code Not as hard as it looks - PHP_FUNCTION marks the definition of a function - Look for untested function code - Goto the php.net definition for that function - Looks for example code - Use that as a template for your test
  • 23. Writing a test from scratch Because a tutorial isn’t complete without a live demo! (one that will most likely break)
  • 24. We missed an error case Missed Error Case
  • 26. It’s that easy Today we showed 1. PHPT tests in PHP 2. How to find code to test 3. How to write the tests 4. How to submit tests 5. Wrote a test in ~5 minutes In other words:
  • 27. PHP Test Fest Day long event in on a Saturday in September (details TBD). The Dublin PHPTestFest team https://groups.google.com/a/phpcommunity.org/group/testfest/ #phptestfest https://phptestfest.org/ Michael Flanagan @micflan Bruno Siqueira @brunoric Ken Guest @kenguest Barry O Sullivan @barryosull Joao Paulo V Martins @jpvm Mark Railton @railto

Editor's Notes

  • #3: The “Why are you qualified to give this talk?” slide I work for DynamicReservations, a startup in the travel agent space. The problem I solve, day to day, is what is stopping growth? What is stopping us changing/growing our software, our team, our business (from a technical perspectice). I look at where we and where we want to go in a month/6months/2years, and figure out the steps we need to take so our architecture will help us, rather than hinder us.