Team Foundation Server 2010 Test Manager Lab 4 - Test Runs

by Dmitry Kirsanov 31. October 2011 21:01

So far we’ve seen a lot of unusual and amazing things in Team Foundation Server 2010, more specifically – in Visual Studio 2010 Test Professional. However, one of the most ground-breaking features of TFS and Visual Studio Test Professional is it’s ability to run automated tests.

By automation we understand performing complex tasks and verifying results of users’ interaction with your application. As you can see in this example.

Enjoy the 4th lab of Team Foundation Server 2010’s Test Manager, and now it’s about Test Runs.

Team Foundation Server 2010 Test Manager Lab 4 - Test Runs

As always, make sure you watch it in Full Screen HD!

Previous lab is available here.

Team Foundation Server 2010 Test Manager–Test Cases and Shared Steps

by Dmitry Kirsanov 31. October 2011 15:33

This screen cast of interactive virtual lab describes the feature of Test Cases and Shared Steps in Team Foundation Server 2010’s Test Manager.

Since there is still no MOC for TFS 2010 (although it has a number of 50430) the only resources you have for now are lectures of TFS gurus and virtual labs. Fortunately, usually that’s enough to pay attention to recorded lab session in order to understand the subject.

So, as always, enjoy the view and don’t forget to switch to Full Screen HD in order to see anything.

Team Foundation Server 2010 Test Manager Test Cases and Shared Steps

Team Foundation Server Quality Assurance Lab 2 - Test Plans

by Dmitry Kirsanov 31. October 2011 14:34

When I learn new material, sometimes it’s enough to me to see system in action to understand the principles behind it’s logic. Especially when it is self-descriptive lab like this one. Team Foundation Server 2010 is very complex but extremely valuable engine to energize your software development division, and one of it’s key features is automated testing.

With TFS automated testing you can automatically deploy virtual machines with required configuration, deploy the latest build of your software and test it for various scenarios. When bug is found, TFS (automatically) creates bug record in it’s centralized system, attaches screencast (video) of the incident and developer can work on solving that bug immediately.

Once you start working with TFS in your .NET software development, you can’t imagine life without it.

This lab is about creating and working with Test Plans, and while  there is no astrophysical concepts in it, the topic is usually hard to understand at first. The reason for that is quite simple – when you need to create schema for actual work, it’s harder to learn then performing the “real” action, as the necessity to do so doesn’t look as obvious, as, say, compiling your application.

Well, enough talking, enjoy the view! (And don’t forget to switch to HD!)

To see part 3 of this lab, regarding Test Cases and Shared Steps, click here.
Previous Lab (Test Manager Overview) is available there.

CAPTCHA sample project

by Dmitry Kirsanov 28. October 2011 15:41

Good Captcha in ASP.NET will make your website free from spamI’ve created a small sample project for Mondor's Captcha (see the full project page here). As some people are asking at the forum about how to implement it in ASP.NET project, I decided to make a quick sample for both development environment and production IIS.

MS CAPTCHA is a free component for ASP.NET which implements “Completely Automated Public Turing test to tell Computers and Humans Apart” – an image which “only people” could read. In case of Mondor’s CAPTCHA, it also contains unique feature called “Arithmetic”, which displays simple formula, so even if bot will be able to read “2 + 2”, it will type “2+2” as an answer, while there should be 4.


ExecuteAs utility

by Dmitry Kirsanov 27. October 2011 17:50

Well, yet another useful command line utility. This one is for system administrators in need to run some command on behalf of another user.

Why bother, if there is a command in Windows, called runas? Well, mainly because it doesn’t accept the password as command line parameter, and also because I wanted to add more features to such simple process.

This is the help text you get when running this program without parameters:

Syntax: executeas.exe /u:UserName /p:Password /x:Priority /d:Domain /a:Affinity /quiet /hide /noprofile /wait /t:60 [program name]
Where t is a timeout in seconds to wait for program completion.
The only required parameter is program name. You can place command line arguments after the program name.

