SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Introduzione a JUnit
con integrazione in ARCHIBUS
Davide Fella - 31/03/2017
● Software Testing
● JUnit
● SoapUI
● Code coverage (EclEmma)
Summary
Software Testing
“
Software Testing
“If debugging is the process of removing software bugs,
then programming must be the process of putting them in”
(Dijkstra )
“It's not a bug - it's an undocumented feature.”
(Anonymous )
● A primary purpose of testing is to detect software failures so that defects
may be discovered and corrected.
● Software testing can also provide an objective, independent view of the
software to allow the business to appreciate and understand the risks of
implementation.
Software Testing
● Writing (good) tests is expensive and it’s not easy because of:
○ Deadlines
○ Resources
○ Business Area
○ Knowledge (technologies, domain..)
Software Testing
..So, why is it useful to write test code?
Software Testing
● Benefits are:
○ Requirement
○ Software usability
○ System responds correctly to all kinds of inputs and performs its
functions within an acceptable time
○ Regression test
Software Testing
● But mostly..money saving!
Software Testing
Software Testing
TestingCup Polish Championship in Software
● Testing levels are:
○ Unit
○ Integration
○ Component interface
○ System
Software Testing
● Some type testing are:
○ Installation
○ Regression
○ Beta
○ Functional
Software Testing
○ Destructive
○ Performance
○ A/B
○ Security
● Testing models are:
○ Traditional waterfall.
○ Agile or Extreme development, unit tests are written first
■ Test-driven development
○ Top-down or bottom-up.
Software Testing
● Mocking is the creation of fake objects which helps the unit testing process.
Software Testing
● You should not test:
○ Other framework libraries
○ The database
○ Really trivial code
○ Code that has non deterministic results
○ Code that deals only with UI
Software Testing - Guidelines
● You should test:
○ Business logic
○ Core code that is accessed by a lot of other modules
○ Code that changes by multiple different developers (often to
accommodate new requirements)
Software Testing - Guidelines
JUnit
● It’s a unit testing framework for the Java programming language
http://junit.org/junit4/
● A research survey performed in 2013 across 10,000 Java projects hosted on
GitHub found that JUnit was the most commonly included external library.
Each library was used by 30.7% of project
● Current version: 5
JUnit
Some features are:
● Most Java IDEs (i.e. Eclipse, IntelliJ IDEA, NetBeans) have explicit support for
JUnit
● Automated test
● Assertion based
● Test case = a test class composed by one or more test methods
JUnit
● Each single test method:
○ has the purpose of verifying the operation of our code in a specific case
(with reference to a specific dataset)
○ contains an invocation of our software method
○ has the purpose of comparing results; this comparison is realized by an
assertion
JUnit
@BeforeClass
public static void setUpClass() throws Exception {
// Code executed before the first test method
}
@Before
public void setUp() throws Exception {
// Code executed before each test
}
@Test
public void testOneThing() {
// Code that tests one thing
}
JUnit: some annotations
@Test
public void testAnotherThing() {
// Code that tests another thing
}
@After
public void tearDown() throws Exception {
// Code executed after each test
}
@AfterClass
public static void tearDownClass() throws Exception {
// Code executed after the last test method
}
JUnit: some annotations
JUnit + ARCHIBUS
● JUnit in ARCHIBUS:
○ ConfiguredDataSourceTestBase.java
○ AllTests.java
○ MyTestClass.java
JUnit + ARCHIBUS
● ConfiguredDataSourceTestBase.java
○ Archibus startup with basic context
○ Login Information
○ Configuration
JUnit + ARCHIBUS
JUnit + ARCHIBUS
JUnit + ARCHIBUS
● AllTests.java
○ Extends junit.framework.TestCase (Asserts Class, setUp, tearDown..)
○ Launcher test classes
JUnit + ARCHIBUS
JUnit + ARCHIBUS
● MyTestClass.java
○ Unit tests
○ Utility
○ SetUp
○ Debug mode
JUnit + ARCHIBUS
JUnit + ARCHIBUS
JUnit + ARCHIBUS + SoapUI
● SoapUI is an open-source web service testing application for service-oriented
architectures (SOA) and representational state transfers (REST)
● ..web service inspection, invoking, development, simulation and mocking,
functional testing, load and compliance testing.
● Commercial version vs Free version
SoapUI
SoapUI
SoapUI
EclEmma + ARCHIBUS
● Code coverage is a measure used to describe the degree to which the source
code of a program is executed when a particular test suite runs
● Fault injection (stress test) may be necessary to ensure that all conditions
and branches of exception handling code have adequate coverage during
testing.
Code coverage
● Many different metrics can be used to calculate code coverage:
○ Function coverage - Has each function in the program been called?
○ Statement coverage - Has each statement in the program been executed?
○ Branch coverage - Has each branch of each control structure been executed?
○ Condition coverage - Has each Boolean sub-expression evaluated both to true and false?
○ Loop coverage - Has every possible loop been executed?
○ Path coverage – Has every possible route through a given part of the code been executed?
Code coverage
● Full path coverage is usually impractical or impossible:
○ Any module with a succession of n decisions in it can have up to 2^n paths
○ Loop constructs can result in an infinite number of paths
○ Many paths may also be infeasible, in that there is no input to the program under
test
Code coverage
● EclEmma is a free Java code coverage tool, it brings code coverage analysis
directly into the Eclipse workbench
● The Eclipse integration has its focus on supporting the individual developer in
an highly interactive way
EclEmma
● Most important analysis features are:
○ Coverage overview: lists coverage summaries for your Java projects, allowing
drill-down to method level.
○ Source highlighting: The result of a coverage session is also directly visible in the
Java source editors.
○ Different counters, Multiple coverage sessions, Merge Sessions
EclEmma
Bug Types (Bonus)
▷ Heisenbug: “A computer bug that disappears or alters its characteristics
when an attempt is made to study it.”
▷ Higgs-Bugson: “A hypothetical bug predicted to exist based on a small
number of possibly related event”
Bug Types
▷ Loch Ness Monster Bug: “I've started searching Loch Ness Monster bug for
anything not reproducible or only sighted by one person.”
▷ Hindenbug: “A catastrophic data destroying bug”.
● Also related to Counterbug (a bug you present when presented with a bug caused by the
person presenting the bug) and Bloombug (a bug that accidentally generates money).
Bug Types
..Grazie per l’attenzione!!

