This document introduces PHPUnit for unit testing and continuous integration (CI). It discusses what unit testing is, why it's important, and how to set up and write tests with PHPUnit. It also covers best practices for testing and how CI can automate running tests and integrating code changes. CI helps developers work together and catch bugs early by constantly running tests on new code submissions.
We all know that PHPunit testing framework has been added into Drupal 8. More than that SimpleTest in Drupal 8 is deprecated now. PHP unit testing also helps you to check you business logic So let's learn and discuss about, how to write the PHPUnit test for our requirement.
Microservices created quite a buzz in software development. Those are finally being adopted, and a lot of project suffer from that... microservices bring a lot of infrastructure and distributed programming complexity not all organisations can cope with. Question is – is it possible to gradually migrate to microservices architecture without Big Bang/Rewrite From Scratch approach? I would say it is possible, and is a much better idea compared to installing Kubernetes on AWS on day one. This talk is based on practical experience of architecting business applications to scale out and grow up to become micro services one day.
We all know that PHPunit testing framework has been added into Drupal 8. More than that SimpleTest in Drupal 8 is deprecated now. PHP unit testing also helps you to check you business logic So let's learn and discuss about, how to write the PHPUnit test for our requirement.
Microservices created quite a buzz in software development. Those are finally being adopted, and a lot of project suffer from that... microservices bring a lot of infrastructure and distributed programming complexity not all organisations can cope with. Question is – is it possible to gradually migrate to microservices architecture without Big Bang/Rewrite From Scratch approach? I would say it is possible, and is a much better idea compared to installing Kubernetes on AWS on day one. This talk is based on practical experience of architecting business applications to scale out and grow up to become micro services one day.
Users expect a robust, yet flexible base infrastructure layer for NFV; but systems integration is hard. OPNFV is here to help: OPNFV provides system integration for NFV as a community-led effort. Based on a discussion of the build and composition philosophy of OPNFV, the presentation approaches the benefits of OPNFV for users from different angles: OPNFV as a reference building block to install, test and deploy NFV; OPNFV as reference system integration to get your own use-cases integrated into; OPNFV as a foundation to evolve and further develop NFV – privately or as part of the community.
How to stuff a 900 pound gorilla into a smartphoneJoel Maher
Migrating the 100,000+ unittests for Firefox to run on mobile phones to test the new mobile product from Mozilla.
Presented at OSCON09, July 23, 2:35pm.
Olli-Pekka Puolitaival - Model-Based Testing for Integration Testing in Real ...TEST Huddle
EuroSTAR Software Testing Conference 2012 presentation on Model-Based Testing for Integration Testing in Real Production by Olli-Pekka Puolitaival. See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
Olli-Pekka Puolitaival - Model-Based Tested for Integration Tested in Real Pr...TEST Huddle
EuroSTAR Software Testing Conference 2012 presentation on Model-Based Tested for Integration Tested in Real Production by Olli-Pekka Puolitaival.
See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
Creating automated functional tests of your web application with Selenium IDE is quick and easy, but leads to massive duplication in your test scripts. See why this duplication is a problem, and how to address it using a simple design pattern called the Page Object.
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJAX London
2011-11-01 | 04:20 PM - 05:10 PM
This session explores Apache TomEE, pronounced “Tommy”, an all-Apache Web Profile stack built on Tomcat, which adds all the Java EE Web Profile features, while taking nothing away. The session will show you how to get started with TomEE, how to use it with a sample application, and how you can test your application with TomEE using tools like Arquillian.
Test it! Unit, mocking and in-container Meet Arquillian!Ivan Ivanov
A gentle introduction into testing in Java. Begin with testing a single unit, continue with mocking dependency and end up with a full incontainer test capabilities.
Agile Software Testing the Agilogy WayJordi Pradel
At Agilogy we have a curated way of testing software. In these slides we share basic Principles, Patterns and Strategies to test software in Hexagonal Architectures.
Defying the typical test pyramid, we focus our testing strategy on testing the whole domain. To do so, we avoid the abuse of mocks and stubs and, instead, we use hand-crafted test fakes that behave like their production counterparts. We make sure they actually do so by testing both the production driven adapters and their fakes with the very same test suite.
Users expect a robust, yet flexible base infrastructure layer for NFV; but systems integration is hard. OPNFV is here to help: OPNFV provides system integration for NFV as a community-led effort. Based on a discussion of the build and composition philosophy of OPNFV, the presentation approaches the benefits of OPNFV for users from different angles: OPNFV as a reference building block to install, test and deploy NFV; OPNFV as reference system integration to get your own use-cases integrated into; OPNFV as a foundation to evolve and further develop NFV – privately or as part of the community.
How to stuff a 900 pound gorilla into a smartphoneJoel Maher
Migrating the 100,000+ unittests for Firefox to run on mobile phones to test the new mobile product from Mozilla.
Presented at OSCON09, July 23, 2:35pm.
Olli-Pekka Puolitaival - Model-Based Testing for Integration Testing in Real ...TEST Huddle
EuroSTAR Software Testing Conference 2012 presentation on Model-Based Testing for Integration Testing in Real Production by Olli-Pekka Puolitaival. See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
Olli-Pekka Puolitaival - Model-Based Tested for Integration Tested in Real Pr...TEST Huddle
EuroSTAR Software Testing Conference 2012 presentation on Model-Based Tested for Integration Tested in Real Production by Olli-Pekka Puolitaival.
See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
Creating automated functional tests of your web application with Selenium IDE is quick and easy, but leads to massive duplication in your test scripts. See why this duplication is a problem, and how to address it using a simple design pattern called the Page Object.
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJAX London
2011-11-01 | 04:20 PM - 05:10 PM
This session explores Apache TomEE, pronounced “Tommy”, an all-Apache Web Profile stack built on Tomcat, which adds all the Java EE Web Profile features, while taking nothing away. The session will show you how to get started with TomEE, how to use it with a sample application, and how you can test your application with TomEE using tools like Arquillian.
Test it! Unit, mocking and in-container Meet Arquillian!Ivan Ivanov
A gentle introduction into testing in Java. Begin with testing a single unit, continue with mocking dependency and end up with a full incontainer test capabilities.
Agile Software Testing the Agilogy WayJordi Pradel
At Agilogy we have a curated way of testing software. In these slides we share basic Principles, Patterns and Strategies to test software in Hexagonal Architectures.
Defying the typical test pyramid, we focus our testing strategy on testing the whole domain. To do so, we avoid the abuse of mocks and stubs and, instead, we use hand-crafted test fakes that behave like their production counterparts. We make sure they actually do so by testing both the production driven adapters and their fakes with the very same test suite.
JavaScript has a well deserved reputation of be hard to write and debug. Put it on a mobile device and the problems increase exponentially. Mobile browsers lack all of the niceties that developers rely on to do testing and debugging including the most fundamental tool, the debugger. But it is possible to write quality JavaScript on a mobile device without relying on blind luck. In this talk I will show all of the tools and tricks that I learned in my 12 month development of the new KBB.com mobile site.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Knowledge engineering: from people to machines and back
PHPUnit & Continuous Integration: An Introduction
1. PHPUnit &
Continuous Integration
An Introduction
Friday, 16 October 2009
2. PHPUnit & CI
• What is Unit Testing? • Best Practices
• Why Unit Test? • Automated Test Runs
• How to test • Continuous Integration
• Using PHPUnit • More features of CI
• Organising Tests
• Advanced PHPUnit
Friday, 16 October 2009
3. What is Unit Testing?
• In computer programming, Unit Testing is a
software verification and validation method
in which a programmer tests if individual
units of source code are fit for use.
(Wikipedia)
• A “unit” is the smallest testable part of an
application: a function or class method.
Friday, 16 October 2009
4. Why not Unit Test?
• Writing tests is boring!
• Writing tests makes development take
longer
• My code is perfect and has no bugs
Friday, 16 October 2009
5. Why Unit Test?
• You can’t prove that a program is bug free
• Reduces the cost of changes; proves
software still works as expected after
changes have been made.
• Takes pressure off
Friday, 16 October 2009
6. How To Test
• Tests should be repeatable, audited and
isolated.
• Repeatable: easy to run multiple times
• Audited: results should be collated and
displayed
• Isolated: one test should not affect other
tests and should only test one thing
Friday, 16 October 2009
7. Why PHPUnit?
• Makes it easy to run • Integrates with
tests in a repeatable, Continuous Integration
audited and isolated tools
fashion.
• Advanced features like:
• Complete port of JUnit Mock Objects, Database
3.8 testing, class skeleton
generation, Selenium
• Support integrated into
Eclipse, NetBeans & • Alternative: SimpleTest
other IDEs
Friday, 16 October 2009
9. A Basic Example
• Test case classes have a “Test” suffix
• Test methods are prefixed “test”
Friday, 16 October 2009
10. Running Tests
• Tests can be run via:
• Command Line
• IDE
• Continuous
Integration
Friday, 16 October 2009
11. Fixtures
• Each test may require common operations
to set up the environment
• Environment should be returned to
previous state after the test
• Duplicating code is bad
• Solution: setUp( ) and tearDown( )
Friday, 16 October 2009
12. Fixture Example
• Database connection
and test object
instantiation are now
done in setUp( )
• Database connection is
closed in tearDown( )
• Connection reuse could
pollute tests!
Friday, 16 October 2009
13. Test Organisation
• PHPUnit allows
your to organise
your tests into
“Suites”
• Suites can include
other suites
• Allows you to test
everything in one
go
Friday, 16 October 2009
15. Mock Objects & Stubs
• Mock objects are used as stand ins for
genuine objects
• Stubs are replacements for real functions
that accept the same input but return a
known quantity
• Tests should not be dependant on code not
being tested, so we use mock objects and
stubs to replace them
Friday, 16 October 2009
16. Database Testing
• Put database into a known state before test
is run
• Using assertDataSetsEqual( ), the contents
of a database tested
• Data sets can be filtered to remove
columns such as date, time
• Testing multiple DBs is hard, but possible
Friday, 16 October 2009
17. Skeleton Generation
• PHPUnit is able to generate a class
skeleton based on a test case
• PHPUnit is also able to do the reverse,
generate a test case skeleton based on a
class
Friday, 16 October 2009
18. Selenium
• Selenium performs end user testing of web
applications on any platform in any browser
• Allows you to test that a web application is
working as expected
• Technically this is not unit testing, but
acceptance testing
Friday, 16 October 2009
19. Code Coverage
• Requires Xdebug so PHPUnit can inspect
what code is running
• Tells you how much of your code is being
tested
• Helps to identify areas in need of testing or
new tests that need of testing
Friday, 16 October 2009
20. Best Practices
• Write testable code
• No globals
• Don’t create objects in constructors
• Don’t test private methods. Unit testing
tests the interface, not the implementation.
• Exploit dependencies between tests with
@depends
Friday, 16 October 2009
21. Automating Unit Tests
• Create a cron job to run tests
• Subversion pre-commit hook
• Subversion post-commit hook
Friday, 16 October 2009
22. Continuous Integration
• Can automate the running of unit tests
• More developers = more divergence
• The longer you go between integrating
work, the harder it is
• Continuous Integration constantly
integrates work
• Problems are exposed quickly
Friday, 16 October 2009
23. What Else Can CI Do?
• Generate Documentation
• Check Code Against Coding Standards
• Generate Metrics
• Code Coverage
• Project Mess Detection
Friday, 16 October 2009
24. Continuous Integration
for PHP
• Atlassian Bamboo
• CruiseControl
• phpUnderControl
Friday, 16 October 2009
25. phpUnderControl
• Available through PEAR on phpunit channel
• Uses Subversion, PHPUnit, Xdebug,
PHP_CodeSniffer, PHPDocumentor
• build.xml defines what phpUnderControl
will do in the build process
Friday, 16 October 2009
26. Summary
• Unit Testing: What it is and why we do it
• PHPUnit: How to Unit Test
• Continuous Integration: How it helps us
create high quality code
Friday, 16 October 2009
27. More Information
• http://www.phpunit.de
• http://phpundercontrol.org/
• Just ask!
Friday, 16 October 2009