Ivesia Solutions
Where brilliance meets technology

Archive for July 2011

How QA metrics can enhance quality of development?

Tracking metrics in QA has been a fundamental activity for quite some time now. But often, development teams do not fully look at how relevant these metrics are in relation to all aspects of the business. For example, the typical tracked metrics such as defect ratios, validity, test productivity, code coverage etc. are usually evaluated in terms of the functional aspects of the software, but few pay attention to how they matter to the business aspects of software.

There are also other metrics that can add much value to the business aspects of the software, which is very important when an overall quality view of the software is looked at. These can be broadly classified into:

  1. Needs of the beta users captured by business analysts, marketing and sales folks
  2. End-user requirements defined by the product management team

Why should I care about software usability?

By usability, we mean ‘user-centered approach and design’, which incorporates user concerns, needs and wants from the beginning of the design process. Users who are presented with feature-rich software that is difficult to use will most likely resist it and seek out alternatives. Hence it is essential to perform usability testing that would help you determine how easy it is for users to use the software the way they desire.

Some of the reasons why usability should be ensured by testing before releasing the software in the market:

  1. Reduction in support costs – usable software will reduce the number of support calls, which directly reduces support costs. Making the usage of software easy will mean less time spent on attending support calls for your support staff

Enterprise software challenges and significance of QA!

The top three enterprise software challenges are:

  1. Integration with 3rd party software and best-of-breed IT systems, enabling connected enterprises
  2. Support for disparate client types like PCs, handhelds, smart phones etc.
  3. High-volume transaction capabilities

How do we address these challenges using QA and ensure that the software functions well in real-world conditions?

Increased levels of integration in the software today means increased need for test capabilities. There will be a fair amount of integration testing and web services testing that ensure the software system is doing its intended job well. This will allow improved enterprise functionality by connecting all their stakeholders in the business process. There are tools that are available to test for integration in addition to manual testing.

How important is the vulnerability assessment of your web property?

Web is the critical part of any business today and more so when you do transactions using the web as a medium. There are three critical factors that become important such as availability, confidentiality and integrity of the data. It becomes mandatory for every organization to take a proactive web security approach to safeguard themselves from any attacks that jeopardize their business and erode brand value.

When it comes to web security, there are broadly three types and there are different ways by which they can be addressed.

  1. Network level security – at the data center level, this can be hardened through usage of industry-grade firewalls and authentication services. This is in addition to the hardening of the operating system used, kind of frameworks used for the web etc.

Performance Testing using Jmeter

jMeter is an open source software for performance testing. It is written in Java and works as a desktop application. The installation is pretty easy and straightforward. Download the package and unzip it – that’s it. To run the application on Windows, double click the “bin/jmeter.bat” file and to run it on MacOS, double click the “ApacheJmeter.jar” file. jMeter supports HTTP, HTTPS, FTP, SOAP, POP3, JDBC, thus enabling its use to test most of the applications. It has record and playback capability which enables easy test case creation

The following steps illustrates the usage of jMeter used for Performance Testing

  1. Add a thread group to the test plan
    jMeter used for Performance Testing
  2. Add HTTP Request Defaults to the Thread Group
  3. Configure the thread group with your application settings
    1. Hostname
    2. Port and
    3. protocol

Importance of Proper Bug Description in Defect Reporting

Successful testers avoid overemphasis on functional correctness, and focus on the ways in which people might obtain value from a program — or have that value threatened. Being a tester, reporting bugs clearly in order to alert a developer is just as important as verifying functional correctness. Testers should possess good documentation skills in addition to their testing capabilities. There are several instances that I know of where a major bug was improperly documented and reported to the developer.

My post offers a clear example that demonstrates the importance of documenting bugs properly, which is taken from one of our own testing instances. We needed to perform functional testing on a new feature that had been introduced for a media site. After completing functional testing, we were supposed to perform a regression testing on the media site since release was scheduled on the same day.

Passing Custom Values from SharePoint Web Part to a Silverlight Applications

During development of a Web Part, sometimes we have to use Custom Values to set properties to be used within the Web Part during execution. To pass the value of a custom property to a Silverlight Application – so that the value can be used in the logic implemented within Silverlight app is one of the scenarios involved while handling Custom Properties.

To achieve the passing of Custom Value from Web Part to Silverlight Application we have to follow the steps below

  1. Assign the value to be passed to CustomInitParameters property of Microsoft. SharePoint.WebPartPages.SilverlightWebPart. While assigning the we should concatenate a KEY (with which the value can be retrieved) as prefix to the value (for example <keystring>=<value> ).
  2. The above mentioned assignment can be done in the overridden method CreateChildControls() of Web Part class.

Creating Custom Properties in SharePoint Web Part

A web part by default has some properties like Title, Height, Width etc… The values for these properties can be either set through code or by using Edit Web Part option. The properties are normally displayed in a Property Pane on the right hand side, when Edit Web Part is clicked. Also these properties are grouped into sections like Appearance, Layout and Advanced.

There will be situations where we have to create a Custom Property whose value can be given by end user. The values of such Custom Properties could be used in some process during the execution of the Web Part.

This can be achieved by adding a new property (member variable) in the Web Part class. This new member variable will be declared as public and Get and Set options will be used to handle the value of this property.

6 simple ways to make your product development outsourcing successful

Often, insecurity sets in when outsourcing product development to a 3rd party development company. If done right, the partnership will be very rewarding and will help you release quality products to market faster. In this post, I have covered 6 simple ways by which product outsourcing can be made successful.

1. Leverage an in-house architect who has control in specifying the roadmap for your product development. Doing so will help you clear the requirements, build the specification, determine what technology to use, and scope the architecture so that it can be safely outsourced
2. Outsource development while keeping product definition, systems architecture and quality assurance in-house
3. Keep it agile as this will allow the outsourcing organization to continue managing the requirements and have the flexibility to change the requirements when needed. The critical success factor here will be whether the development team is able to deliver what it is committing for every iteration
4. Set expectations upfront and have timely communication. It’s also important to ensure availability to communicate. This will help the project run smoothly and make necessary adjustments
5. Define measurable project deliverables so that performance and quality can be monitored
6. Share your product roadmap, customer inputs and customer successes with the provider