As you can understand, UserName is the user name of target user without the domain name,
Password is his password,
Priority is the priority at which you want this program to be executed (1 – idle, 2 – below normal, 3 – normal, 4 – above normal, 5 – high),
Domain is the domain part of the user name, if needed,
Affinity is how many CPU cores you’d like to use,
Quiet won’t produce any output,
Hide will hide the target program, so it will not be displayed to user,
NoProfile means that profile of target user won’t be loaded,
Wait will wait until the target program will be completed – useful when running from batch file.

So, here it is and have fun!

As  always, .net framework is required for this program to run. This time it’s .net 3.5, which is installed by default on Windows 7 and is available as feature on Windows Server 2008. (3.99 kb)


by Dmitry Kirsanov 20. October 2011 00:49

Imagine, that you’ve just made a revolutionary change to the project of your life. You’ve spent hours on it and pretty much sure you won’t repeat that the same well if you would lose todays changes.

So you back up your files using file synchronization utility which synchronizes your files with online storage. Live Mesh, for example.

And first thing you see when synchronization of your now-so-precious work folder starts – “Receiving files …”.



What can be done in 12 hours by an average .NET developer?

by Dmitry Kirsanov 19. October 2011 16:49

Have you ever heard about Garage48? That’s an event, which was born in Estonia last year and since then widely adopted by other countries. It’s scenario is such – companies give tasks – “ideas” that have to be coded to production quality in 48 hours. Students are coming to the event and working 48 hours non stop, for food and beverages, and contest winner get’s iPhone.

So, you have an idea and iPhone – now 5 undergrads can make it live, just give them enough hamburgers and Red Bull.

When I heard about it (in the context that one of my colleagues was eager to participate) I wondered what these students would gain from the event? I mean – in my 32 I wouldn’t participate in such event, have no sleep in 48 hours and produce free code for someone. I still didn’t get convincing answer, but from the point of view of the author of “idea”, this is the windfall.

But I’ve got itch to see what am I capable to do in these 12 hours. Having totally nothing but “idea”.

So, I’ve replaced Red Bull with German and Belgian beer, wrote my idea in 3 sentences and sat for 12 hours with my notebook.

I decided to create “URL shortening service”, which had to be functionally better than anything else in the market. Better from my point of view, of course. As I thought about it, and that time was also included in these 12 hours, I wanted this service to have:

  1. WCF backend. So I would be able to create utilities that would add new links automatically, with no user interaction. Also that would allow other tools to use the service and provide additional services.
  2. I would have QRCode for each link. And it would be created automatically.
  3. I could protect link by CAPTCHA
  4. Or by password.
  5. Or require visitor to declare his age, in case link is to age-restricted web resource.
  6. And make links expiring – either by date or redirections count.
  7. Also, I would like users to know where they are redirecting to. But not always. So there would be 4 different ways of redirection. 2 for client and 2 for server side redirection.
  8. I don’t want to have malicious links on that service, so they should be automatically scanned. URLs leading to malicious web resources should be removed.
  9. Overall good web design. Because tinyurl sucks.
  10. Some functions should be only available to registered members, but anonymous could use it as well. However, trusted people would have it unlimited at all.
  11. Engine should be available to 3rd parties, so they could install it and use with their domain name.

That’s pretty much for 12 hours, when there is no base, right? That’s what we say to our customers.

Anyway, in 12 hours of work I had a website which had a name, web design, logo, backend, database, frontend and additional infrastructure up and running in test environment. Debugging it took another 2 hours, and deployment – another 30 minutes.

You can take a look at that service here – – just make sure you understand it’s beta and some things may glitch. I reserve the right for a bug, yes. Anyway, if you’d like to have this engine working for your company needs – sure you can have it.


P.S. Now imagine having 5 developers working 48 hours - that’s 20 times more than I had!

Legacy of Steve Jobs

by Dmitry Kirsanov 15. October 2011 13:30

When you look at the news line these days – be it LinkedIn or whatever social network or technology news source you are reading, you inevitably see the new breed of articles – “something we should learn from Steve”.

