Saturday 29 December 2012

9. Testing framework


Here, Testing Framework means various types of testing methodologies enforce for whatever the code written & each and every piece of code should be testable.

Testing is partially NFR (Non- Functional Requirements).

What is the NFR?
NFR is also called “ilities”. Because of the use of suffix “ility” with many non-functional requirements. For example, some of the NFR are Documentation, Availability, Maintainability, Interoperability, Recoverability, Supportability and testability…etc.

Why NFR is so important and how they are identified?
  1. In our SDLC, we are always focusing and working on functional requirements (FR). In most of the projects, Project Owners mainly focus on FR (Functional Requirements) only. It’s important to give same level of preference for NFR after development finish. NFR are identifies during whole project life cycle and it’s very important to spend some time to put on the place. NFR helps lot of our development time and money for future projects.
  2. Identifies  and Prioritize NFR  items like “Must”, ‘High Want” “Want” during project life cycle and implement NFR items depends upon the time availability.
  3. NFR also includes Lesson learned such as what is necessary to document and put the methodologies needed for the future projects.
  4. NFR items are not visible to business owners and they are not interested on this. However, project development team responsible to notify to business owner about the benefits of NFR.
Software testing types:

Please refer the below diagram.
Software Testing

Do we need to focus on all the above testings?
Yes but no. It is depends upon your project & project type.

I am not going to describes all the testing here. I do describe the necessary testing performed by development team.

Most of the testings are performed by test team. However, Development team should have testing frameworks for testing below tests.

Unit Testing: 
Developers are writing and running unit tests while they write their code to produce the high quality code. As we know, it takes times to write unit test. However we should be writing unit testing for each and every method we write.

There is a unit testing project comes with recent Microsoft Visual Studio release got many features. Please watch the below video for more information.

We need to use different kinds of testing frameworks depend upon our projects. For example, Rhino Mock-up framework is good for if your project need to authenticate with user name and password to test. 

Please refer the below URL
for more information about testing frameworks.

And also refer the below URL’s for more information about unit testing.

Integration Testing:
Each individual’s software modules are combined and tested a group. It does occur after unit testing. 
Please refer the below URL’s for more about integration testing.

Performance Testing:
It’s very important & necessary test to perform for each and every application. There are different types of performance testing measures the application performance.

Please note that all the Microsoft Visual Studio editions does not support for performance testing. Please refer the below URL for more information and buy relevant product which is suitable for your project to perform the performance test.

It’s good to have performance testing performed for each layer. Let’s say, if your project has UI, BAL, web Service, Data layers then please try to develop the performance test for individual layer to test the performance test.

Please refer the below URL’s

Performance test objectives include the following:
Response time or latency
Throughput
Resource utilization

Please refer the below URL’s and you will get to know more about the objectives and measurements for the performance testing.
Please refer the http://msdn.microsoft.com/en-us/library/bb924357.aspx to know more about the types of performance testing.

Performance vs. Scalability:
Performance refers to the capability of a system to provide a certain response time.
Scalability refers to the characteristic of a system to increase performance by adding additional resources such as processor, memory, and web server in web farms.
Please visit the following URL’s
https://developers.google.com/speed/pagespeed/ to expert in performance testing.

Compatibility Testing:
Now days, each and every application which we develop should be compatible for mobile devices as most of the traffic coming from mobile devices. To verify our application how works on mobile devices, we can use browsers extensions (such as Firefox user agent switcher) which are available on the market. However, some situations/scenarios these testing tools does not simulate 100% correctly. For testing on real mobile devices on remotely please use
And other useful links

Finally, I would suggest that to prepare testing check list for your team and use if for your project development.

I hope you enjoy reading this post.

No comments:

Post a Comment