Dynamic testing (or dynamic analysis) is a term used in
software engineering
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
to describe the testing of the dynamic behavior of code.
That is, dynamic analysis refers to the examination of the physical response from the system to variables that are not constant and change with time. In dynamic testing the software must actually be compiled and run. It involves working with the software, giving input values and checking if the output is as expected by executing specific
test case
In software engineering, a test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise ...
s which can be done manually or with the use of an automated process. This is in contrast to
static testing
In computer science, static program analysis (or static analysis) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution.
The term ...
.
Unit tests
In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&m ...
,
integration tests,
system tests and
acceptance tests
In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met. It may involve chemical tests, physical tests, or performance tests.
In system ...
utilize dynamic testing. Usability tests involving a mock version made in paper or cardboard can be classified as static tests when taking into account that no program has been executed; or, as dynamic ones when considering the interaction between users and such mock version is effectively the most basic form of a prototype.
Main procedure
The process and function of dynamic testing in software development, dynamic testing can be divided into unit testing, integration testing, system testing, acceptance testing and finally regression testing.
Unit testing is a test that focuses on the correctness of the basic components of a software. Unit testing falls into the category of white-box testing. In the entire quality inspection system, unit testing needs to be completed by the product group, and then the software is handed over to the testing department.
Integration testing is used to detect if the interfaces between the various units are properly connected during the integration process of the entire software.
Testing a software system that has completed integration is called a system test, and the purpose of the test is to verify that the correctness and performance of the software system meet the requirements specified in its specifications. Testers should follow the established test plan. When testing the robustness and ease of use of the software, its input, output, and other dynamic operational behaviour should be compared to the software specifications. If the
software specification is incomplete, the system test is more dependent on the tester's work experience and judgment, such a test is not sufficient. The system test is
Black-box testing
Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, ...
.
This is the final test before the software is put into use. It is the buyer's trial process of the software. In the actual work of the company, it is usually implemented by asking the customer to try or release the beta version of the software. The acceptance test is
Black-box testing
Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, ...
.
The purpose of regression testing is to verify and modify the acceptance test results in the
software maintenance
Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes.
A common perception of maintenance is that it merely involves fixing defects. H ...
phase. In practical applications, the handling of customer complaints is an embodiment of regression testing.
Evaluation
{{Prose, section, date=April 2019
Advantages
* Dynamic testing could identify the weak areas in the
runtime environment
In computer programming, a runtime system or runtime environment is a sub-system that exists both in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile ...
.
* Dynamic testing supports application analysis even if the tester does not have an actual code.
* Dynamic testing could identify some vulnerabilities that are difficult to find by
static testing
In computer science, static program analysis (or static analysis) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution.
The term ...
.
* Dynamic testing also could verify the correctness of
static testing
In computer science, static program analysis (or static analysis) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution.
The term ...
results.
* Dynamic testing could be applied to any application.
Disadvantages
# Automated tools may give the wrong security, such as check everything.
# Automated tools can generate false positives and false negatives.
# Finding trained dynamic test professionals is not easy.
# Dynamic testing is hard to track down the vulnerabilities in the code, and it takes longer to fix the problem. Therefore, fixing bugs becomes expensive.
See also
*
Dynamic load testing
*
Dynamic program analysis
Dynamic program analysis is the analysis of computer software that is performed by executing programs on a real or virtual processor. For dynamic program analysis to be effective, the target program must be executed with sufficient test inputs ...
*
Time partition testing, a model-based testing methodology for the reactive test of dynamical or control systems.
*
Daikon
Daikon or mooli, '' Raphanus sativus'' var. ''longipinnatus,'' is a mild-flavored winter radish usually characterized by fast-growing leaves and a long, white, root. Originally native to continental East Asia, daikon is harvested and consum ...
, a dynamic invariant generator.
References
* G.J. Myers, ''The Art of Software Testing'',
John Wiley and Sons
John Wiley & Sons, Inc., commonly known as Wiley (), is an American multinational publishing company founded in 1807 that focuses on academic publishing and instructional materials. The company produces books, journals, and encyclopedias, in ...
, New York, New York, 1979.
External links
Dynamic software testing of MPI applications with umpire
Software testing
Mobile security
Software development
Software development process