Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Software engineering  





2 See also  





3 References  














Edge case






Español
فارسی
עברית
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Anedge case is a problem or situation that occurs only at an extreme (maximum or minimum) operating parameter. For example, a stereo speaker might noticeably distort audio when played at maximum volume, even in the absence of any other extreme setting or condition.

An edge case can be expected or unexpected. In engineering, the process of planning for and gracefully addressing edge cases can be a significant task, and yet this task may be overlooked or underestimated.

Some common causes of edge cases[1] are:

Some basic examples of edge cases include:

Non-trivial edge cases can result in the failure of an object that is being engineered. They may not have been foreseen during the design phase, and they may not have been thought possible during normal use of the object. For this reason, attempts to formalize good engineering standards often include information about edge cases.

Software engineering[edit]

In programming, an edge case typically involves input values that require special handling in an algorithm behind a computer program. As a measure for validating the behavior of computer programs in such cases, unit tests are usually created; they are testing boundary conditions of an algorithm, functionormethod. A series of edge cases around each "boundary" can be used to give reasonable coverage and confidence using the assumption that if it behaves correctly at the edges, it should behave everywhere else.[2]

For example, a function that divides two numbers might be tested using both very large and very small numbers. This assumes that if it works for both ends of the magnitude spectrum, it should work correctly in between.[3]

Programmers may also create integration tests to address edge cases not covered by unit tests.[4] These tests cover cases which only appear when a system is tested as a whole. For example, while a unit test may ensure that a function correctly calculates a result, an integration test ensures that this function works properly when integrated with a database or an external API. These tests are particularly relevant with increasing system complexity in distributed systems, microservices, and Internet of things (IoT) devices. With microservices in particular, testing becomes a challenge as integration tests may not cover all microservice endpoints, resulting in uncovered edge cases.[5]

Other types of testing which relate to edge cases may include load testing and negative/failure testing. Both methods aim at expanding the test coverage of a system, reducing the likelihood of unexpected edge cases.

Intest-driven development, edge cases may be determined by system requirements and accounted for by tests, before writing code. Such documentation may go inside a product requirements document after discussions with stakeholders and other teams.

See also[edit]

References[edit]

  1. ^ Beram, Shehab (2023-08-03). "What is an edge case? Meaning, examples in software development". LogRocket Blog. Retrieved 2023-10-24.
  • ^ Zimmerman, Josh (2012). "Unit Testing" (PDF). Principles of Imperative Computation. cs.cmu.edu. Retrieved 2014-01-16.
  • ^ Cho, Shinil (October 2018), "The Fourier transform", Fourier Transform and Its Applications Using Microsoft EXCEL®, IOP Publishing, doi:10.1088/978-1-64327-286-3ch2, ISBN 978-1-64327-286-3, S2CID 210754571, retrieved 2022-02-17
  • ^ Khorikov, Vladimir (2019). Unit Testing: Principles, Practices, and Patterns. Manning Publications. pp. 188–190. ISBN 978-1617296277.
  • ^ Hossain, Md. Delowar; Sultana, Tangina; Akhter, Sharmen; Hossain, Md Imtiaz; Thu, Ngo Thien; Huynh, Luan N. T.; Lee, Ga-Won; Huh, Eui-Nam (2023-06-23). "The role of microservice approach in edge computing: Opportunities, challenges, and research directions". ICT Express. doi:10.1016/j.icte.2023.06.006. ISSN 2405-9595.

  • t
  • e

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Edge_case&oldid=1183933910"

    Categories: 
    Engineering concepts
    Usability
    Technical communication
    Software testing
    Engineering stubs
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles needing additional references from January 2014
    All articles needing additional references
    All stub articles
     



    This page was last edited on 7 November 2023, at 10:42 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki