Qafoo GmbH - passion for software quality

Help you and your team benefit from new perspectives on cutting-edge quality engineering techniques and tools through the Qafoo team weblog.

Qafoo Team Blog

  • Extended Definition Of Done

    by Kore Nordmann on Fri, 17 Feb 2017 09:30:03 +0100

    When software projects grow it is considered helpful if the software follows an established structure so that every developer finds their way easily. If the used structures and patterns change per developer or even every couple of months or years it will get really hard to maintain the software. Let's discuss the reason for this and possible fixes.

    Read more on Extended Definition Of Done…
  • Refactoring: Extracting Data Objects

    by Tobias Schlitt on Tue, 07 Feb 2017 09:35:57 +0100

    Extracting data objects from your code will make it easier to read and write, easier to test and more forward compatible. This post shows you the two most common cases where introducing a data object makes sense and how to do it.

    Read more on Refactoring: Extracting Data Objects…
  • Refactoring Should not Only be a Ticket

    by Tobias Schlitt on Tue, 24 Jan 2017 09:11:15 +0100

    In this blog post I would like to elaborate a bit further on why refactoring should never only be a dedicated task on your board. It should be an essential part of every task you work on…

    Read more on Refactoring Should not Only be a Ticket…
  • Getting Rid of static

    by Kore Nordmann on Tue, 10 Jan 2017 07:32:43 +0100

    When people start (unit-)testing their code one of the worst problems to tackle are static calls. How can we refactor static calls out of an existing application without breaking the code and while producing new features? How can we get rid of this big test impediment?

    Read more on Getting Rid of static…
  • Free eBook For Christmas

    by Kore Nordmann on Tue, 13 Dec 2016 08:23:17 +0100

    This year we do not only have Christmas presents for our customers for all of you. We created a book and an ebook out of the most important articles in our blog. Gave them a sensible order, so that you can read and enjoy them on even more devices.

    Read more on Free eBook For Christmas…
  • Using Traits With PHPUnit

    by Kore Nordmann on Tue, 15 Nov 2016 09:43:56 +0100

    As we already wrote that "Code Reuse By Inheritance" has lots of problems and we consider it a code smell. You should always aim to use Dependency Injection, most likely Constructor Injection. But with test cases in PHPUnit we cannot do this because we have no control about how and when our test cases are created. There are a similar problem in other frameworks, like we discussed in "Object Lifecycle Control". We also blogged about traits as a Code Smell, but let me show and explain why they might be fine to use in your test cases.

    Read more on Using Traits With PHPUnit…
  • Database Fixture Setup in PHPUnit

    by Tobias Schlitt on Tue, 15 Nov 2016 09:43:56 +0100

    We already discussed when and how to reset a database between tests. But on top of that you often need some basic or more complex data to run the tests against. We discuss different variants and their respective trade-offs in this post…

    Read more on Database Fixture Setup in PHPUnit…
  • Database Tests With PHPUnit

    by Tobias Schlitt on Tue, 04 Oct 2016 09:11:42 +0200

    Most of us do not use PHPUnit solely for Unit Tests but we also write Integration or Acceptance Tests with PHPUnit. One very common question then is how to interact with the database correctly in those tests. Let me show you the different options and their trade offs…

    Read more on Database Tests With PHPUnit…
  • Introduction To Page Objects

    by Manuel Pichler on Tue, 06 Sep 2016 09:19:41 +0200

    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.

    Read more on Introduction To Page Objects…
  • Scaling Constraints of Languages

    by Kore Nordmann on Tue, 02 Aug 2016 07:45:07 +0200

    Micro-Services or any set of small services are common again right now. While it can make a lot of sense to use a dedicated service for a well defined problem those services are sometimes used just to play with a different server software. While it is pretty obvious for most that selecting the right database is important the same is true for selecting the right language (virtual machine) for the job.There are different types of services or server applications where different types of virtual machines (executing the opcodes / bytecode of the compiled source code) make more or less sense. What are the criteria we should base such a decision on and which language should we choose when?

    Read more on Scaling Constraints of Languages…
1 - 2 - 3 - 4 - 5 ... - 10