It appears like different authors are using the fact of death of successful and notorious man to push their own delirium into the masses. A small example – “Steve said, that creativity is connecting things together, so that means you should make connections in social networks”. Incredibly stupid conclusion, isn’t it? And in comments to that so called article are comments like “Enlightening!” or “I’m impressed!” or “Even after his death he still teaches us!”.

The crowd is as stupid, as it’s always been.

However, among the “enlightened” by this powerful flow of bullshit, are CEOs and “entrepreneurs”, “visionaries” and “out of the box thinkers”. I guess they are also among those who skyrocketed the sales of Jobs’ biographies at Amazon.



Innovation and Creativity as they are

by Dmitry Kirsanov 9. October 2011 14:22

As a foreword

“It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.” (C. Darwin)


There is a number of characteristics in Innovation which makes this thing rare and hard to swallow for some. One of the keys to understanding innovation is to understand the difference between machine and human being.

Innovation is a process. It’s not your asset or something you have granted. It’s not your new iPhone or any other innovative gadget you may have. Instead, Innovation was the process of designing of that iPhone and making it unique, never seen before thing and array of processes.

Innovation is not solid, it’s rather composite. There are few other things that composes the innovation, and Creativity is one of them.

Another feature of Innovation is it’s antisocial nature. Yes, forget the team spirit, corporate values and read Atlas Shrugged instead. Remember the great recession in USA in 30s? It was mainly because human labor was replaced by mechanisms. Millions of people lost their jobs and that was inevitable. And that was good. And that is the face of Innovation, it’s inevitable consequence, which doesn’t allow you to passively float on the waves of some basic knowledge you’ve acquired long time ago. You need to evolve in order to survive the Innovation.

That’s what we see today. Cloud computing renders IT departments useless. Not completely, because you still need your best specialists, but you could get rid of others. Rapid Application Development tools and techniques helped software development companies to get rid of lazy “coders”. But while IT is suffering the cutting down, some other professions are about to extinct.

Remember conductors in city buses? They were replaced by ticket machines. E-ticket these days. Even those people who were printing and selling the tickets were replaced. Remember regulators on roads? They were replaced by automated lights. Remember cashiers? They are being replaced by automatic cashiers in large supermarkets. Remember… Just think about it.

Who’s next? Lawyers will be substituted by computers before Artificial Intelligence is invented. Bus drivers. Baby sitters. Cooks. Especially cooks. Translators, politicians, journalists – they all are standing in the row, waiting for next Steve Jobs to raise the plank. Waiting to be replaced by computer programs.

So, that was about antisocial behavior of Innovation. However, it doesn’t end here. Not only Innovation hits the society, but also it’s not a teamwork on the first place. Usually it’s something done by a bright individual or a small group of individuals, rather than companies. Yes, innovations are often bought by companies afterwards, but they are born in the garage or in a small café rather than in the cubicle.

So, the Innovation is a process. Quite simple one – first , you have a problem. And you get idea to solve it. And you design the solution. And you or someone else implements it. Simple as it sounds, yet the solution may be of enormous complexity or simple as “all genius things”.

And now we’ve come to the composite nature of Innovation.

There are two most important things you must have to succeed as innovator. Creativity and Knowledge. They are not the only ones, still, you can’t innovate without them. While Knowledge can be acquired through the learning process, (which already renders most of people as non-innovative) and through the personal experience, the Creativity has much more complex nature.

Yet, it may be acquired as well.

Creativity, by definition, is the ability to approach problems in new and unique ways, outside of established ideas or rules.
Have you heard the “outside the box” thing? Some people are calling it “out of the box”, which, in turn, is completely different thing. Well, both has nothing to do with creativity. But be prepared to hear about it during corporate trainings led by incompetent salesmen.

Do something differently, not like anyone else before you. And that would be creative, not necessarily effective. Do it in a more effective way, by applying your skills (which are your knowledge and experience combined) and you’ve just made your innovation.