Mais conteúdo relacionado

Mais procurados

Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Jacinto Limjap
 

Mais procurados (20)

Testing Node.js.pdf
Testing Node.js.pdfTesting Node.js.pdf
Testing Node.js.pdf
 
Nunit
NunitNunit
Nunit
 
AspectMock
AspectMockAspectMock
AspectMock
 
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
 
Intro to junit
Intro to junitIntro to junit
Intro to junit
 
X unit testing framework with c# and vs code
X unit testing framework with c# and vs codeX unit testing framework with c# and vs code
X unit testing framework with c# and vs code
 
ATDD Using Robot Framework
ATDD Using Robot FrameworkATDD Using Robot Framework
ATDD Using Robot Framework
 
RoboCon 2018: How did we get here? Where do we go next?
RoboCon 2018: How did we get here? Where do we go next?RoboCon 2018: How did we get here? Where do we go next?
RoboCon 2018: How did we get here? Where do we go next?
 
Hidden Dragons of CGO
Hidden Dragons of CGOHidden Dragons of CGO
Hidden Dragons of CGO
 
NUnit Features Presentation
NUnit Features PresentationNUnit Features Presentation
NUnit Features Presentation
 
Automation for developers
Automation for developersAutomation for developers
Automation for developers
 
Workshop: Unit Testing in Python
Workshop: Unit Testing in PythonWorkshop: Unit Testing in Python
Workshop: Unit Testing in Python
 
Unit testing with Qt test
Unit testing with Qt testUnit testing with Qt test
Unit testing with Qt test
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
 
What is JUnit? | Edureka
What is JUnit? | EdurekaWhat is JUnit? | Edureka
What is JUnit? | Edureka
 
A journey with Target Platforms
A journey with Target PlatformsA journey with Target Platforms
A journey with Target Platforms
 
Simple Unit Testing With Netbeans 6.1
Simple Unit Testing With Netbeans 6.1Simple Unit Testing With Netbeans 6.1
Simple Unit Testing With Netbeans 6.1
 
Making Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF UsableMaking Strongly-typed NETCONF Usable
Making Strongly-typed NETCONF Usable
 
Automatic Test 2019-07-25
Automatic Test 2019-07-25Automatic Test 2019-07-25
Automatic Test 2019-07-25
 
Unit testing
Unit testingUnit testing
Unit testing
 

Semelhante a Introduzione a junit + integrazione con archibus

Testing & continuous delivery
Testing & continuous deliveryTesting & continuous delivery
Testing & continuous delivery
Nelson Melina
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 
Automation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional TesterAutomation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional Tester
VijayChowthri Nagaprakasham
 

Semelhante a Introduzione a junit + integrazione con archibus (20)

Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Testing & continuous delivery
Testing & continuous deliveryTesting & continuous delivery
Testing & continuous delivery
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 
Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with Coverity
 
Code coverage
Code coverageCode coverage
Code coverage
 
Innovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best PracticesInnovation Generation - The Mobile Meetup: Android Best Practices
Innovation Generation - The Mobile Meetup: Android Best Practices
 
Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...
Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...
Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...
 
Quality for developers
Quality for developersQuality for developers
Quality for developers
 
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentation
 
Test automation - Building effective solutions
Test automation - Building effective solutionsTest automation - Building effective solutions
Test automation - Building effective solutions
 
A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScript
 
Android Test Driven Development & Android Unit Testing
Android Test Driven Development & Android Unit TestingAndroid Test Driven Development & Android Unit Testing
Android Test Driven Development & Android Unit Testing
 
Automation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional TesterAutomation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional Tester
 
