What is Software Testing?
Several definitions:
“Testing is the process of establishing confidence that a program or system does what it is supposed to.”
“Testing is the process of establishing confidence that a program or system does what it is supposed to.”
“Testing is the process of executing a program or system with the intent of finding errors.”
“Testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.”
“Testing an software application in order verify that software package functions according to the expectations defined by the requirements/specifications and also to ensure that it meets business requirement of a customer/user”
Testing Objectives
The Major Objectives of Software Testing:
·
Uncover
as many as errors (or bugs) as possible in a given timeline.
·
Demonstrate
a given software product matching its requirement specifications.
·
Validate
the quality of software testing using the minimum cost and efforts.
·
Generate
high quality test cases, perform effective tests, and issue correct and helpful
problem reports.
Major goals:
Uncover the errors (defects) in the software, including errors in:
Uncover the errors (defects) in the software, including errors in:
·
Requirements
from requirement analysis
·
Design
documented in design specifications
·
Coding
(implementation)
·
System
resources and system environment
Hardware problems and their interfaces to
software
Who does Software Testing
Test manager
·
Manage and control a software test
project
·
Supervise test engineers
·
Define and specify a test plan
Software Test Engineers and Testers
·
Define test cases, write test
specifications, run tests
Independent Test Group
Development Engineers
Development Engineers
·
Only perform unit tests and
integration tests
Quality Assurance Group and Engineers
·
Perform system testing
·
Define software testing standards
and quality control process
Software Testing Activities
Test Planning
Define a software test plan
by specifying:
a test schedule for a test process and its activities, as well as assignments
test requirements and items
test strategy and supporting tools
Test Design and Specification
a test schedule for a test process and its activities, as well as assignments
test requirements and items
test strategy and supporting tools
Test Design and Specification
Conduct software design based well-defined test generation methods.
Specify test cases to achieve a targeted test coverage.
Test set up:
Testing Tools and Environment Set-up
Test Suite Set-up
Test Operation and Execution
Run test cases manually or automatically
Report software testing results and conduct test result analysis
Problem Reporting
Report program errors using a systematic solution.
Test Management and Measurement
Manage software testing activities, control testing schedule, measure testing complexity and cost
Test Automation
Define and develop software test tools
Adopt and use software test tools
Write software test scripts and facility
Test Configuration Management
Manage and maintain different versions of software test suites, test environment and tools, and documents for various product versions.
Software Quality Factors
Functionality (exterior quality)
Correctness, reliability, usability, and
integrity
Engineering (interior quality)
Efficiency, testability, documentation,
structure
Adaptability (future qualities)
Flexibility, reusability, maintainability
Software Testing Principles
·
Principle
1: Complete testing is impossible.
·
Principle
2: Software testing is not simple.
·
Reasons:
·
Quality
testing requires testers to understand a system/product completely
·
Quality
testing needs adequate test set, and efficient testing methods
·
A
very tight schedule and lack of test tools.
·
Principle
3: Testing is risk-based.
·
Principle
4: Testing must be planned.
·
Principle
5: Testing requires independence.
·
Principle
6: Quality software testing depends
on:
·
Good
understanding of software products and related domain application
·
Cost-effective
testing methodology, coverage, test methods, and tools.
·
Good
engineers with creativity, and solid software testing experience
Test Issues in Real World
·
Software testing is very expensive.
·
How to achieve test automation?????
·
When should we stop software
testing?
·
Test criteria, test coverage,
adequate testing.
·
Other software testing:
·
GUI Testing
·
Object-Oriented Software Testing
·
Component Testing and
Component-based Software Testing
No comments:
Post a Comment