Whilst at the Alt.net conference it was pointed out that I have a different view of the role of a tester in a software development team to many other people. It seems a tester, to many people, is viewed as a person who follows manual test scripts and/or monitors automated systems, they are really part of the QA process not part of development.
Now to me this is just wrong. I started, a good while ago, in electronics testing and yes we did have people who sat with test gear and checked circuit boards gave the right voltages etc.; but we also had a test development team who built the test harnesses, scripts and tools. It is this second group in my option that equate to software testers – they are developers who write code to enable testing. They might do some manual testing but as much as possible this should be automated; we have computers available to us, so make them do the repetitive test work whenever possible.
This all takes some explaining when recruiting as many people do see testing as a bit second rate, just something to do until you get a ‘real’ development job. As you might guess I refute this idea, to me a test role (or should I call it test development role) is where you get to play with the cool tools. If you are doing main line of business development your life is all datasets, standard UI controls and web services. Most line of business work does not thrive on innovation so you are bound to be doing repetitive work.
But the test developers get to use reflection, writing development tool extensions, play in edge conditions and innovate using things like generic algorithms and open source tools to test the boundary of what is possible. They get to think outside the box.
Also there is a great chance to show what you can do in the community. I would say community test tools and frameworks are one the most active areas.
There is also the satisfaction of seeing the whole picture of a project, by the very nature of the build process and integration testing the test developer gets to play in every area.
Is this a view of testing I am alone in holding?
I have convinced you all to become a test developer?
I have focused on the the more developer end of SOA today. In the morning excellent sessions by Aaron Skonnard and Matt Milner on using WCF in BizTalk and best WF practices respectively, both provided an interesting set of gotta’s to look out for. Check their blogs if this is an area you work in.
In the afternoon I went to a session on the Microsoft Managed Service Engine (MSE), a set of tools to allow versioning of services using in effect a WCF based proxy broker. Not a solution for every site, but in an ESB SOA world it could really save the day if you want an Agile development model, where you have to change WDSL contracts as a system evolves. My only worry would be how far it can go with the XML transforms to keep old clients working with new contracts. You still need a depreciation model which might be an issue – but even if this is the case a potentially very useful tool I am sure I will be revisiting.
Next I went to a session on testing BizTalk, all based around the BizUnit tool. Now this looks interesting, though the definition language looks a bit nasty (all XML). I think putting the ‘unit’ term in the name is stretching a point if we define a unit test as being atomic. By its nature any BizTalk test tends towards an integration test – this said still a potentially vital tool for any BizTalk project. I think Darren Jefford maybe repeating the session at TechEd in Barcelona next week, if testing is your thing go and see it, or see the write up on his blog or book.
Finally I went the session on BizTalk Services which gave some more detail on stuff announced at the keynote. This has the potential to be very big, providing a unified inter domain message routing service, you can envisage a world where IM such as Windows Messenger routes via such a service, let alone more major B2B services. Calling it BizTalk Services is a typical confusing Microsoft naming as it is not as the name implies a hosted version of any parts of BizTalk server! Looks like CardSpace will also figure highly in this world for federated security, though this does not answer questions over passing private business data across international borders and third parties servers. Probably the most telling part of this session was in the Q&A, in that at present there is no define plan for a revenue or SLA model. This is still in it’s early CTP days – but is open to public and Microsoft seem keen for feedback so have a look.
A good day, but I think most of today’s sessions suffered from being put in too shorter slot, as I said yesterday I think it would be a good idea to have 15 minutes longer on each session and 15 minutes less on each break. From comments from a number of speakers it seems that their presentation were written for longer slots. I am not sure if this is due to other conferences having longer slots or the materials are normally presented in a classroom style normally.
Due to popular demand, well one person, I have uploaded my GUITester system I presented about at DDD3 to CodePlex. It can be found at http://www.codeplex.com/guitester.
If you are interested in moving the project forward let me know.
I have just heard my proposed session for the SQLBits conference has been accepted. I will be talking on Unit Testing in SQL Server my proposal was:
Test driven development is one of the current hot topics in software development, but how far can these principles be applied in the world of SQL? In this session I will look at the principles of TDD and other testing options using both freeware tools and Microsoft’s Visual Studio Datadude
So if you are interested I think there are still places available, register at the Microsoft Events site. Looks like it will be an interesting day
I am doing some work at present where I need to debug into webparts hosted in a MOSS 2007 server. Never an easy set of debugging to get right.
To try to ease the process I wrote a WinForm test application that just calls the webpart method with test parameters so I don’t have to go through all the pages I normally would to get to the feature I need, or manually have to attach the debugger to the Sharepoint web process every time.
I added this WinForm project to the same solution as my Sharepoint webpart, this should have allowed me to debug into the webpart project when the appropriate call was made from the WinForm, but it did not work.
Turned out the problem was the Network Service account did not have rights to the C:\Windows\temp and C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files directories. Once write access was granted the IDE was able to create the temporary classes to allow debugging.
I have just watched the Dot Net Rocks TV Show that Colin Mackay recommended during his DDD5 session on Mock Objects (and posted about in his blog).
I cannot agree more that it is great practical intro to using the Model/View/Presenter pattern, easy to follow and not getting bogged down as is so often the case with anything on patterns.
I must get round to watching more on DNR TV, I listen to to the DNR Radio Podcats regularly but subjects like this are far easier understand when you see the code. However between DNR Radio, DNR TV, Channel 9, MSDN TV etc. and wanting some form of home life I am not sure how I will find the time.
Technorati Tag ddd5
Went to a great session last night at the Yorkshire Extreme Programming Club, a intro to Test Driven Development using just Excel. The presentation was given by Clarke Ching, you can find out more about him and this presentation on his blog
I just had not occurred to me that Excel is a great way to show TDD principles to people who are not developers, such as project managers and business analysts. It is interesting how using TDD, refactoring and pair programming (well the whole room actually) anyone can see how to get a complex business requirement to elegant code in nice easy steps.
I think the key new fact for me was not to write too many test too soon, I know in the past I have tended to write many tests then tried to code. I can now see that doing a few tests, a bit of code, then repeat is a far better model, you don’t get daunted by the number of failing test, and you don’t write test for codes you realise you will never need.