【Software Test】Introduction to Software Testing
Introduction to Software Testing
文章目录
Going to Learn …….
Evolution of The Software Industry.
Errors, Faults, and Failures
Type of Faults
Classification of Failures
Need for Testing
Engineering approaches to developing correct systems
Role of Specification
When to finish testing
Evolution of The Software Industry
Software industry begins in 1950s.
The independent software industry was established in 1969.
Mass consumption of software product begins in 1981 on words.
The World Wide web arrived at the 1990s
And Mobile devices arrived at the 2000s
In 2010, Top 500 companies in all over the world gained
$492 billion.
Errors, Faults, and Failures
Error:
- Mistakes made by software developers.
- Thet exist it may lead to the one or more faults in the software.
Example:
- Spelling Mistakes
- Missing Branches
Faults :
- It consists of incorrect materials in the , and can be the product of one or more error.
- This led to failure during the execution.
Purpose of the Classification
1、When analyzing/designing/coding software, where are acts as a checklist of faults to avoid?
2、When developing Software test, where it acts as a guide to likely faults.
3、When undergoing Software process evaluation or improvement, where it provides input data.
Fault Types
- Algorithmic: Due to the algorithm design , software produced incorrect output for given input.
- Syntax: The specified programming language and source code are not confirmed.
- Computation and Precision: Used formula does not calculate the expected accuracy and precision.
- Stress or Overload: The system fails to operate correctly when it is Overloaded.
- Capacity and Boundary: The system fails to operate correctly when data stores are filled beyond their capacity.
- Timing or Coordination: During the real-time process the system not cooperate with several concurrent processes.
- Throughput or Performance: The System does not meet its specified throughput or other performance requirements.
- Recovery: The system does not recover to the excepted performance even after a fault is detected and corrected.
Classification of Failures
Behavior
Failure Severity Level
Failure causes a system crash and the recovery time is extensive or failure causes a loss of function and data and there is no workaround.
Failure causes a loss of function and data but there is a manual workaround to temporarily accomplish the tasks.
Failure causes a partial loss of function and data where the user can accomplish most of the tasks can still be accomplished.
Failure causes cosmetic a minor inconvenience where all the user tasks can still be accomplished.
why software has faults
There are a number of reasons why software has faults.
- It is difficult to collect the user requirements correctly
- It is difficult to specify the required software behavior correctly.
- It is difficult to implement software correctly
- It is difficult to modify software correctly.
Engineering Approaches
Forward Engineering:
-
The development starts with the user, and ends with the correct implementation.
-
Each activity is based on the output of previous activity
and produced correct outputs.
-
The end product matches its and meets the
Based on Feedback: ( Reverse Engineering)
- All the development steps, are subject to mistakes and ambiguities, leading to non-ideal results.
- To resolve this, each of the steps must be subject to check to ensure that it has been carried out properly,
- To provide an opportunity to fix any mistakes before proceeding .
Role of Specification
Specification plays a key role in testing.
For the testing, the correct behavior of the software must be known.
This implies the need for detailed specification or software
requirements.
For testing the code,Specification must describe both normal and error behavior.
Normal Behavior: is the expected output when the inputs are not in error.
Error Behavior: is the expected output when one or more inputs are in error or will produce an error in processing.
Testing in the Development Process
The software of any degree of complexity has three key characteristics:
- User Requirements, stating the needs of the software users.
- Functional specifications, stating what the software must do.
- A number of modules, that are integrated together to form the final system
Types of Testing
Unit Testing: An individual unit of Software is tested to make sure it works correctly.
Unit Testing
Integrated Testing: Two or more units are tested to make sure they interoperate correctly.
interoperate
交互操作
System Testing: The entire software system is tested as a whole to make sure it works correctly.
correctly
Acceptance Testing: the entire Software system is tested as a whole to make sure it meets the user’s needs, or solve’s the user’s problem, or passes a set of tests developed by the user
Acceptance
n. 接纳;赞同;容忍
Test Automation
Manual testing is slow, error-prone, and hard to repeat.
Unit tests are automation by default,
error-prone 有…倾向的
Features of Automation Testing:
Automated test execution,
Automated Collection of results,
Automated Evaluation of results, 评估
Automated Report generation,
Automated Measurement of test coverage,
Automated Generation of test data.
When to finish testing
From a budgetary point of view: when the time or budget allocated for testing has expired.
From an activity point of view: when the software has passed all of the planned tests.
From a risk management viewpoint : when the predefined failure rate meets the quality criteria.
adj. 预算的 budgetary
criteria n. 标准,条件