Exploratory testing is a usual approach to software testing and can be defined as a test designing, test execution and simultaneously learning process.
It was named by Cem Kaner in 1983. "He stated exploratory testing as a kind of software testing that is emphasized and focused up on the responsibility and the personal freedom of the software tester to optimize the quality and effectiveness of his /her work continually by taking in to consideration mutually supportive activities like test designing, test related learning, test result interpretation and test execution".
These activities run in parallel to each other.
- Exploratory testing basically heeds to exploiting the creativity of the tester or the programmer.
- During the testing of the software, the tester comes across various new things to learn together with experiencing them.
- The tester or the developer with his /her creativity can generate new and better test cases to run.
- Exploratory can be thought of as a black box testing methodology or technique instead of thinking of it as an approach to testing that can be used for any type of testing methodology and also at any phase of development of the software system or application.
According to some misconceptions, the testing technique or the object is considered to be the key here but, it is not so.
- In actual, the key is the cognitive engagement of the software tester and his /her responsibility of managing time.
- The effectiveness of the exploratory testing depends basically on how it is performed.
- Exploratory testing should always be performed by skilled testers or developers.
- Exploratory testing can also be thought of as an intellectual activity.
- Exploratory testing is all about discovering how the software system or application actually works and how it handles both the easy and difficult cases.
The effectiveness or the quality of the testing is largely dependent on the skills for developing test cases by the tester.
- It also depends on his/ her ability to find defects in the software code.
- We can say that the quality of the testing is directly proportional to the knowledge of the tester about the software product and different test methods.
- The more he/ she know about the software system under test and testing methodologies, the better will be the exploratory testing.
- While carrying out the exploratory testing, the expectations should be kept open.
- Only some results can be expected or predicted but not all.
- The tester is responsible for configuring, operating, observing and evaluating the product itself and its behavior, investigating the result and reporting information. - If we see practically the actual testing is a combination of both scripted testing and exploratory testing but, depending on the context of the testing the tendency is towards either one.
- Exploratory testing is more about thinking how the testing should be done more than a testing technique.
The documentation part of the exploratory testing includes:
- Documentation of all the test cases used.
- Documentation of the bugs.
Exploratory testers use tools like:
- Screen capture
- Video tools
These tools are used to generate situations of interest or as a record of the exploratory session. For exploratory testing less before hand testing is needed. Bugs are discovered quickly and the approach tends to be more intellectual. Deductive reasoning based on the results of the previous tests can also be used in the exploratory testing. This leads to increased bug detection when used properly. The main disadvantage is that the tests can’t be reviewed before hand.
Saturday, January 7, 2012
What are different aspects of exploratory testing?
Posted by
Sunflower
at
1/07/2012 10:02:00 AM
0
comments
Labels: Approach, Black box testing, Design, Developer, Effective, Exploration, Exploratory testing, Programmer, Quality, Software testing, Test cases, Test Execution, Tests
|
| Subscribe by Email |
|
Friday, January 6, 2012
What are different mutation testing methods?
Mutation testing is another methodology of software testing. It can be defined as the software testing methodology which involves modification of source code or programs or the byte code of the program in a way that is particularly small but significant.
Mutation is known by two other names:
- program mutation
- mutation analysis.
SOME IMPORTANT FACTS
- The mutated code is tested using various cases and the test suite that doesn’t detects and rejects the code that has been mutated is usually considered to be defective in nature.
- The required mutations are carried out on the basis of some well defined operators known as mutation operators.
- These mutation operators are well known to mimic typical programming bugs or errors and some times they also force the creation of tests which are significantly valuable tests.
- Best example of such test is given by the test which derives each expression to the value zero.
- The purpose of the mutation testing is basically to allow the tester or software developer to develop effective test cases so that the weaknesses or the vulnerabilities of the software system or application can be located or detected in the test data that is being used as the input for the program or in the sections of the program code.
- These sections are chosen as such that they are rarely used and accessed during the execution of the software system or the application.
- The mutation testing is carried out to ensure or verify that the implemented software program or application is correct or not.
Still the creation of the mutation testing poses some doubts.
- The doubt is whether the mutation tests are correct or not?
- Whether they sufficiently cover all the specifications and the requirements that have lead to the origination of the implementation of the test cases?
Mutation testing represents a technological problem of “who will guard the guards?”
- In the 19s, the mutation testing was pioneered to detect or locate the weaknesses and the potential vulnerabilities of the test suites.
- A theory was put forward regarding the behavior of the mutation testing.
- It stated that if a mutation was done without affecting the behavior of the program or output, then it meant that either the code that had been mutated did not execute or the employed testing suite wasn’t able to detect the injected mutation.
- In order to make one mutation work, one has to introduce many mutations all over the program.
- This in turn leads to the compilation of a large number of copies of the program code.
- The increase in the use of unit testing frame works and object oriented programming languages has led to the increase in the creation new mutation testing tools for other programming languages.
METHODS FOR MUTATION TESTING
- Mutation testing is carried out by selecting few mutation operators and then applying them to the source code using one at a time for each correct piece of the program code.
- The resultant of application of a mutation operator is known as mutant.
- If the mutant is detected during the testing, then the mutant is said to be killed.
- Strong mutation testing or strong mutation coverage ensures that the test suite is effective in detecting the mutants.
- Weak mutation coverage or weak mutation testing can be related to code coverage methods.
- It takes less number of calculations to ensure the effectiveness of the weak mutation testing.
- In some cases equivalent mutants are also used.
- In those cases it becomes impossible for a test suite to kill such a mutant.
- Equivalent mutation proves to be the greatest obstacle in the path of practical usage of the mutants.
- Equivalent mutants require more efforts for testing.
- A variety of mutation operators have been discovered by the researchers.
Posted by
Sunflower
at
1/06/2012 01:38:00 PM
0
comments
Labels: Application, Code, Defects, Errors, Methods, Modify, Mutant, Mutated, Mutation testing, Operators, program, Purpose, Software testing, Source, Test cases, Tests, Users
|
| Subscribe by Email |
|
What is specification based testing? What are its advantages and disadvantages?
Specification testing as its name suggests can be defined as the type of testing in which the software product’s performance and conformance is checked with every statement mentioned in all the available documents for reference.
- This specification based testing is carried out by specification based tester.
- The documents used for specification based checking might be user manuals, formal specifications check lists, third party documents or even advertisements.
- Specification based testing ought not to cover automatic extraction of ideas of testing from the mentioned specifications and it also not covers the use of the automated program comprehension tools.
- While carrying out the specification based testing an assumption is made in which we assume that a natural language specification exists that is to be analyzed by a human being.
The following tasks are carried out by specification tester:
- To identify the sets of reference 3 documents.
- To develop the ideas for testing those are based on contradictions and ambiguities in the documents that are being used for reference.
- To develop the list of claims and items that are to be tested based on certain assertions to be tested and are listed in the reference documents. Later the ideas are associated with each other.
- To create the matrices that are traceable and that lists the assertions and the items to be tested and test cases associated with those assertions and ideas.
One of the most important unifying features of specification based testing is that the testing starts with the reference documents and the testing strategies and cases are based on what is there in the reference documents.
The following examples will make the use of specification based testing clear:
- Undo tool in paint: does not performs as specified.
- Zoom in tool in open office presentation: does not perform as specified.
- File and folder naming function in windows XP does not perform as specified.
- New profile creation tool in fire fox.
- Function for deleing form information tool.
- Help documentations are incorrect.
- Keyboard short cuts for closing windows.
- Conflict between the dream weaver and inbox manual.
The specification based testing has got both advantages and disadvantages.
- Specification based testing though being necessary is not sufficient to guard or detect certain risks.
- One of the advantages of specification based testing is that it reduces the number of test cases.
- It proves very efficient in find most of the comer cases.
- Though the bugs discovered are very small, the cannot be discovered by testing in the real system since the command sequences that have lead to these bugs would have never been caused in the real system.
- Specification based testing states the specifications as the executable properties.
- Errors can either be in the program or in the specifications.
- Specification based testing can be defined as a process that tests a software system or application based on what its behavior should be based on its specifications.
- In specification based testing, test cases are developed based on the specifications of the software system or application.
- Tests can be developed even before the actual creation of the program and its implementation.
- Without actually writing the program, a set of input data for testing can be generated based only on the given specifications and without even knowing the implementation of the test cases.
- This generated test data will be sufficient to test a software system or program that would have been written in accordance with these specifications.
- If the specifications seem to be incomplete, the assumptions can be stated about how the specifications can be clarified and completed.
Posted by
Sunflower
at
1/06/2012 11:03:00 AM
0
comments
Labels: Advantages, Application, Assumption, Checklist, Disadvantages, efficient, Errors, Performance, Reduce, Risks, Specification, Specification based testing, Strategies, Tasks, Test cases, Tests, Users
|
| Subscribe by Email |
|
Thursday, January 5, 2012
What are different aspects of distributed testing?
We have heard a lot about different kinds of testing such as regression testing, scalability testing, web testing, unit testing, visual testing, and performance testing and so on. But do you know what is distributed testing? Ever heard about it? No? Then this piece of writing is certainly for you!
This type of testing usually receives very less coverage and that’s why most of the people are not familiar with it. Here I have attempted to explain what is meant by distributed testing and how it compares with its non distributive counterpart.
Non distributed testing can be defined as the tests that run or execute only on a single computer and usually do not involve any kind of interaction with the other computer systems. I used the word “usually” here because there exist some tests that are executed from a host machine to test the target device which holds an embedded or a real time operating system. Non distributed test cases can be configured very easily.
Non distributed testing is further divided into two sub categories namely local testing and remote testing. They have been discussed in details below:
- Local Testing
This kind of testing involves running the test cases on a local computer system. The tests used are called local tests. For performing local test you don’t have to be connected to a network connection.
- Remote Testing
This kind of testing requires a network connection so that you can run a test on a remote computer system to which you don’t have local access. This is very comfortable since you can work right from your desk and you also get the results right on your desk. Remote tests can be performed on several computer systems at a time. The best about thing about remote testing is that no matter how many software systems are under the distributed testing, there is no interference between the processors of different CPUs.
Now that you have got the idea of how non distributed testing is like, it will be easy for you to understand distributed testing is like.
- A distributed test case consists of many parts that interact with each other.
- Each part of the test case is executed on different computer system.
- The interaction of the different parts of the distributed testing sets it apart from non distributed testing.
- If you notice the testing is all about testing the interaction between different computer systems.
- All of the test cases being processed on different processors have a common aim irrespective of the system on which they are performed.
- Distributed testing is not to be confused with simultaneous testing since in simultaneous testing there is no interaction between the different tests.
- Platform proves to be one of the great challenges to the distributed testing.
- The testing environment should be capable of working on all the platforms involved effectively.
- After setting up of your testing environment, you need to make a test plan or say that you need to describe how you want to carry out distributed testing.
- This can be done via a test scenario.
- A test scenario lists all the test cases and also describes how they are to carried out on the computer systems.
- The description of the test cases is provided in the form of a formal directive.
- Test scenario is an effective way to describe test cases.
- For distributed testing we use distributed directives and for non distributed testing we use remote directives.
Posted by
Sunflower
at
1/05/2012 01:38:00 PM
0
comments
Labels: Computer system, computers, Devices, Distributed, Distributed Testing, Environment, Interaction, Local Testing, Network, Platforms, Processors, Remote Testing, Scenarios, Test cases, Test Plan, Tests
|
| Subscribe by Email |
|
What are different aspects of network testing?
Network is interconnected collection of hardware components and computers interconnected by communication channels which shares data and resources. Computers are said to be interconnected if they are capable of sharing data and information. These computers are said to be autonomous since no computer can start, stop and control the other computer.
NEED OF NETWORK
- Network is needed because through network we can share resource which means we can make all programs, data and peripherals available to anyone on the network irrespective of the physical location of the resources and user.
- It provides reliability i.e.a file can have copies on two or three different machines, so if one of them is not available ,the other copies can be used.
- It also affects the cost factor which means personal computer have better price/performance ratio then the micro computers.
- Using a network, it is possible for managers, working far apart, to prepare financial report for the company.
- The changes at one end can be noticed at another and hence it speeds up the co-operation among them.
Network has some disadvantages also.
- Network makes systems more sophisticated and complex to run.
- This can add to costs and you may need a specialist staff to run the network. - If software and files are held centrally, it may be impossible to carry out any work if the central server fails.
- If networks are badly managed services can become unusable and productivity fails.
- File security is more important especially if connected to WAN e.g. protection from viruses.
Network testing is done by various types of tools. These tools help us to test switches, routers, servers and other networks. Network testing aims at determining the strength of the integrity of the network.
- Network testing methodology aims at testing the networking equipments and live networks.
- Network testing requires the network to adhere to the standards of networking. - It doesn’t matter what the software testers test the network for inter- operability, scalability, performance or protocol conformance, they can always rely only network testing for in depth and un biased testing of the network.
Speed testing is another aspect of network testing.
- Speed test can be used to verify if the internet service provider is delivering the connection speed that they promised or not.
- These days network equipment face validation challenges.
- There is a dire need of improving the quality and the performance of the core product.
- While the network complexity is constantly increasing, the process of network testing is increasingly becoming more intricate and time consuming.
There are certain problems that arise while performing the network test. They have been listed below:
- The complex combination of software, firmware and hardware components makes it very difficult to test a particular device as a single integrated system. Such cases often require manual intervention.
- The streamlining of remote manufacturing processes not only makes the whole testing process more complicated but it also makes it difficult to meet the market requirements on time.
- Performing network testing across a wide variety of scripts, testing equipments and network protocols requires complex configuration processes and long set up.
Whether the network to be tested is WAN (wide area network), LAN (local area network), VPN (virtual private network, data center products or other networking devices, network testing over comes their validation challenges and at the same time it increases test automation coverage and provides massive reduction in overhead testing costs and time consumption.
These days automated network testing set up is available. It significantly reduces the test duration, coverage and optimized test operations. Such set ups offer complete automation and configuration of the test prior to testing. The created test cases confirm to standards and provide maximum flexibility and re-usability.
Posted by
Sunflower
at
1/05/2012 12:24:00 PM
0
comments
Labels: Advantages, Automated, Components, computers, Data, files, Hardware, Need, Network, Network layer, Network testing, Operations, Optimize, peripherals, program, Resources, Software testing, Tests
|
| Subscribe by Email |
|
Wednesday, January 4, 2012
What are different aspects of volume testing?
Volume is a non functional requirement of any software system or application and therefore rightly falls under the category of non functional testing methodologies. Non functional testing methodologies are often misunderstood due to over lapping of scope between the several non functional concepts.
- Volume testing as the name suggests is the testing of a software system or application with a significant amount of data.
- The data can be meaningful or meaning less.
- The significant volume of data which is being used for volume testing cam be of size of a file of interface which has been taken as the subject of the volume testing or it can be of the size of a database either large or small.
- For carrying out the volume testing on any particular software system or application with a specific size of data base, the size of data base is increased to that extent and the testing is carried out on it.
We can take another example in which the software system or application needs to interact with some file of an interface. The file can be of any format whether .txt, .xml, .html, .dat and so on. We can think of this interaction as an action to be performed like reading and writing on to and from the particular file. In this case we will first create a sample file similar to the file size we want and then we will carry out the volume testing on that file and its functionality and specifications.
SOME IMPORTANT POINTS
- Volume testing is also referred to as stability testing when it comes to terms of performance.
- The volume testing is aimed at finding the vulnerabilities of a software system or application in respect to its data handling capability when it comes to handle exceptionally large amounts of data for a prolonged period of time.
- Sometimes it may seem to you that the volume testing is much similar to load testing and stress testing, but the objective of the volume testing actually makes the difference.
- Volume testing differs from load testing and stress testing differs when it comes to the expected result and what is actually being simulated?
- At first it may seem like does significance of volume really matters?
- But when you start analyzing, you will discover that indeed volume has a great deal to do with the non functional requirements of a software system or applications.
- Volume testing becomes important while setting up a web server or a client server or while making changes to it.
- The first question that arises while setting up a network or a system is that whether or not it will be able to handle huge expected volume of data?
- The objective of volume testing is to ensure that the whole software system or application works properly and processes data correctly within the physical and logical boundaries of the system while still maintaining the standard of performance.
- One thing to be noted is that the volume testing focuses on determining the robustness and reliability of the software system rather than determining the responsiveness of the software system.
Posted by
Sunflower
at
1/04/2012 05:00:00 PM
0
comments
Labels: Application, Data, Database, Interface, Load, Methods, Non functional requirements, Performance, Software testing, Tests, Users, Volume test, Volume testing
|
| Subscribe by Email |
|
What are different aspects of stress testing?
Stress testing can be defined as a form of testing that is carried out to determine the stability and the stress handling capacity of a software system or module. Stress testing is all about testing the software system or application beyond the normal operational capacities. It is the testing of software system or application to its breaking or fatal point. This is done in order to observe the results.
Stress testing has a much broader meaning. What is basically understood by a stress test?
- It is referred to a test that mainly focuses upon the availability, error handling and robustness of a software system or application.
- In stress testing the software system or application is subjected heavy loads of tasks.
- It is not about considering the proper behavior under the normal operational conditions or user environment.
Typically the goal of stress testing is to test whether or not the software system or application crashes or fails in the case of catastrophic problems like unavailability of sufficient computing resources. These computational resources may include disk space or memory. It is also done to determine if the system crashes or fails under the situation of denial of service attacks and unusually high concurrency.
Stress testing, load testing, volume testing all seem like much similar kinds of testing.
A look at the following examples of stress testing will clear up the confusions regarding stress testing:
- Stress testing for web server:
A web server can be subjected to stress testing using bots, scripts and several denial of service tools to determine its performance and behavior during the peak data and tasks load.
- Stress testing can be studied in contrast with load testing.
Load testing is basically carried out to examine the entire testing environment and the huge database. It is also carried out to determine the response time of the software system or application whereas the stress testing exclusively focuses upon identifying the transactions and pushing them to a level at which a break occurs in the execution of the transaction software system.
Another point is that during the stress testing if the transactions are duly stressed, then the chance is that the database may not experience a huge data load. However if the transactions are not stressed, the data base may experience a heavy work load.
SOME IMPORTANT POINTS:
- Stress testing is another word for system stress testing.
- It can be defined as the loading of the concurrent users beyond and over the level that can be handled by the system.
- This leads to the breakage of the weakest link in the whole software system or application.
- While carrying out the stress testing the software engineers, developers or testers need to test the whole software system or application under the desired expected stress as well as under the accelerated stress.
- The goal here is to determine the working life of the software system.
- It is also aimed at determining the modes of failure for the software system or application.
- For the hardware counterpart of a complete system, the stress testing can be defined as the subjecting of the concerned hardware to the exaggerated levels of stress.
- This is basically done to determine the stability of the hardware system when used in a normal environment rather than a testing environment.
- Before modifying the CPU parameters during the processes of over clocking, over volting, under volting and under clocking, it is necessary to verify whether or not the new CPU parameters like frequency and core voltage are suitable for taking the heavy CPU loads.
- Stress testing for such parameters is usually carried out by executing a CPU intensive program for a prolonged significant period of time. It is observed if the system crashes or hangs.
Posted by
Sunflower
at
1/04/2012 02:38:00 PM
0
comments
Labels: Application, Capacity, Crash, Focus areas, Goals, Load, Memory, Operational, Resources, Software testing, Stability, Stress, Stress testing, System Testing, Tasks, Tests, Users
|
| Subscribe by Email |
|