So, the key to innovation is creativity, right? And you may have doubts on whether you are creative enough. While it’s not necessary that you are, chances are good that your potential is deeper than you think.

The nature of creativity is not solid. While I doubt there is such thing as “natural born creativity”, most likely it’s about early acquired one. Some time during the first year or years of life. So if you are naturally creative and you’ve always been such, that’s achievement of your parents or environment. However, most parents don’t care about raising creative children and it’s usually up to that children to acquire creative behavior as early as possible.

Regarding the natural creativity, I think it may be connected to changes in early life, like relocation, lots of events and impressions. Even listening to wide selection of music counts. But still, I’m in the process of figuring it out with my own child.

So while natural creativity is the strongest among them and while it’s fun to build and exploit, you can’t apply it to yourself now. So we’ll speak more about creativity enhancement techniques for adults.

First, let’s talk about thing called Learned Helplessness. Have you ever heard – “I can’t do it, because I am X, not Y!”. Like – “I can’t do graphical interface, I am a programmer!”, or “I can’t drive a car!”? Sure you did, or even said that. That’s what we call the symptoms of learned helplessness (LH, for short).

Usually that’s when you have feeling that your brain is filled up with knowledge and you simply don’t need to learn anything new. And the reason for not learning, the fake one, is that you can not do that. The truth is – your brain is not filled up. Not even 50%. And no, you can. Unless we are talking about light athletics and you are 50 years old.

Unfortunately, the Learned Helplessness can only be defeated by strong will. If you haven’t done that yet, watch the movie “Yes man” with Jim Carrey. It’s about a man who started to say “Yes” to even weirdest pleas and opportunities. What I mean is – you have to say “yes” when you are about to say “No”. And vice versa – say “No” when you are about to go the “avoid that stuff” way.

Learned Helplessness is the biggest enemy of Creativity, remember that.

The second enemy of Creativity is called the “Comfort Zone”. Have you seen rednecks who lay in front of TV set with bottles of beer and chips? They reside in their comfort zone, nothing is troubling their mind and their creativity is plain zero as well.

However, there is an exception to “Comfort Zone” and that’s what I am calling the “Creative Zone”. There might be situations / environment features / whatever else that puts you to the state of brainstorming. Phase when you generate bright ideas and can work twice more effectively than before.  Personally for me that’s evening in a pub with 0.33l of dark Belgian beer and tablet or smartphone. And indeed, that’s part of my comfort zone as well.

There is a good illustration to the comfort zone problem. Take a look at the “Social Network” movie. The moment when Zuckerberg is sitting with beer and writing his first social website, while others are having party. At that moment, we see that everyone is enjoying their comfort zone excerpt for one guy who is about to become a millionaire soon, even without intention.

How this applies to you? Take a look at your behaviors. Whether you prefer to enjoy social events like darts and ping pong game with colleagues, or you would rather sit and learn new technologies and work on a project which would give you, personally, some uncertain benefit? In first case, you are in the comfort zone – you are spending your free time on pleasure rather than building your skills.

Another sign of comfort zone is when you look around and see a lot of folks who are professionally better than you. Even worse if they are younger. And I am not speaking about being CEO in early 20s, but about being better specialist than you are at the same of younger age. While there is some portion of luck for others to get to positions better than yours, there is nothing but training and experience that makes them a better professional.

So, how to put yourself out of the Comfort Zone? That’s the question. Disconnect from cable network or disconnect all but science channels. Don’t read general news more than once per week (I am not speaking about professional news). Don’t ride with your friends more than X times per Y. Cut your pleasures and devote that time to less pleasant things, like reading books and watching videos. Whatever that will objectively increase your professional knowledge and experience. It’s not for the rest of your life, it’s for now and a year ahead. Don’t forget to look back when that year will pass.

Next thing, which can be either friend or foe, is your Environment.

You should really prepare it for innovation. What’s your cellphone? Is it even smart phone? Oh, you don’t need a “smarter” one, do you? Just go and buy one. And make sure you learn each and every function it has.

