What constitutes AGILITY where Behavior-Driven and Unit Testing are concerned
This morning I had a presentation on PHPSPec which the official website describes as follows:
A php toolset to drive emergent design by specification.
As defined within an adjective context the word "emergent" is defined as follow:
the process of coming into being
On the other hand PHPUnit is said to focus on quick code commits and asserting that no code regression occurs in other parts of the code.
With that being said the argument that came out of presentation is that PHPSpec is still a unit test framework which I did, in no way disputed that, but mine I think was more on what the tool really focuses on which is design.
The differences among these two tools is succinctly explained in this article on Laracasts.
Now comes Agile Methodology which is explained here and here. The latter article on Agile Methodology highlights mentions why this methodology is better (see below for an excerpt).
When you take the aggregate of agile principles, implement them in an agile framework, leverage collaboration tools, and adopt agile development practices, you usually get better-quality applications, faster-developed applications, and better technical practices (aka hygiene).
The view is that PHPSpec offers nothing that PHPUnit does not. However, if we look into the Engineering discipline and what it is about we can almost see the mention of tools (see below excerpt):
It encompasses concepts, principles, theories, techniques and tools that can be used for developing high-quality professional software.
Looking at all this within the perspective of Continuous Integration tools include, in that context, things like PHPSpec, PHPUnit, Behat, Codeception and so forth for achieving varying test strategies. Within an engineering context all these tools have roles to play. 57
However, it does seem that one cannot use the other, particularly PHPSPec, within an Agile environment. What I think lacks is a real-world context where one can really drive Test-Driven and Behavior-Driven Design using these two tools in particular.
I might be wrong in how I have been seeing things within the context of Agility coupled with Software Engineering strategies to deliver high quality code and so forth. I do not claim to be Mr Know-it-all mine is to try and become better and knowledgeable within my profession and thus improve on my skills.
Can somebody please help me understand Agile Methodology when mixed with Software Engineering within the context of PHP and how one can go about implementing a Software Product Development process taking advantage of readily available testing tools and strategies out there? Thank you in advance.
EDIT
This question has been moved into the Software Engineering space. I apologise for posting it here I did not know any better. Thanks 57