eZ Community » Forums » Discussions » Quality software development...
expandshrink

Friday 01 March 2013 10:57:26 am - 9 replies

» Read full blog post

Introduction

This topic actually came up on the eZ Unconference in Köln this october. In one of the workshops people where asked what kind of quality assurance they used for their software development. The answer wasn't very uplifting, only a couple of the companies participating was actually using code reviews and the likes to improve their code quality. This, however, doesn't really surprise me.

Friday 01 March 2013 11:15:26 am

I think you made a fantastic work to improve the code quality in our project. I hope company will be able to use your experience to ensure the good code quality in other projects... at least these were I participate blunk.gif Emoticon

Friday 01 March 2013 11:27:27 am

"You had my curiosity. But now you have my attention."

Good read, I look forward to these more-technical posts. Oh, and make sure to say something good about ezcv in the process (or else!).

Friday 01 March 2013 12:08:27 pm

I am really looking forward to this series Arne!

Friday 01 March 2013 2:45:00 pm

I am also looking forward to this series!
That's a topic I've tried to work on also, but I think eZ 4.x wasn't really made for continuous integration (especially tests automation).
I think with eZ 5.x and the Symfony2 framework, it will be more suitable. I've already tried to mount eZ 5 with jenkins and it was quite promising.

Modified on Friday 01 March 2013 2:46:47 pm by Nicolas Gommenginger

Friday 01 March 2013 3:47:49 pm

Hi, Nicolas.

I've set up unit tests on 4.7, that's no stress. For functional tests I was planning to try Selenium, but I see that Symfony2 have built in support for this so now I'm considering upgrading to eZ 5.1 when it comes out.

Friday 01 March 2013 6:23:00 pm

Quote from Arne Bakkebo :

For functional tests I was planning to try Selenium, but I see that Symfony2 have built-in support for this so now I'm considering upgrading to eZ 5.1 when it comes out.

FYI: We are actually in the process of considering updating how we do functional tests. While we have used Selenium for many years now internally, we are about to evaluate BDD using Behat for 5.x functional testing. There are several reasons:

  • BDD allows you to get Customers / PM to verify test cases before implementation is started
  • BDD forces a domain language on all involved improving communication across PM / Customers / Dev/ Tester / Documenter
  • Behat can be setup with several backends, including full browser-based testing which covers the client side javascripts, something Symfony WebTestCase can not.

Downside seems be initial cost of setting up the domain language as it needs to be parsed and sent to code that executes it.

Modified on Friday 01 March 2013 6:25:31 pm by André R

Saturday 02 March 2013 3:06:21 am

We're currently evaluating our options for doing more automated testing. So far we're building integration environments with Jenkins and are in the process of evaluating the best approach to functional tests.

The problem with developing using a CMS is that you have a lot of code that doesn't have any tests, so there's lots of room to break things in code that's not covered. And there are a mountain of features you'd have to write tests for in order to get good coverage. 

Our plan so far is to just write tests for CMS functions that we find we tend to break or feel are at risk based on our code, but there would need to be tests released with the CMS to get full coverage (eZ5 is shipping with some unit tests now). 

The other issue is getting the correct data in place. With functional tests you're testing the whole stack, and for a repeatable test that means needing to reset the database to a known state when the test begins. This can just be handled with a dump file, but that takes a lot of time with a large database. 

I look forward to reading more and hearing how others are overcoming some of these challenges.

Saturday 02 March 2013 11:33:55 am

Thanks for the info, André. I will look into that. When will the decission be made? For 5.1 or 5.2?

I've had the same considerations, Joe. For unit tests, I try to make them general enough to just use a basic eZ Publish database without a lot of project specific data. For functional tests, that won't work. So I'm considering stripping the projects database using Batchtool extension or similar for testing on.

Sunday 03 March 2013 10:28:57 pm

Quote from Arne Bakkebo :

Thanks for the info, André. I will look into that. When will the decission be made? For 5.1 or 5.2?

If we start using it, it will be done during 5.2 development.

expandshrink

You must be logged in to post messages in this topic!

36 542 Users on board!

Forums menu

Proudly Developed with from