Saturday, March 19, 2011

How to Avoid Deployment Chaos


I have seen several time when the changes on a custom software works perfect while we run on a development box but when it comes to the deployment stage, it does not behave the way it should be. The better solution to overcome such issues is that we should deploy the changes to the similar environment as of the live one. If the application is hosted on a web server and utilizes the database, we should have the same configuration and same database (ideally with the same data and files) on the QA box.
So, start with configuring the web application and copy the application files from the live box to the QA box. Then restore the live database on to the QA box. Verify if the current application is running fine the same way it is running on the live site.
Now, start deploying the database changes and verify if the changes are OK. After that, deploy the web application changes to the QA box and verify if the changes are deployed successfully or not.
Now, test every change on the deployed version and fix if there are some issues. Once every fix is in place, and the new changes are working fine, deploy that on UAT box. Now, let user play with the changes untill they are satisfied with the new release. Once they are happy, deploy that release straight onto the live box. That's it!
I hope this process will minimize the deployment chaos unless you bypass the QA and UAT phase.

Friday, March 11, 2011

Software Quality Assurance

Quality is a key factor of every successful software. But the question is, how can we measure the quality. There are multiple factors involved in the software QA. For instance, the software should be error-free, easy-to-use, adaptable, scalable and the list goes on. I would like to write about few things by which we can make our software error-free.
If the software is fully tested and following the standard test procedures, we can minimize the chances of errors in software. There are different Testing tools out there. Now in visual studio, you can create test projects, define the unit tests and execute them to verify if the functions are running without errors and returning expected results or not. The benefit of such unit tests saves a lot of time during regression testing.
Once the unit tests are passed, you can start integration tests. In fact, the software should be tested by the developers first. Then comes the QA phase where QA specialists can operate the software and perform different operational tests. The last step is UAT where the actual end-user performs the tests.
User Acceptance Test (UAT) is highly important before the software version goes into release state. Once, users are happy with the software, you can release the software into live state.
In case of websites or web applications, all the browsers should be considered while testing the site or thin-client applications. It's also important to do stress testing of the websites. Some sites or applications work fine when they are being tested by 10 or 20 users. But when the requests cross huge number of requests, the performance of website drops radically which may introduce the customers frustration.
In a nut-shell, QA should be considered as an important phase of software development and should not be overlooked at all.

Visual Studio 2010 SP1 is Available Now

Visual Studio 2010 SP1 is available now. You can download from the following URL:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5&displaylang=en