Automation testing
Automation testingAutomation testing
Automation testing
 
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Introduzione a junit + integrazione con archibus

  • 1. Introduzione a JUnit con integrazione in ARCHIBUS Davide Fella - 31/03/2017
  • 2. ● Software Testing ● JUnit ● SoapUI ● Code coverage (EclEmma) Summary
  • 4. “ Software Testing “If debugging is the process of removing software bugs, then programming must be the process of putting them in” (Dijkstra ) “It's not a bug - it's an undocumented feature.” (Anonymous )
  • 5. ● A primary purpose of testing is to detect software failures so that defects may be discovered and corrected. ● Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of implementation. Software Testing
  • 6. ● Writing (good) tests is expensive and it’s not easy because of: ○ Deadlines ○ Resources ○ Business Area ○ Knowledge (technologies, domain..) Software Testing
  • 7. ..So, why is it useful to write test code? Software Testing
  • 8. ● Benefits are: ○ Requirement ○ Software usability ○ System responds correctly to all kinds of inputs and performs its functions within an acceptable time ○ Regression test Software Testing
  • 9. ● But mostly..money saving! Software Testing
  • 10. Software Testing TestingCup Polish Championship in Software
  • 11. ● Testing levels are: ○ Unit ○ Integration ○ Component interface ○ System Software Testing
  • 12. ● Some type testing are: ○ Installation ○ Regression ○ Beta ○ Functional Software Testing ○ Destructive ○ Performance ○ A/B ○ Security
  • 13. ● Testing models are: ○ Traditional waterfall. ○ Agile or Extreme development, unit tests are written first ■ Test-driven development ○ Top-down or bottom-up. Software Testing
  • 14. ● Mocking is the creation of fake objects which helps the unit testing process. Software Testing
  • 15. ● You should not test: ○ Other framework libraries ○ The database ○ Really trivial code ○ Code that has non deterministic results ○ Code that deals only with UI Software Testing - Guidelines
  • 16. ● You should test: ○ Business logic ○ Core code that is accessed by a lot of other modules ○ Code that changes by multiple different developers (often to accommodate new requirements) Software Testing - Guidelines
  • 17. JUnit
  • 18. ● It’s a unit testing framework for the Java programming language http://junit.org/junit4/ ● A research survey performed in 2013 across 10,000 Java projects hosted on GitHub found that JUnit was the most commonly included external library. Each library was used by 30.7% of project ● Current version: 5 JUnit
  • 19. Some features are: ● Most Java IDEs (i.e. Eclipse, IntelliJ IDEA, NetBeans) have explicit support for JUnit ● Automated test ● Assertion based ● Test case = a test class composed by one or more test methods JUnit
  • 20. ● Each single test method: ○ has the purpose of verifying the operation of our code in a specific case (with reference to a specific dataset) ○ contains an invocation of our software method ○ has the purpose of comparing results; this comparison is realized by an assertion JUnit
  • 21. @BeforeClass public static void setUpClass() throws Exception { // Code executed before the first test method } @Before public void setUp() throws Exception { // Code executed before each test } @Test public void testOneThing() { // Code that tests one thing } JUnit: some annotations
  • 22. @Test public void testAnotherThing() { // Code that tests another thing } @After public void tearDown() throws Exception { // Code executed after each test } @AfterClass public static void tearDownClass() throws Exception { // Code executed after the last test method } JUnit: some annotations
  • 24. ● JUnit in ARCHIBUS: ○ ConfiguredDataSourceTestBase.java ○ AllTests.java ○ MyTestClass.java JUnit + ARCHIBUS
  • 25. ● ConfiguredDataSourceTestBase.java ○ Archibus startup with basic context ○ Login Information ○ Configuration JUnit + ARCHIBUS
  • 28. ● AllTests.java ○ Extends junit.framework.TestCase (Asserts Class, setUp, tearDown..) ○ Launcher test classes JUnit + ARCHIBUS
  • 30. ● MyTestClass.java ○ Unit tests ○ Utility ○ SetUp ○ Debug mode JUnit + ARCHIBUS
  • 32. JUnit + ARCHIBUS + SoapUI
  • 33. ● SoapUI is an open-source web service testing application for service-oriented architectures (SOA) and representational state transfers (REST) ● ..web service inspection, invoking, development, simulation and mocking, functional testing, load and compliance testing. ● Commercial version vs Free version SoapUI
  • 37. ● Code coverage is a measure used to describe the degree to which the source code of a program is executed when a particular test suite runs ● Fault injection (stress test) may be necessary to ensure that all conditions and branches of exception handling code have adequate coverage during testing. Code coverage
  • 38. ● Many different metrics can be used to calculate code coverage: ○ Function coverage - Has each function in the program been called? ○ Statement coverage - Has each statement in the program been executed? ○ Branch coverage - Has each branch of each control structure been executed? ○ Condition coverage - Has each Boolean sub-expression evaluated both to true and false? ○ Loop coverage - Has every possible loop been executed? ○ Path coverage – Has every possible route through a given part of the code been executed? Code coverage
  • 39. ● Full path coverage is usually impractical or impossible: ○ Any module with a succession of n decisions in it can have up to 2^n paths ○ Loop constructs can result in an infinite number of paths ○ Many paths may also be infeasible, in that there is no input to the program under test Code coverage
  • 40. ● EclEmma is a free Java code coverage tool, it brings code coverage analysis directly into the Eclipse workbench ● The Eclipse integration has its focus on supporting the individual developer in an highly interactive way EclEmma
  • 41. ● Most important analysis features are: ○ Coverage overview: lists coverage summaries for your Java projects, allowing drill-down to method level. ○ Source highlighting: The result of a coverage session is also directly visible in the Java source editors. ○ Different counters, Multiple coverage sessions, Merge Sessions EclEmma
  • 43. ▷ Heisenbug: “A computer bug that disappears or alters its characteristics when an attempt is made to study it.” ▷ Higgs-Bugson: “A hypothetical bug predicted to exist based on a small number of possibly related event” Bug Types
  • 44. ▷ Loch Ness Monster Bug: “I've started searching Loch Ness Monster bug for anything not reproducible or only sighted by one person.” ▷ Hindenbug: “A catastrophic data destroying bug”. ● Also related to Counterbug (a bug you present when presented with a bug caused by the person presenting the bug) and Bloombug (a bug that accidentally generates money). Bug Types