Manuel Pichler

Software Quality Enthusiast

From the mind of an IT professional

Thoughts, projects, other random ideas and sometimes just braindump.

Teaser image: Loadtest 101 - Starting with Taurus

Loadtest 101 - Starting with Taurus

Since discovering Taurus, my view of load testing has completely changed! This OS tool manages to reduce the often tedious setup of test environments and scenarios to a minimum. And it does that without limiting the flexibility of tools such as JMeter or Gatling. It standardizes the config of those tools in simple YAML files, without destroying the specific strengths of each tool. Whether it's the high performance of Gatling or the flexibility of JMeter, Taurus combines the best of both worlds.

Teaser image: Checklist For A Reliable Load-Test

Checklist For A Reliable Load-Test

Setting up a load-test that produces results you can rely on is not that simple. But without realistic test-results you cannot be sure that your application handles sudden increases of traffic, rapid spikes or even the initial go-live. And you cannot estimate at which number of users you should scale up your hardware. Both details are very important to keep the application running at all times and guarantee that no revenue or developer sleep is lost because of outages.

Teaser image: Why Apache Benchmark Is Not Enough

Why Apache Benchmark Is Not Enough

You are working for months on a new web application or e-commerce system and usually a few weeks or just days before the launch a complete enough feature set is running on a production-like system so that you can run a realistic load-test. Hopefully providing you with accurate picture of the performance of your future system. What should you do, and why is Apache Benchmark usually not sufficient?

Teaser image: Testing the Untestable

Testing the Untestable

A long time ago I wrote a blog post about Testing file uploads with PHP where I have used a CGI PHP binary and the PHP Testing Framework (short PHPT), which is still used to test PHP itself and PHP extensions. Since the whole topic appears to be still up-to-date, I would like to show a different approach how to test a fileupload in PHP in this post. This time we will use PHP's namespaces instead of a special PHP version to test code that utilizes internal functions like is_uploaded_file() or move_uploaded_file().

Teaser image: Introduction To Page Objects

Introduction To Page Objects

A while ago we wrote about writing acceptance tests (end-to-end tests) with Mink and PHPUnit. While this is a great set of tools for various applications such tests tend be susceptible to changes in the frontend. And the way they break is often hard to debug, too. Today I will introduce you to Page Objects which can solve some of these problems. The basic idea behind a Page Object is that you get an object oriented representation of your website. The Page Objects maps the HTML (or JSON) to an object oriented structure you can interact with and assert on. This is more initial work then than writing tests with PHPUnit and Mink directly, but it can be worth the effort.

Teaser image: Software Metrics 101 - Weighted Method Count (WMC)

Software Metrics 101 - Weighted Method Count (WMC)

The Weighted Method Count or Weighted Method per Class metric was orginally defined in A Metrics Suite for Object Oriented Design by Chidamber & Kemerer. The WMC metric is defined as the sum of complexities of all methods declared in a class. This metric is a good indicator how much effort will be necessary to maintain and develop a particular class. There are three slightly different definitions of the WMC, where each definition uses another metric as a measure of the methods' complexity. Possible complexity values are * McCabe's Cyclomatic Complexity …

Teaser image: Software Metrics 101 - Number of Public Methods (NPM)

Software Metrics 101 - Number of Public Methods (NPM)

The Number of Public Methods or NPM metric was orginally described in the fundamental book Object-Oriented Software Metrics of Lorenz and Kidd. The NPM metric The NPM metric belongs to the group of simple count software metrics. This means that this value simply reflects the number of public methods declared in a class. A high NPM value can be an indicator for two different bad smells in the design of a software. First it can be a signal for a class that is to complex and has too many responsibilities in the analyzed software system…

Teaser image: Code Coverage with Behat

Code Coverage with Behat

There is generally no point in having code coverage for Behat test cases because of their nature - The purpose of an acceptance test is to assert a certain behavior of an application, not to technically test a piece of code. Therefore, there is no point in checking for uncovered code pieces in order to write a Behat test for it.That said, there is still a scenario where you want to peek at code coverage of Behat tests - When creating them as wide-coverage tests before starting to refactor legacy code.

Teaser image: Software Metrics 101 - Class Size (CSZ)

Software Metrics 101 - Class Size (CSZ)

The Class Size or CSZ metric is a another measure for the complexity and size of a class. In many publications and books this metric is frequently referenced with the abbreviation CS. The definition and detailed description of this metric can be found in The Optimal Class Size for Object-Oriented Software paper by Khaled, Benlarbi, Nishith & Shesh.

Portfolio

Below you will find an excerpt of various activities I’ve been involved in over the past 25 years as a professional in the software industry — ranging from talks and publications to open-source projects I’ve developed, and companies I have founded or co-founded.

  • All
  • Companies
  • Projects
  • Talks
  • Publications

Qafoo GmbH

Founder, Trainer, Consultant, Best Practice Engineer - Always Quality in Mind

PDepend

Project lead and founder of the first static code analysis tool, to get most out of your PHP software.

Vor BDD und TDD war PDD (Pain Driven Development)

Talk with Sebastian Bergmann about "Pain Driven Development" on International PHP Conference 2013

Crafting Quality Software - Gems from the Qafoo Blog

Crafting Quality Software

This book is a curated collection of blog posts from the Qafoo Team Blog. Over the time we created many blog posts focussing on the topics of Clean Code, Object Oriented Design, Testing, Refactoring and Software Architecture. To make it easier for you to consume those blog posts we re-structured them and collected them in this book. Many of the topics in this book are covered in our trainings and you can use this book as a guide after those trainings to read more about topics you particularly care about or topics not covered in your training – since we tailor our trainings to the concrete requirements each customer has.

Tideways GmbH

Co-Founder, Developer, Mentor

Frontastic GmbH

Co-Founder, Developer, Senior Site Reliability Engineer

Softwarequalität in PHP-Projekten

In this book, Sebastian Bergmann and Stefan Priebsch, together with their co-authors, share their extensive expertise and experience in quality assurance for PHP projects. Numerous case studies illustrate the planning, execution, and automation of tests for different software layers, as well as the assessment of software quality using software metrics.

PHP Mess Detector

Lead developer and founder of the PHP Mess Detector aka PHPMD.

Real-World Solutions for Developing High-Quality PHP Frameworks and Applications

Learn to develop high-quality applications and frameworks in PHP Packed with in-depth information and step-by-step guidance, this book escorts you through the process of creating, maintaining and extending sustainable software of high quality with PHP. World-renowned PHP experts present real-world case studies for developing high-quality applications and frameworks in PHP that can easily be adapted to changing business requirements. . They offer different approaches to solving typical development and quality assurance problems that every developer needs to know and master.

phpUnderControl

The first ever broader used continuous integration solutions for PHP projects.

Behind Bepado

Fundamental concepts and ideas behind the decentral B2B market play Bepado and it's software architecture./p>

Statische Codeanalyse wirklich effektiv nutzen

Object-Oriented Metrics in Practice - Using Software Metrics to Charactarize, Evaluate, and Improve the Design of Object-Oriented Systems.

Contact

If I have piqued your interest or you would simply like to get in touch with me, just send me a message and I will get back to you.

Address

Musterstadt 12345

Call Me

+1 5589 55488 55

Email Me

info@example.com

Loading
Your message has been sent. Thank you!