Software Testing Fundamentals
Software Testing Fundamentals
Definitions:
Software testing is designed to establish that the software is working satisfactorily as per the
requirements. Software testing is a process designed to prove that the program is error free. From
objective point of view, testing can be done in two ways.
- Each testing activity may have several activities and there are two levels of objectives
specification.
- A test plan contain both high level of general objectives in the overview section and
specific low level “provable” objectives for each particular type of testing being
implemented. The latter kind being operational goal for specific tasks.
- A good set of operational objectives can explain why we are executing a particular step
in the testing procedure.
General Objectives:
sunilkhilari@hotmail.com ,9850979655 1
8) Reduce the risk of failure.
9) Reduce the cost of testing.
Inputs:
sunilkhilari@hotmail.com ,9850979655 2
Auditing & reporting functions of management
It concentrate on the process of producing quality
Defect prevention oriented
This is usually staff function
Review, audits, inspections
Done after the product is built
QA = QC over QC
because of Quality Assurance evaluate whether Quality Control is working.
Failure: Failure is said to occur whenever the external behavior of a system does not confirm to that
prescribed in the system specification.
sunilkhilari@hotmail.com ,9850979655 3
1.3 Bug Life Cycle:
New
Open
Rejected
Assign
Deferred
Reopen Test
Verified
Closed
New: When the bug is posted for the 1st time, its state will be “New”. This means that the bug is not
yet approved.
Open: After a tester has posted a bug, the lead of the testers approves that bug is genuine and he
changes the state as “Open”.
Assign: Once the lead changes the state as “Open” he assigns the bug to corresponding
developer or developers’ team. The state of the bug now is opened to “Assign”.
Test: Once the developer fixes the bug, he has to assign the bug to the testing team for next round of
testing. Before he releases the software with bug fixed, he changes the state of bug to “Test”. It
specifies that the bug has been fixed and is released to testing team.
Deferred: The bug, changed to deferred state means the bug is expected to be fixed in next
releases. The reasons for changing the bug to this state have many factors. Some of them are priority
of the bug may be low, lack of time for the release or the bug may not have major effect on the
software.
Rejected: If the developer feels that bug is not genuine he rejects the bug. Then the state of the
bug is changed to “Rejected”.
Verified: Once the bug is fixed and the status is changed to “Test”, the tester tests the bug. If the
bug is not present in the software, he approves that the bug is fixed and changes the status to
“Verified”.
Reopen: If the bug still exists even after the bug is fixed by developer, the tester changes the
status to “Reopen”. The bug traverses the life cycle once again.
Closed: Once the bug is fixed, it is tested by the tester. If tester feels that the bug is no longer
exists in software, he changes the status of the bug to “Closed”. This state means that the bug is fixed,
tested and approved.
sunilkhilari@hotmail.com ,9850979655 4
1.4 Software Testing Life Cycle (STLC)
(i) Planning of Test
(ii) Analysis of Test
(iii) Design of Test
(iv) Creation and Verification of Test
(v) Execution of Testing Cycles
(vi) Performance Testing documents
(vii) Action after implementation
(i) Planning of Test:
In STLC multiple test levels which are going to be performed for the project. Activities at each
level must be planned well. Planned well in advance and it has to be formally documented
based on individual plan only? The individual test levels are carried out. It is the process of
defining a testing project such that it can be properly measured and controlled. Detailed
schedule of testing activity as well content of test plan are created.
Contents of test plan –
(a) Background: The item summarizes the function of the application system and test to be
performed.
(b) Introduction: What is to be tested, sequence of testing.
(c) Strategy: Main test activities, methodology
(d) Assumption: Indicates any anticipated assumptions which will be made while testing the
application.
(e) Test Items: List of each item (program) to be tested.
(f) Features not to be tested” Features won’t be tested and why not?
(g) Featured to be tested: List of features (functions or requirements) which will be tested or
demonstrated by the test.
(h) Approach: Describe data flow and test philosophy. All approaches which will be
followed at the various stages of the test execution.
(i) Item pass: Item list of expected output and tolerances.
(j) Suspension / completion criteria: Establish check point – when test start or complete.
(k) Test deliverables: What the besides software will be delivered – test reposts, test
software.
(l) Testing task: Functional tasks (e.g. equipment setup)
(m) Environmental needs: (Resources) – software and hardware requirements
(n) Responsibilities: Who does the task in section 5, what does the user do.
(o) Staffing and Training: recruitment of tester, developer and need for training
(p) Test Scheduling: Estimate, sequence ,plan
(q) Test Tools: Tools to be used for testing
(r) Risk:Any identified Ris
(s) Approvals: who will going to approve test plan and test records
Benefits of test plan:
sunilkhilari@hotmail.com ,9850979655 5
- Test objectives
- Test scope
- Test strategy
- Establish team or defining roles
- Estimate a test timeline
(iii) Test Design: Test Design is done based on the requirement of the project documented in SRS.
This phase decides which manual or automated testing is to be done.
Automation Testing: In Automation testing different paths for testing are to be identified 1st
and writing of script has to be done if required.
These originate a needed for an end-to-end checklist that covers al the features of the projects.
(iv) Analysis of Test: Once the test plan documentation is done the next stage is to analyze what
types of software testing should be carried out at the various stages of STLC.
(v) Creation and Verification of Test: In this phase test plans, the scripts test are completed.
Stress and performance testing plans are also completed at this stage when the development
team is done with unit of code, the testing team is required to help then in testing that unit and
reporting of the bug if found. Integration testing and bug reporting is done in this phase of the
software testing life cycle.
(vi) Execution of Test: Planning and execution of various test cases is done in this phase. Once the
unit test is completed. The functionality of the tests is done in this phase. At first top level of
testing is done to find out top level failures and bugs are reported immediately to the
development team to get required turnaround.Test report has to document properly and bug
have to be reported to the development team.
(vii) Performance Testing documents (Result Analysis): Once the bug is fixed by the
development team i.e. after the successful execution of the test case. The testing team has to be
result it to compare the expected values with actual values and declare the result as pass or fail.
(viii) Action after implementation: This is one of the important stages as the Defect Profile
Document (DPD) has to be updated for testing the developers know about the defects.
Defect profile document contains –
a) Defect ID: Unique identification of the defect
b) Test case ID: Test case identification for that defect
c) Description: Detailed description of the bug
d) Summary: This field contains some keyword information about the bug which can help in
minimizing the number of records to be searched.
e) Defect submitted by: Name of the tester who detected and reported the bug.
f) Date of submission: Date at which the bug was detected or reported.
g) Build No.: Number of runs required.
h) Version No.: Version information of the software application in which the bug was
detected or fixed.
i) Assigned to: Name of the developer who is suppose to fix the bug.
j) Severity: Degree of severity of the defect.
k) Priority: Priority of fixing the bug.
l) Status : Current status of the bug
Testing is an interactive process. The bug once reported and as the development team fixes the bug. It
has to undergo the testing process again to assure that the bug found is resolved. Regression testing
has to be done once the quality analysist assures that the product is ready, the software is released for
sunilkhilari@hotmail.com ,9850979655 6
production. Before release the software has to undergo one more round of top level testing. Thus
testing is an ongoing process.
2 Test case is document that describes an input action or event and expected response to
determine features of an application is working properly.
3 A set of test inputs, execution conditions and expected result.
Test case components:
1) Test case Id :
2) Test case name :
3) Purpose / objective :
4) Steps :
5) Expected results :
6) Actual results :
7) Pass / fail :
8) Pre-requisite :
9) Setup / initial condition :
10) Input data :
sunilkhilari@hotmail.com ,9850979655 8