Software Testing is any activity aimed at evaluating an functionality or capability of a program or system and determining whether it is working properly or meets its required results.
OR
In simple words, software testing is the process of finding deviation/failure from the requirements and user expectations.
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.
“and determining that it meets its required results
“.Software Testing Principles : To remove as many defects as possible before test since the quality improvement potential of testing is limited.
What are the Types of Software Tests
*Black box testing.
*White box testing.
*Greybox testing.
* Unit Testing.
* Integration Testing.
* Function Testing (Black Box).
* Regression Testing.
* System Test.
* User Acceptance and Installation Tests.
* End-to-end testing.
* Sanity testing.
* Regression testing.
* Load testing.
* Stress testing.
* Performance testing.
* Usability testing.
* Recovery testing.
* Security testing.
* Compatibility testing.
* Alpha testing.
* Beta testing.
Unit Testing (White Box)
* Individual components are tested.
* It is a path test.
* To focus on a relatively s mall segment of code and aim to exercise a high percentage of the internal path.
* Disadvantage: the tester may be biased by previous experience. And the test value may not cover all possible values.
Integration Testing
* Top-down Integration Test.
* Bottom-up Integration Test.
Top-down Integration Test
* The control program is tested first. Modules are integrated one at a time. Emphasize on interface testing.
* Advantages: No test drivers needed.
Interface errors are discovered early.
Modular features aid debugging
* Disadvantages: Test stubs are needed
Errors in critical modules at low levels are found late.
Bottom-up Integration Test
* Allow early testing aimed at proving feasibility.
Emphasize on module functionality and performance.
* Advantages: No test stubs are needed.
Errors in critical modules are found early.
* Disadvantages: Test drivers are needed.
Interface errors are discovered late.
Function Testing (Black Box).
* Designed to exercise the to its external specifications.
* Testers not biased by knowledge of the program’s design.
* Disadvantages:
The need for explicitly stated requirements.
Only cover a small portion of the possible test conditions.
Regression Testing
* Test the effects of the newly introduced changes on all the previously integrated code.
* The common strategy is to accumulate a comprehensive regression bucket but also to define a subset.
* The full bucket is run only occasionally, but the subset is run against every spin.
* Disadvantages:
* To decide how much of a subset to use and which tests to select.
What is Test Planning
* Define the functions, roles and methods for all test phases.
* Test planning usually start during the requirements phase.
* Major test plan elements are:
* Objectives for each test phase.
* Schedules and responsibilities for each test activity.
* Availability of tools, facilities and test libraries.
* Set the criteria for test completion
Test Execution & Reporting
* Testing should be treated like an experiment.
* Testing require that all anomalous behavior be noted and investigated.
* Big companies keep a special library with all copies of test reports, incident forms, and test plans.
Real-Time Testing
* Real-Time testing is necessary because the deployment system is usually more complicate than development system.
* Rules apply for testing real time system.
* Evaluate possible deadlocks, thrashing to special timing conditions.
* Use tests to simulate hardware faults.
* Use hardware simulation to stress the software design.
* Design ways to simulate modules missing in the development system.
Static Testing:
Static testing is a form of software testing where the software isn’t actually used.
Dynamic Testing:
Dynamic Testing (or Dynamic analysis) is a term used in software engineering to describe the testing of the dynamic
Blackbox Testing:
Black Box Testing is testing without knowledge of the internal workings of the item being tested.
Whitebox Testing:
Whitebox Testing involves looking at the structure of the code. Whitebox Testing strategy deals with the internal
Whitebox Testing is also known as:
Clear box testing, glass box testing, and open box testing.* Re-Testing Testing:
Retesting Testing is re-execution of test cases on same application build with different inputs or test data.
What is Use case ?
A use case is a set of possible scenarios between the functionality and end user. It contains all the requirement/activities tha are significant to end-user. It can also be a very good way of capturingfunctionality of the software.
The difference between Quality Control and Quality Assurance :
In the definition QC is short for Quality Control, a process of verifying predefined requirements for quality. The QC function may involve checking the software against a set of requirements and verifying that the software meets the predefined requirements.
Quality Assurance, on the other hand, is much more about providing the continuous and consistent improvement and maintenance of process that enables the QC job. We use the QC process to verify a product and we use the QA process to give us confidence thatthe product will meet the needs of customers. To that end the QA process can be considered a meta process that includes aspects of the QC process.
Severity and Priority of Defects :
Generally we have to set the Severity and Priority level for a Defect. Severity level will be set by the Testing Team and the Priority level will be set by the Development Team. Severity means how much severe is the particular defect in theapplication (i.e.) how it affects the functionality of the application Priority means the importance and urgency to fix the defect by the developers (i.e.) which defect should be fixed first and which should be fixed in later versions. There and some levels in severity and priority, they are as follows….
Severity levels:
Trivial
Minor
Major
Critical
Block
Priority Levels:
Low
Medium
High
Urgent
Immediate
The Severity and Priority levels must vary depends upon the company and the defect tracking tool used by the company.
Some Examples for the priority levels….
Low Priority: Spelling mistakes, grammatical errors, Textual Errors, Orphan pages, broken links, GUI errors.
High Priority: Wrong Functionality, Applications Crashes, Errors
Tags: Software Testing