Coming Soon........
SQA Forum
Tuesday, August 2, 2011
Tuesday, May 3, 2011
Some tricky question answers
1. Define the following along with examples
a. Boundary Value testing
b. Equivalence testing
c. Error Guessing
d. Desk checking
e. Control Flow analysis
Answer:
1-a) Boundary value Analysis: -
A process of selecting test cases/data by
identifying the boundaries that separate valid and invalid conditions. Tests are
constructed to test the inside and outside edges of these boundaries, in addition to
the actual boundary points. or A selection technique in which test data are chosen to
lie along “boundaries” of the input domain [or output range] classes, data structures,
procedure parameters, etc. Choices often include maximum, minimum, and trivial
values or parameters.
E.g. – Input data 1 to 10 (boundary value)
Test input data 0, 1, 2 to 9, 10, 11
1-b) Equivalence testing: -
The input domain of the system is partitioned into classes
of representative values, so that the no of test cases can be limited to one-per-class,
which represents the minimum no. of test cases that must be executed.
E.g.- valid data range: 1-10
Test set:-2; 5; 14
1-c) Error guessing: -
Test data selection technique. The selection criterion is to pick
values that seem likely to cause errors Error guessing is based mostly upon
experience, with some assistance from other techniques such as boundary value
analysis. Based on experience, the test designer guesses the types of errors that
could occur in a particular type of software and designs test cases to uncover them.
E.g. – For example, if any type of resource is allocated dynamically, a good place to
look for errors is in the de-allocation of resources. Are all resources correctly deallocated,
or are some lost as the software executes?
1-d) Desk checking: -
Desk checking is conducted by the developer of the system or
program. The process involves reviewing the complete product to ensure that it is
structurally sound and that the standards and requirements have been met. This is
the most traditional means for analyzing a system or program.
1-e) Control Flow Analysis: -
It is based upon graphical representation of the
program process. In control flow analysis; the program graphs has nodes which
represent a statement or segment possibly ending in an unresolved branch. The
graph illustrates the flow of program control from one segment to another as
illustrated through branches .the objective of control flow analysis is to determine
the potential problems in logic branches that might result in a loop condition or
improper processing .
a. Boundary Value testing
b. Equivalence testing
c. Error Guessing
d. Desk checking
e. Control Flow analysis
Answer:
1-a) Boundary value Analysis: -
A process of selecting test cases/data by
identifying the boundaries that separate valid and invalid conditions. Tests are
constructed to test the inside and outside edges of these boundaries, in addition to
the actual boundary points. or A selection technique in which test data are chosen to
lie along “boundaries” of the input domain [or output range] classes, data structures,
procedure parameters, etc. Choices often include maximum, minimum, and trivial
values or parameters.
E.g. – Input data 1 to 10 (boundary value)
Test input data 0, 1, 2 to 9, 10, 11
1-b) Equivalence testing: -
The input domain of the system is partitioned into classes
of representative values, so that the no of test cases can be limited to one-per-class,
which represents the minimum no. of test cases that must be executed.
E.g.- valid data range: 1-10
Test set:-2; 5; 14
1-c) Error guessing: -
Test data selection technique. The selection criterion is to pick
values that seem likely to cause errors Error guessing is based mostly upon
experience, with some assistance from other techniques such as boundary value
analysis. Based on experience, the test designer guesses the types of errors that
could occur in a particular type of software and designs test cases to uncover them.
E.g. – For example, if any type of resource is allocated dynamically, a good place to
look for errors is in the de-allocation of resources. Are all resources correctly deallocated,
or are some lost as the software executes?
1-d) Desk checking: -
Desk checking is conducted by the developer of the system or
program. The process involves reviewing the complete product to ensure that it is
structurally sound and that the standards and requirements have been met. This is
the most traditional means for analyzing a system or program.
1-e) Control Flow Analysis: -
It is based upon graphical representation of the
program process. In control flow analysis; the program graphs has nodes which
represent a statement or segment possibly ending in an unresolved branch. The
graph illustrates the flow of program control from one segment to another as
illustrated through branches .the objective of control flow analysis is to determine
the potential problems in logic branches that might result in a loop condition or
improper processing .
Some tricky question answers → Software testing FAQ
Software testing is the process used to help identify the correctness, completeness, security, and quality of developed computer software.
Testing is a process of technical investigation, performed on behalf of stakeholders, that is intended to reveal quality-related information about the product with respect to the context in which it is intended to operate.
This includes, but is not limited to, the process of executing a program or application with the intent of finding errors. Quality is not an absolute; it is value to some person. With that in mind, testing can never completely establish the correctness of arbitrary computer software; testing furnishes a criticism or comparison that compares the state and behaviour of the product against a specification. An important point is that software testing should be distinguished from the separate discipline of software quality assurance, which encompasses all business process areas, not just testing.
Friday, April 29, 2011
Experts view on different Activities on Testing
Experts view on different Activities on Testing
The testing is anything that involves at least following four activities:
1) Configure: Prepare the product for the test. Put it into the right starting state. Otherwise, your test results may be tainted by rogue variables.
2) Operate: Feed the product data. Give it commands. Interact with it in some way. Otherwise, it just sits here, and what you're doing is reviewing, not testing.
3) Observe: Collect information about how the product behaves, output data, the state of the system as a whole, interactions with other products, and so on. You can't observe everything, but anything you don't observe may blind you to a bug.
4) Evaluate: Apply rules, reasoning, or mechanisms that will detect bugs in the data you observed. Otherwise, you will either report no problems, or you will just pass the data through to your clients, who will have to perform the evaluation themselves.
Test creation may take many forms. Don't get too hung up on form, just make sure these four activities are happening. Focus on the thinker who is performing them and how well the tests fulfill the intended strategy and mission of testing.
Conclusion: It's the testing that matters, not how you parse the testing into packages you call tests.
How a Good Bug Hunter prioritizes his Bug Hunting Activities in Software Testing
How a Good Bug Hunter Prioritizes his Bug Hunting Activities in Software Testing
Let us firstly understand as to what is a bug hunter?
A bug hunter is an experienced & enthusiastic exploratory tester. Good bug hunters usually do the following:
1) Do initial exploratory testing of a suspect area, to develop ideas for more detailed attacks that can be performed by less experienced testers.
2) Explore an area that is allegedly low risk - can he quickly find bugs that would lead to reassessment of the risk?
3) Troubleshoot key areas that seem prone to irreproducible bugs.
4) Find critical bugs that will convince the project manager to slip a (premature) release date.
How to prioritize the bug hunting activities?
A bug hunter is an experienced & enthusiastic exploratory tester. Good bug hunters usually do the following:
1) Do initial exploratory testing of a suspect area, to develop ideas for more detailed attacks that can be performed by less experienced testers.
2) Explore an area that is allegedly low risk - can he quickly find bugs that would lead to reassessment of the risk?
3) Troubleshoot key areas that seem prone to irreproducible bugs.
4) Find critical bugs that will convince the project manager to slip a (premature) release date.
How to prioritize the bug hunting activities?
Approaches to Reliability Testing & Setting of Reliability Test Objectives
Approaches to Reliability Testing & Setting of Reliability Test Objectives
If the project context demands different types of reliability testing, the approach to reliability testing is governed by a following three factors:
1) Identified risks, in particular those relating to safety-critical systems
2) Applicable standards
3) Available resources
When
planning an approach to reliability tests it is worth bearing in mind
that some tests will be defined with one aspect of reliability in
focus but which might also be applicable to other reliability
aspects. If we decide, for example, to evaluate the recoverability of
a system, we may first need to cause that system to fail. The very
act of defining these tests (i.e., getting the system to fail) may
give us insights into the fault tolerance of our system.
Thursday, April 28, 2011
Functional testing with Selenium
If you’re taking an agile approach to software development, it’s highly likely you’ll be using test first development practices in order to test the programming logic that has been written.
Unit testing is great for exercising the various components under the bonnet of the application but it doesn’t really help in terms of testing the interface that an end user will encounter. Functional testing is important, as it allows you to verify that the interface to your application is behaving as expected and could potentially trap any errors that have not been caught by unit testing.
selenium is a tool for testing web applications from the Browser or via a FireFox plugin.
The Selenium IDE allows you to record test scripts which can automate the testing of a web application interface. For example, I could record the actions of logging into an application and then then clicking through to some feature and perhaps entering and saving some data. I could then assert that the output from those actions meets my expectations, very similar to how unit testing frameworks work.
The great thing about all of this is that it removes most of the tedium in testing your application when you are developing and debugging. Most importantly, you have a set of repeatable and consistent tests that can be performed at the click of a button. Better yet, Selenium also has a remote control server which lets you execute tests from API’s covering Java, Ruby, PHP, .NET and Perl. The advantage of this approach is you write your functional tests in your preferred programming language and maybe execute them as part of a continuous integration process.
So what are you waiting for? Go try it out!
Unit testing is great for exercising the various components under the bonnet of the application but it doesn’t really help in terms of testing the interface that an end user will encounter. Functional testing is important, as it allows you to verify that the interface to your application is behaving as expected and could potentially trap any errors that have not been caught by unit testing.
selenium is a tool for testing web applications from the Browser or via a FireFox plugin.
The Selenium IDE allows you to record test scripts which can automate the testing of a web application interface. For example, I could record the actions of logging into an application and then then clicking through to some feature and perhaps entering and saving some data. I could then assert that the output from those actions meets my expectations, very similar to how unit testing frameworks work.
The great thing about all of this is that it removes most of the tedium in testing your application when you are developing and debugging. Most importantly, you have a set of repeatable and consistent tests that can be performed at the click of a button. Better yet, Selenium also has a remote control server which lets you execute tests from API’s covering Java, Ruby, PHP, .NET and Perl. The advantage of this approach is you write your functional tests in your preferred programming language and maybe execute them as part of a continuous integration process.
So what are you waiting for? Go try it out!
Creating a Selenium test suite
Most testing frameworks have the concept of grouping a set of text fixtures into a ’suite’ so that you can execute a number of related tests together.
Creating test suites with Selenium doesn’t appear to be obvious at first. Here’s a simple guide on how to create and execute suites of functional tests:
You can run test suites via the Selenium web browser application. You’ll need to download the Selenium Core in order to do this. After you have extracted the downloaded file, copy the ‘core’ directory to somewhere that is accessible under your server web root (E.g the document root). Browse to http://your server/path to selenium core/TestRunner.html and you should see the Selenium test runner application.
In order to create a test suite, all you have to do is create an HTML document that is composed of a table of links to your individual unit tests. For example:
Now return to the Selenium test runner application and alter the unit test path so that it finds the HTML file containing your test suite definition. When the page reloads you should see all of your individual unit tests listed within the frame on the left hand side. You now have the option of executing all tests within the suite or run selected tests.
The test runner reports results in the usual manner, stating the number of passes, failures or number of cases where errors were encountered within the actual test scripts.
Creating test suites with Selenium doesn’t appear to be obvious at first. Here’s a simple guide on how to create and execute suites of functional tests:
You can run test suites via the Selenium web browser application. You’ll need to download the Selenium Core in order to do this. After you have extracted the downloaded file, copy the ‘core’ directory to somewhere that is accessible under your server web root (E.g the document root). Browse to http://your server/path to selenium core/TestRunner.html and you should see the Selenium test runner application.
In order to create a test suite, all you have to do is create an HTML document that is composed of a table of links to your individual unit tests. For example:
- <html>
- <head>
- <title>My Application Test Suite</title>
- </head>
- <body>
- <table>
- <tr><td><b>Suite Of Tests</b></td></tr>
- <tr><td><a href="./TestLogin.html">Test Login</a></td></tr>
- <tr><td><a href="./TestFormEntry.html">Test Form Entry</a></td></tr>
- <tr><td><a href="./TestFormSave.html">Test Form Save</a></td></tr>
- </table>
- </body>
- </html>
<html> <head> <title>My Application Test Suite</title> </head> <body> <table> <tr><td><b>Suite Of Tests</b></td></tr> <tr><td><a href="./TestLogin.html">Test Login</a></td></tr> <tr><td><a href="./TestFormEntry.html">Test Form Entry</a></td></tr> <tr><td><a href="./TestFormSave.html">Test Form Save</a></td></tr> </table> </body> </html>Obviously you’ll need to adjust the href’s to wherever you have your test cases stored, but essentially that is all there is to creating a test suite.
Now return to the Selenium test runner application and alter the unit test path so that it finds the HTML file containing your test suite definition. When the page reloads you should see all of your individual unit tests listed within the frame on the left hand side. You now have the option of executing all tests within the suite or run selected tests.
The test runner reports results in the usual manner, stating the number of passes, failures or number of cases where errors were encountered within the actual test scripts.
Subscribe to:
Posts (Atom)