Are you still working on Windows XP because it’s “faster” than whatever the current OS is? If you are working in IT, make sure you have the latest stuff. And make sure you understand the difference – read about it, watch training videos. And suck the knowledge out of it.

Look around you and try to realize when and where you could concentrate better. People are different, so I won’t advise on that, but personally, when I need to brainstorm some new project, I am taking my netbook or tablet and go to the night café in the center of old town and in that dim environment there is no one and nothing that could interrupt me from taking 100% of my brain power and putting into the way I need.

And yes, going out of home is also going out of the comfort zone for some. Unless you have your personal cabinet in your house / apartment.

Mindset is the next milestone you have to reach, and it’s the easiest target.

An open mindset is a must have for generating really valuable ideas. You should be very objective at anything and everything. Open to suggestions. Don’t think that something sucks because it sucks. For example, that Nokia phones are worse than HTC and always will be. While it might be true that currently their models lack some features that HTC don’t, tomorrow they may create something better. So don’t refuse their next model just because it’s Nokia. Be objective.

Never say “never again”, don’t reject opinion of younger people or of your foes, if you have any. Stay open to the world and the changes in life. They are not always good, but you should judge on the fact, throw away the prejudice. Seriously. Now.

Besides, the skeptical mindset is a must have. But what skeptical mindset is?
It’s not about doubtful of anything new. Instead – it’s the ability to find holes in otherwise perfect ideas and solutions. While the opposite to fanboy is a hater, the skeptic is somewhere in between. You have to find out the weak points and possible ways to circumvent them, before investing more time and money into something.

I’ve seen many software titles which took many hours of work from their creators, but were totally useless, because they don’t solve any problem. Perhaps because there was no problem on the first place.

Intuition is what should be counted on when you are generating the ideas. While I am not going into talks about unconscious part of the mind, just make sure you don’t discard what your intuition is saying – always listen to it and at least write down your thoughts before they are forgotten.

Now, as I’ve said before, the Innovation is a process of solving the problem. And the problem is solved by someone. You, perhaps. And you have some luggage of experience and your own point of view from which you view that problem. That’s when we encounter the term of Perspective.

A Perspective is the way in which a person approaches an issue, and his background as it applies to the ideas he generates. So that means – try to look at the problem from different angles. Not just from the perspective of solution developer. Also from the point of view of potential user of your solution and perhaps from those who would loose something because of your idea. Usually you’ll have to deal with more than you think about at first.

Trying to analyze things from various perspectives helps gaining a skill of creativity.

Just as I said before, Innovation is a unity of Knowledge and Creativity. However, Knowledge by itself is a topic which shouldn’t be covered here, perhaps some other time. It’s more naturally understandable, though, than Creativity.

One less book in a pile

by Dmitry Kirsanov 2. October 2011 18:35

How many books you have in your current pile? Or do you have a pile of books waiting to be read? I do.

Just now finished the “Human.4” by Mike Lancaster. For the first time I bought a brand new fiction book at Amazon, where by “brand new” I mean something that wasn’t read and recommended by previous generations. You know, it’s not a classical book of Stephen King or some sort of old school Sci-Fi or even something from previous centuries. This one was first published in 2011 and is mentioning things like YouTube, Red Bull, Facebook etc. Overall, it’s between the “13th floor” and “Langolliers” with influence of Matrix. However, it’s rather short and I manager to complete it in two days, since I’ve only began yesterday. Maybe that’s fine for a Sci-Fi novel.

What’s left in the pile? It’s Atlas Shrugged by Ayn Rand, 2 editions – one in Russian and one in English. A girl with dragon tattoo in both English and Russian and two other books by Stig Larsson in English. Also there are Chronicles of Amber by Zelazni and blue beard by Kurt Vonnegut, both in Russian but they don’t count, as I’ve read them already years ago.

Oh, yes, also there is “Como el rio que flue” by Coelho, which is in Spanish, but just like any other book of Coelho it’s not entertaining at all and I read it time after time just because it’s well written.

The point is – don’t restrict yourself in artificial borders, expand!