Archives for posts with tag: Software Quality Assurance

Quality of application plays an important role in Software Testing. As the use of applications has become a necessary part in our day to day life. So maintaining its quality has also become important. Now days, to maintain the quality of an application is must and it’s important to involve the Quality Assurance Teams in the beginning to reduce the efforts, save time and kill rework. Quality of application is not totally dependent on the time to test that application. However, it depends on many other factors such as Strategy being followed by the testers, knowledge of the people who are involved in testing, attention towards the basic details and thinking like the end users.

We can say that the quality of application could be proportional to time taken to test the application at some instances. Where the application is having wide range of functional and usage scope and containing the possibilities of large user stories (Example: In case of social networking application).

While testing an application, we do have to check everything. However, we can do it in a smart way. Below mentioned are the ways to improve the quality in limited time:-

1) Define Quality to Match Your Needs: Quality depends on the needs of the end users. So the needs to be tested may differ from application to application.
2) Broadcast Simple Quality Metrics: Use matrices such as Requirement Tractability Matrix (RTM), Bug triage etc to reduce the effort.
3) Test Smarter to Test Less: Focus on the most crucial and at risk prone areas. It will automatically reduce the time for testing.
4) Design Applications to Lesser Bug Risk: The design of the application should be simple and clean. So that the code is also simple which results in fewer bugs in the code. It will automatically reduce the bug count.
5) Optimize the Use of Testing Tools: Automate the processes which need to be checked repeatedly.

To get an application which is loved by the users, quality of the application should be maintained.

As there is always the requirement of adequate time to test any application as per it’s functionality. Though after completing the test cycle in the provided time slot, if the allocated time for testing is being increased and no changes are being made from development side, then two possibilities of further testing comes in play:

1) Either to test the application on the basis of previous created test cases
But every time execution of same test cases that would not help more in finding more bugs.

2) Or Explore the application as more as possible this is a better option to look for more defects in application but there comes a stable stage when most of the bugs have been fixed only few low minor bugs are left with the application and such stable stage may not give more possibility of new or major bugs. Hence, after this stable stage if the testing cycle is consistently being increased without making any further change in development side, it may not be that much fruitful in increasing product quality as the quality would have been achieved by the application when its stable conditions would have been achieved.

Quality of application depends upon various other factors like usability, performance, customer requirements, competitive market, number of bugs etc. Quality is directly proportional to ‘Testing’ of the application and not on the time taken to test the application.

Right QA process throughout STLC ensures the quality of the application but the time taken to follow the QA process is not counted towards quality of the application. Coordination between QA teams also plays an important role in quality assurance of the application.Coverage of all the application requirements effectively is a key aspect in delivering quality product. Thus, to conclude my view time is not necessarily an important factor in testing and is not directly proportional to quality of the product.

For Example: Let’s assume about a application which contains various complex functions and is integrated with different products, which will consume a lot of time for planning and documentation of test process flows. However with effective planning and proper documentation of requirement based test cases covering all aspects, time to test the application will be saved thus, delivering the quality product in effective way.

  How many of you think that Service Virtualization Changes the Game in Testing Complex Applications? Explain how?

Service Virtualization is the process of adding an intermediate or proxy service between the service provider and the service user, creating a way for application integration. This is done to emulate the behavior of a service in a virtual environment.
Service Virtualization has made SOA to be flexible, agile and practically beneficial.  Service Virtualization provides the opportunities to the developers and testers to create and implement a new feature in isolation without actually impacting the live user. It gives the QA team more time to focus on the functionality rather than be bothered about the way services are communicating. Service Virtualization has made rapid up scaling/ downscaling of an application in a short time frame possible.

These are few importance  reason :-

1. Service virtualization allows us to simulate application dependencies and begin testing earlier.
2. Virtual components consist of data, business rules, and same I/O configuration.
3. Virtual components have a much lighter footprint than the real application.
4. Reduce the cost of testing and eliminate testing delays.
5. Decrease the cost of standing up expensive and complex environment.
6. Remove delays associated to test environment availability.
7. Deliver quality products and services to market faster with less cost.

Service Virtualization changes the Game in Testing Complex Applications. Service Virtualization is used for simulating everything in our software development. Also it is used for simulating test environments. It’s actually a new IT practice and technology.

In “Service-Oriented Architectures” (SOA) which is a type of heterogeneous application, Service Virtualization is commonly used. The behavior of the components in the heterogeneous application need to be emulated which is done by Service Virtualization. In Service Virtualization we don’t need to access the actual live components and testing and development can easily be done when the behavior of the components dependent on each other is virtualized. So, the actual live components are not accessed.

Now talking about complex and interdependent environments there are a number of constraints that occur. The constraints can be like: the application we are testing is controlled by a third-party, the application might not be completed i.e. it’s still in the development stage, it might be difficult to configure in a test environment, also the case when testing is performed in limited capacity and many others.

What Service virtualization exactly does is, it creates a virtual component which actually simulates the behavior of a real components and this is how a “virtual asset” is deployed. These components which have been virtualized are important and are required to perform testing on the application, but the constraints do not allow direct access. Either it is difficult or sometimes it is impossible to access the application which is under development or testing process. Also, Service virtualization does not virtualizes the entire system, but it only virtualizes specific components which are critical and the testing of the application depends on these components.

Service virtualization, which does not access live components and being a fake system, is even better than the real thing. Service Virtualization is making a huge impact in Testing Complex Applications.

Service virtualization means to create and deploy ‘virtual assets’ which simulates the exact behavior of the real component that is required to execute the application under test. This is very cost effective and can be easily used by multiple testers at any given point of time, which accelerates the testing process.  I believe that Service Virtualization Changes the Game in Application testing as it can be easily automated which makes it more effective and reliable.

Application Test is widely experienced in application software testing, which includes:

  • GUI application testing for Windows and UNIX
  • CD-ROM testing
  • XML-based application testing
  • Java application testing
  • N-tier client-server application testing
  • WAP application testing

For more details, please visit: