Subscribe by Email


Tuesday, August 31, 2010

Features of Software Reliability Testing and what are reliability techniques.

Computer systems are an important part of our society. Reliability refers to the consistency of a measure. A test is considered reliable if we get the same result repeatedly. Software Reliability is the probability of failure-free software operation for a specified period of time in a specified environment. Software Reliability is also an important factor affecting system reliability.
A completely different approach is “reliability testing”, where the software is subjected to the same statistical distribution of inputs that is expected in operation.
Reliability testing will tend to uncover earlier those failures that are most likely in actual operation, thus directing efforts at fixing the most important faults.
The fault-finding effectiveness of reliability testing to deliver on its promise of better use of resources, it is necessary for the testing profile to be truly representative of operational use.
Reliability testing is attractive because it offers a basis for reliability assessment.
Reliability testing may be performed at several levels. Complex systems may be tested at component, circuit board, unit, assembly, subsystem and system levels.
A key aspect of reliability testing is to define "failure".

Software Reliability Techniques
- Trending reliability tracks the failure data produced by the software system to develop a reliability operational profile of the system over a specified time.
- Predictive reliability assigns probabilities to the operational profile of a software system.


Monday, August 30, 2010

Overview of Performance Testing and types of performance testing

Performance Testing finds out the speed and efficiency of the system, computer, product or device. Performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload. A software related performance problem can easily get identified through performance testing.
Performance testing demonstrate that the system meets performance criteria. It can compare two systems to find which performs better. It can also measure what parts of the system or workload causes the system to perform badly.

Types of Performance Testing


1.Load Testing : A load test is usually conducted to understand the behavior of the application under a specific expected load. Examples of load testing include:
- Downloading a series of large files from the Internet.
- Running multiple applications on a computer or server simultaneously.
- Assigning many jobs to a printer in a queue.

2.Stress Testing: It determines the load under which a system fails, and how it fails. There are various varieties of Stress Tests, including spike, stepped and gradual ramp-up tests.
3.Volume Testing: It test what happens if huge amounts of data are handled.
4.Soak Testing: The system is runm at high levels of load for prolonged periods of time.
5.Configuration Testing: The process of testing a system with each of the configurations of software and hardware that are supported.
7.Timing testing: It evaluates response times and time to perform an action.


Sunday, August 29, 2010

Overview of smoke testing : Characteristics and Advantages

Smoke testing is a quick-and-dirty test that the major functions of a piece of software work without bothering with finer details.
Smoke testing is used when the product is new. Smoke testing is run when the build is received to check if the build is stable. A smoke test is a series of test cases that are run prior to commencing with full-scale testing of an application. It is a non-exhaustive kind of testing.
A smoke test is used as an acceptance test prior to introducing a new build to the main testing process, i.e. before integration or regression.

Characteristics of Smoke Testing
- A smoke test is scripted, either using a written set of tests or an automated test.
- A Smoke test is designed to touch every part of the application in a cursory way.
- It is shallow and wide.
- Smoke testing is conducted to ensure whether the most crucial functions of a program are working, but not bothering with finer details.
- Smoke Testing is applicable when new components gets added and they are integrated with the existing code.
- It ensures that the build is not broken.
- They are also useful for verifying a build is ready to send to test.
- Smoke tests are not substitute for actual functional testing.

Advantages of Smoke Testing
- The integration problems reduces when smoke testing is done at various stages.
- A properly designed smoke test is capable of detecting problems at an early stage.
- If the major problem is detected at an early stage, it saves time and cost.


Saturday, August 28, 2010

Advantages and Disadvantages of Black Box Testing and what are its types.

In black box testing, the internals of the system are not taken into consideration. The testers do not have access to the source code. A tester who is doing black box testing generally interacts through a user interface with the system by giving the inputs and examining the outputs.
The advantages of black box testing includes that it is very efficient for large segments of code. It clearly separates user's perspective from developer's perspective. The code access not required. It is very easy to execute.
The disadvantages of black box testing includes limited code path coverage as limited number of inputs can be checked. It cannot control targeting code segments or paths which may be more error prone than others.

There are different kinds of testing that are associated with black box testing :
1. Smoke Testing
2. User Input Testing
3. User Acceptance testing
It includes :
- Alpha testing
- Beta testing
4. System Testing
- Functional testing
- User interface testing
- Usability testing
- Compatibility testing
- Model based testing
- Error exit testing
- User help testing
- Security testing
- Capacity testing
- Performance testing
- Sanity testing
- Regression testing
- Reliability testing
- Recovery testing
- Installation testing
- Maintenance testing
- Accessibility testing


Wednesday, August 25, 2010

Overview and Features of Installation Testing

Installation testing occurs outside the development environment. Installation testing can be compared as introducing a guest in your home. The new guest should be properly introduced to all the family members in order to feel him comfortable. Installation of new software is also quite like above example.
The customer will be happy if your installation is successful on the new system but if the installation fails then the program will not work on that system.
Testing application to make sure that it is working is a crucial step. You should check whether the application doing what it is suppose to do? Secondly, run three-four invocations of this application and check memory, CPU load, etc. Third, are other normal applications, hardware, etc working fine?

Installation testing should take care of the following points: -
- To check if while installing product checks for the dependent software / patches say Service pack3.
- The product should check for the version of the same product on the target machine.
- Installer should give a default installation path say “C:\programs\.”
- Installer should allow user to install at location other then the default installation path.
- Check if the product can be installed “Over the Network”.
- Installation should start automatically when the CD is inserted.
- Installer should give the remove / Repair options.
- When uninstalling, check that all the registry keys, files, Dll, shortcuts, active X components are removed from the system.
- Try to install the software without administrative privileges (login as guest).
- Try installing on different operating system.
- Try installing on system having non-compliant configuration such as less memory / RAM / HDD.


Monday, August 23, 2010

Overview and Features of Compatibility Testing

Compatibility testing is performed to ensure compatibility of an application or Web site with different browsers, operating systems, and hardware platforms. Compatibility testing is one of the several types of software testing performed on a system that is built based on certain criteria and which has to perform specific functionality in an already existing setup/environment.

- Compatibility testing can be performed manually or can be driven by an automated functional or regression test suite.
- The customer has different kinds of platforms, operating systems, browsers, databases, servers, clients, and hardware.
- Different versions, configurations, display resolutions, and Internet connect speeds all can impact the behavior of your product and introduce costly and embarrassing bugs.
Therefore, compatibility testing becomes necessary.
- Software is rigorously tested to ensure compatibility with all the operating systems, software applications and hardware you support.
- Compatibility testing will ensure that the code is stable in both environments and that any information/error messages or user interaction is handled and presented in the same way regardless of the OS.
- Compatibility testing can be easily accommodated in manual tests by having different members of the team work on varying screen resolutions to see what issues arise.
- Compatibility testing should take account of the varying connection speeds available to the user base.
- Compatibility testing may be undertaken as part of Performance Testing and so it is always worth checking out what the non-functional test team on a given project are planning to run in order to see if this is covered.
- Compatibility testing can be used to evaluate the performance of system/application/website on network with varying parameters such as bandwidth, variance in capacity and operating speed of underlying hardware etc.
- Compatibility testing can be used to evaluate the performance of system/application in connection with various systems/peripheral devices.
- Database compatibility testing is used to evaluate an application/system’s performance in connection to the database it will interact with.


Thursday, August 19, 2010

Automation in Software Testing

Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. There can be two types of testing manual and automated. The automation of software testing is becoming more and more popular but at the same time manual testing cannot be ignored. In this article we shall be mostly focusing on the merits and demerits of automated software testing. As chopping and adding of requirements is nothing new in today’s software business and the testing window is getting smaller there is a realization of a greater need for test automation.
The sad part about automation testing is the expectations that the managers have from these testing models. It’s a general belief that automation can help find more bugs which is not true. The efficiency of the test scripts is solely dependent on the efficiency on the test cases that make the test scripts. People expect that since they have introduced automated testing, they can do away with or at least reduce the manual testing which is a “BIG MISTAKE”. As already mentioned it is the test cases that define the efficiency of the automated test scripts and these test cases are written by these manual testers hence if you think of putting away with them the customers might also think of putting away your product.
Continuing regarding the unrealistic expectations that people have with automation testing, part of the blame for these expectations goes to the fact that when vendors give demos of these products they only tell you what you want to hear and not the reality about the difficulties faced when you try to use the tool for your application. Proper planning is essential when you go for the selection of any automated tool. It is very important that the people who are actually going to use the tool get a hands-on experience of the tool. This might sometimes be impractical because of the tight work schedules and time bound deadlines but if applied it’s a very useful technique for the selection.
Many test automation tools provide record and playback features that allow users to interactively record user actions and replay them back any number of times, comparing actual results to those expected. This approach can be applied to any application that has a graphical user interface. However if the developers continuously keep changing the GUI even when it’s not called for it indicates towards lack of process in place and hence the automation test will have to be configured again and again.
People have to be educated about the advantages and limitations of automation testing techniques. It is important that pitfalls of automation testing are properly evaluated to avoid inconvenience at a later stage. It should be taken care of that the selected scripts are compatible to your applications. There is no doubt that automation testing is an asset in the armory of the testing team but without proper knowledge and understanding it can even turn out to be a negative catalyst.


Facebook activity