the final
play

The Final Presentation 201011316 200913247 201011373 Index CTIP - PowerPoint PPT Presentation

The Final Presentation 201011316 200913247 201011373 Index CTIP System testing Static analysis Wrapping up Our CTIP Environment Our CTIP Environment Strength Gradle : wrapper allows use of


  1. The Final Presentation 201011316 김성엽 200913247 권순필 201011373 최지환

  2. Index • CTIP • System testing • Static analysis • Wrapping up

  3. Our CTIP Environment

  4. Our CTIP Environment • Strength – Gradle : wrapper allows use of Gradle without installation – Jenkins : supports integration well with variety of plug- ins – SonarQube : CheckStyle + PMD + FindBugs • Weakness – Gradle : no automatic build script generator – Redmine : embedded DB, port collision (80, 3306)

  5. Possible Improvements • Jenkins alert to ‘ Kakao Talk’ instead of email • Jenkins builds when pushed to Git • Make use of SonarQube web API

  6. System Testing • Tools used – Category-partition : TSLgenerator by UC Irvine and Oregon State University – Pair-wise : All Pairs by Sacrifice – Requirement management : JFeature

  7. CPT Result (this week) • 56 개중 50 개 성공

  8. Pairwise Testing (this week) • 16 개중 16 개 성공

  9. Brute-force Testing (this week) • 28 개 중 20 개 성공

  10. Jfeature & Redmine

  11. Comments about Jfeature • Works only in old version of Eclipse • Have to create Junit test cases • Import and export is tricky

  12. Static Analysis • SonarQube 7 axis of code quality – Architecture & design – Duplications – Unit tests coverage – Complexity – Potential Bugs – Coding Rules – Comments

  13. Basic metrics size

  14. Architecture & Design • Covers – File cycles • Minimal number of files cycles in a directory to identify all undesired dependencies – Files dependencies to cut – Package cycles • Minimal number of directory cycles to identify all undesired dependencies – Package dependencies to cut • This project has no directory nor package – Nothing measured on architecture & design

  15. Architecture & Design • Some suggestions – Divide classes into packages • UI • Database • Talkkid • Common – Message, Word

  16. Duplications • All duplications found in Interface.java

  17. Unit Test Coverage • SonarQube analyzes on – Coverage – Condition coverage – Line coverage – Unit test success/failure – Etc • This project has no unit test!

  18. Complexity • Overall complexity File Complexity Complexity / method Interface.java 149 8.8 Database.java 35 8 Parent.java 32 6.4 Child.java 12 4.4 User.java 8 4 Word.java 1 1 Message.java 1 1

  19. Potential Bugs & Coding Rules • Sonar rules + PMD + Check Style + Findbugs File Number of errors Interface.java 2,990 Database.java 498 Parent.java 303 Child.java 214 User.java 113 Word.java 110 Message.java 109

  20. Potential Bugs & Coding Rules • Critical errors Rule Count Exception handlers should preserve the original exception 18 Throwable.printStackTrace(...) should never be called 6 Fields in a "Serializable" class should either be transient or serializable 5 Dodgy - Redundant nullcheck of value known to be non-null 4 Empty If Stmt 3 Dodgy - Dead store to local variable 1 • Major errors Rule Count Require This 573 Law Of Demeter 95 Line Length 79 Empty Line Separator 75 Javadoc Method 68 Javadoc Variable 63

  21. Comments • Public methods have no documentation • Too few comments – Reader has to guess how the program works • Too many comments – May take more time in just reading the comments – Too many comments are needed  too complex or it doesn’t follow the coding standards

  22. Comments about SonarQube • Tons of minor errors! – Install SonarQube Eclipse plug-in and run local analysis from beginning to avoid errors • Not 100%! – Some errors missed – Some false alarms

  23. SV + SM • Fun because we didn’t do any coding • Our comments on errors were successfully resolved • Kakao Talk was easier than Redmine • They didn’t seemed to have read our powerpoint and video! – We had to make the build scripts and make changes on some minor settings for Gradle

  24. Improvements for Next Semester • Fix which programs to use and teach how to use them in practical lessons • Would be useful if the school provided a server • Would be useful to have more class time with SM

  25. Overall Comments • SV is one of the most unique experience as a senior in CSE • A lot to study  learned a lot • We could see how CTIP would be useful especially for a large-scale project • Importance of communications between teammates • Importance of testing in a software development • Importance of choosing the right tool

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend