Software Quality Assurance: Dynamic Testing-I
Software Quality Assurance: Dynamic Testing-I
ASSURANCE
DYNAMIC
TESTING-I
Topics to
Cover
Software Testing
Principles of Testing
Software Testing
Lifecycle
Software Testing
Activities
Role of Tester
Testing Limits
Testing Methods
SQA Team
Testing Stages
Test Cases
Testing Types
Software
Testing
“Testing is the process of executing a program or system with the intent of finding
errors.” by Myers 1979
Test Set up
Testing Lab Space and tools (Environment Set-up) Test Suite Set-up
Test Automation
Define software test tools
Adopt and use software test tools
Write software test scripts
Developer Understands the system but will test “gently” and is driven
“delivery by
”
Independent Tester must learn about the system but will attempt to break it and
is driven by quality
Software Testing
Limits
Due to the testing time limit, it is impossible to achieve total confidence.
Test engineers never be sure that they completely understand a software product.
Testing Manager
Test Analyst
Tester
Test manager is also responsible for liaison with the development teams to ensure that they
follow the unit and integration testing approach documented within the process.
Test manager is also responsible for liaison with the Independent Test Observer to receive
reports on testing projects.
The Test Analyst may also be called upon to assist the Team
Lead in the generation of test specification document.
SQA
Team
Tester
Prior to the execution of the test cases, the Tester will set up
and initialize the test environment, including the test data,
plus any additional software required to support the test.
SQA
Team
Independent Test Observer
Automated
Testing
Manual
testing[10,11]
This type includes the testing of the Software manually i.e. without using any automated tool or
any script.
In this type the tester takes over the role of an end user and test the Software to identify any un-
expected behavior or bug.
Testers use test plan, test cases or test scenarios to test the Software to ensure the completeness
of testing.
Condition: Manual tests can be used in situations where the steps cannot be automated, for
example to determine a component's behavior when network connectivity is lost; this test could
be performed by manually unplugging the network cable.
In real time 60 to 70 % testing done manually. Tester will create test cases, Tester will execute
test cases, tester will write bug report manually.
Except performance testing and Stress Testing every thing we can do manually
Manual
testing[10,11]
This process involves automation of a manual process. Automation Testing is used to re-run the
test scenarios that were performed manually, quickly and repeatedly.
Integration Testing
System testing
Acceptance testing
Test
case
A test case in software engineering is a set of conditions or variables under which a tester will
determine whether an application or software system meets specifications.
A test case has components that describes an input, action or event and an expected response,
to determine if a feature of an application is working correctly.
The mechanism for determining whether a software program or system has passed or failed
such a test is known as a test oracle.
Test description: The description of test case you are going to test.
Revision history: Each test case has to have its revision history in order to know when and by
whom it is created or modified.
Test Setup: Anything you need to set up outside of your application for example printers,
network and so on.
Expected Results: The description of what you expect the function to do.
White
Box
Gray Box
Black Box
Testing
In science and engineering, a black box is a device, system or object which can be
viewed solely in terms of its input, output and transfer characteristics without any
knowledge of its internal workings, that is, its implementation is "opaque" (black).
Also known as functional testing. A software testing technique whereby the internal
workings of the item being tested are not known by the tester.
For example, in a black box test on a software design the tester only knows the
inputs and what the expected outcomes should be and not how the program arrives
at those outputs.
Pros and Cons of Black-Box
Testing
Black-Box
Testing
In gray box testing, the tester applies a limited number of test cases to the internal workings of
the software under test. In the remaining part of the gray box testing, one takes a black box
approach in applying inputs to the software under test and observing the outputs.
This is particularly important when conducting integration testing between two modules of
code written by two different developers, where only the interfaces are exposed for test.
Reference
s
1 Software Engineering by Roger Pressman
2 http://jamesmccaffrey.wordpress.com/2008/08/29/the-difference-between-unit-testing-and- module-
testing/
3 http://www.faqs.org/faqs/software-eng/testing-faq/section-14.html
4 http://en.wikipedia.org/wiki/White-box_testing
5 http://agile.csc.ncsu.edu/SEMaterials/WhiteBox.pdf
6 http://blogs.ebusinessware.com/2009/06/26/unit-testing-vs-module-testing/
7 John Watkins ,”Testing IT”, 2001, Cambridge University Press
8 http://chamaras.blogspot.com/2008/08/what-is-software-testing-life-cycle.html
9 GlenFord Myers, “The Art of Software Testing” 2nd Edition
10 http://www.tutorialspoint.com/software_testing/testing_types.htm
11 www.onestoptesting.com
12 http://www.softwaretestingmentor.com/automation/manual-vs-automation.php