Jump to content

Functional testing

From Wikipedia, the free encyclopedia

In software development, functional testing is a form of software testing that verifies whether a system meets its functional requirements.[1][2]

Generally, functional testing is black-box, meaning the internal program structure is ignored (unlike for white-box testing).[3]

Sometimes, functional testing is a quality assurance (QA) process.[4]

As a form of system testing, functional testing tests slices of functionality of the whole system. Despite similar naming, functional testing is not testing the code of a single function.

The concept of incorporating testing earlier in the delivery cycle is not restricted to functional testing.[5]

Types

[edit]

Functional testing includes but is not limited to:[3]

Sanity testing

[edit]
A sanity check or sanity test is a basic test to quickly evaluate whether a claim or the result of a calculation can possibly be true. It is a simple check to see if the produced material is rational (that the material's creator was thinking rationally, applying sanity). The point of a sanity test is to rule out certain classes of obviously false results, not to catch every possible error. A rule-of-thumb or back-of-the-envelope calculation may be checked to perform the test. The advantage of performing an initial sanity test is that of speedily evaluating basic function.

Smoke testing

[edit]
In computer programming and software testing, smoke testing (also confidence testing, sanity testing,[6] build verification test (BVT)[7][8][9] and build acceptance test) is preliminary testing or sanity testing to reveal simple failures severe enough to, for example, reject a prospective software release. Smoke tests are a subset of test cases that cover the most important functionality of a component or system, used to aid assessment of whether main functions of the software appear to work correctly.[6][7] When used to determine if a computer program should be subjected to further, more fine-grained testing, a smoke test may be called a pretest[10] or an intake test.[6] Alternatively, it is a set of tests run on each new build of a product to verify that the build is testable before the build is released into the hands of the test team.[11] In the DevOps paradigm, use of a build verification test step is one hallmark of the continuous integration maturity stage.[12]

Regression testing

[edit]
Regression testing (rarely, non-regression testing[13]) is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change.[14] If not, that would be called a regression.

Usability testing

[edit]
Usability testing is a technique used in user-centered interaction design to evaluate a product by testing it on users. This can be seen as an irreplaceable usability practice, since it gives direct input on how real users use the system.[15] It is more concerned with the design intuitiveness of the product and tested with users who have no prior exposure to it. Such testing is paramount to the success of an end product as a fully functioning application that creates confusion amongst its users will not last for long.[16] This is in contrast with usability inspection methods where experts use different methods to evaluate a user interface without involving users.

Six steps

[edit]

Functional testing typically involves six steps[citation needed]

  1. The identification of functions that the software is expected to perform
  2. The creation of input data based on the function's specifications
  3. The determination of output based on the function's specifications
  4. The execution of the test case
  5. The comparison of actual and expected outputs
  6. To check whether the application works as per the customer need

See also

[edit]

References

[edit]
  1. ^ ISO/IEC/IEEE 24765:2017, "Systems and software engineering — Vocabulary", International Organization for Standardization, Geneva, Switzerland, 2017.
  2. ^ ISO/IEC/IEEE International Standard - Systems and software engineering. ISO/IEC/IEEE 24765:2010(E). 2010. pp. vol., no., pp.1–418, 15 Dec. 2010.
  3. ^ a b Kaner, Falk, Nguyen. Testing Computer Software. Wiley Computer Publishing, 1999, p. 42. ISBN 0-471-35846-0.
  4. ^ Prasad, Dr. K.V.K.K. (2008) ISTQB Certification Study Guide, Wiley, ISBN 978-81-7722-711-6, p. vi
  5. ^ "Full Stack Testing". www.thoughtworks.com. Retrieved 2022-09-08.
  6. ^ a b c ISTQB® Glossary for the International Software Testing Qualification Board® software testing qualification scheme, ISTQB Glossary International Software Testing Qualification Board.
  7. ^ a b Dustin, Rashka, Paul. "Automated Software Testing -Introduction, Management, and Performance". Addison-Wesley 1999, p. 43-44. ISBN 0-201-43287-0.
  8. ^ Kaner, Cem; Bach, James; Pettichord, Bret (2002). Lessons Learned in Software Testing. Wiley Computer Publishing. p. 95. ISBN 0-471-08112-4.
  9. ^ "How to: Configure and Run Build Verification Tests (BVTs)". MSDN Library for Visual Studio 2005. Retrieved 2010-11-20.
  10. ^ 2013-03-20 ISTQB Terminologi for test av programvare, versjon 2.2 Glossary Working Party, International Software Testing Qualifications Board, Erik van Veenendaal (engelsk), Ernst von Düring (norsk) "intake test: A special instance of a smoke test to decide if the component or system is ready for detailed and further testing. An intake test is typically carried out at the start of the test execution phase. See also smoke test."
  11. ^ Samuel Menaker; Sheetal Guttigoli (14 December 2014). Managing Software Development. Samuel Menaker, Sheetal Guttigoli. p. 40. GGKEY:JH61NP21TXJ.
  12. ^ PowerShell Magazine, DevOps, Infrastructure as Code, and PowerShell DSC: The Introduction, by Ravikanth C, January 5, 2016
  13. ^ Pezzè, Mauro; Young, Michal (2008). Software testing and analysis: process, principles, and techniques. Wiley. Testing activities that focus on regression problems are called (non) regression testing. Usually "non" is omitted
  14. ^ Basu, Anirban (2015). Software Quality Assurance, Testing and Metrics. PHI Learning. ISBN 978-81-203-5068-7.
  15. ^ Nielsen, J. (1994). Usability Engineering, Academic Press Inc, p 165
  16. ^ Mejs, Monika (2019-06-27). "Usability Testing: the Key to Design Validation". Mood Up team - software house. Retrieved 2019-09-11.