Monday, September 30, 2013

Importance of Robustness Testing for Reliability of software Product


Fault tolerance or robustness is the ability of the software product to maintain a specified level of performance in the presence of software defects or infringement of a specified interface.

Generally the software testing experts focus on the following important aspects of the software product:

# Containment of defects to specified parts of the system

# Reactions to failures of a given severity

# Self-monitoring of the operations and self-identification of defects

# Ability to allow specified work to continue after a failure of specified severity for specified parts of the system under specified conditions

# Loss of specified operations (functionality requirement or set of functionality requirements) in case of failure of specified severities in specified periods of time for specified parts of the system

# Loss of specified data in case of failure of specified severities in specified periods of time for specified parts of the system

The failures to consider in Software testing aimed to check the technical robustness are those forced on the product from external sources. Failures due to internal defects should be handled in the functional testing.

Failures from external sources could, for example, be caused by lack of external storage capacity, external data storage not found, external services not available, or lack of memory.

Software testing aimed to robustness aspect can, like the other technical tests, start at the requirements level, with testers reviewing robustness requirements.

Even more important is review of design. Software testing engineers can make the design more or less defensive, that is more or less robust to external circumstances. A simple, though often overlooked way to make systems more robust is to check the return code of all system routine calls and take action in the code when system call is unsuccessful.

Lack of memory may be due to memory leaks. Software testing engineers generally adopt the technique of dynamic analysis to detect the memory leaks if any, for example, during component testing. Software testing aimed to test the robustness in system testing and/or acceptance testing may require the use of simulators or other tools to expose the product to external problems otherwise difficult to produce.

Thursday, September 26, 2013

Introduction to Software Testing Tools & Test Automations

The purpose of using software testing tools for testing is to get as many as possible of the noncreative, repetitive, and boring parts of the test activities automated. The purpose is also to exploit the possibility of software testing tools for storing and arranging large amounts of data.

There are a huge number of software testing tools on the market, and it is growing fast. Every software testing tool automates some testing activities to a certain degree. No single tool automates everything completely. But there are software testing tools for all testing activities, even though most testers think about test execution tools when test automation is mentioned.


Test automation is not an easy task. A company can be more or less ready for test automation. It requires a certain level of maturity to be able to use tools efficiently. Tools do not provide more maturity; they should be implemented to support the existing maturity.

It also requires a certain amount of courage to engage in test automation, both courage to choose and to refuse. It is important to select tools with great care so that they don’t end up just as “shelfware’ lying as a decoration piece.

It may be difficult to choose, but that is peanuts compared to getting a Software Testing tool introduced in an organization. And keeping it running efficiently is perhaps even more difficult.

In a professional organization it is important to treat the investment in software testing tools as the serious decision it is. Tools are usually expensive, and even if they are not expensive to buy, they are expensive to implement and maintain in the organization.

The crux of Software Testing can be understood by V-model

It is a general conception that the software testing is something, which needs to be done after the software code has been written. It is quite obvious that we can not test something, which does not exist. Thus we can assume that testing is simply execution of set of pre planned tests. For that we essentially need software that is actually working. However fact remains that testing activities include much more than simple execution of the tests. Let us see as what it is.

The V-model of software development illustrates when software testing activities should take place. The V-model shows that each software development activity has a corresponding testing activity. The tests at each level exercise the corresponding development activity. The same principles apply no matter what software life cycle model is used. For example, Rapid Application Development (RAD) is a series of small Vs.

The simplified V-model in following figure shows four levels of software development and software testing activity. Different organizations may have different names for each stage; it is important that each stage on the left has a partner on the right, whatever each is called.


The most important factor for successful application of the V-model is the issue of when the test cases are designed. The test design activity always finds defects in whatever the tests are designed against. For example, designing acceptance test cases will find defects in the requirements, designing system test cases will find defects in the functional specification, designing integration test cases will find defects in the design, and designing unit test cases will find defects in the code. If test design is left until the last possible moment, these defects will only be found immediately before those tests would be run by the software testing engineers, when it is more expensive to fix them.

Test design does not have to wait until just before tests are run; it can be done at any time after the information which those tests are based on becomes available. Then the effect of finding defects is actually beneficial rather than destructive, because the defects can be corrected before they are propagated.

Of course, the tests cannot be run by the testing engineers until the software has been written, but they can be written early. The tests are actually run in the reverse order to their writing, e.g. unit tests are written last but are run first by the Software Testing engineers.

Tuesday, September 10, 2013

Single Destination for Those Aspirants Who Wants To Become a Master of Software Testing

Software testing is also very important in order to design the software that can meet the full fledged purpose and the requirement of software. It reduces the possibility of the problems that can arise as a fatal or an uncontrollable issue in the later stages. Thus, it is important for a tester to be updated with the latest technology so that software developed with updated technology can be tested.





If you are also associated with the testing field of various kinds of software or if you want to groom your career in software testing then SOFTWARE TESTING GENIUS can help you. You can follow us to know the latest ins and outs in the field of software testing technology. The sole motive of our services is to help the people in polishing their skills of software testing and getting quality assurance.

Our website provides a platform to the aspirants so that they can explore their knowledge on Software Testing under one roof. This way they do not have to hunt for their desired information or knowledge by digging various websites. The information and lessons given on our website are absolutely free for the users.

We have also provided the support materials and really valuable tips that can aid in getting success in ISTQB Certification for foundation as well as Advanced level. You can also find various updated unique questions that are really helpful in preparing for various certification exams. Log on to our website, to enhance your knowledge of software testing.