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

the final
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

201011316 김성엽 200913247 권순필 201011373 최지환

The Final Presentation

slide-2
SLIDE 2

Index

  • CTIP
  • System testing
  • Static analysis
  • Wrapping up
slide-3
SLIDE 3

Our CTIP Environment

slide-4
SLIDE 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)

slide-5
SLIDE 5

Possible Improvements

  • Jenkins alert to ‘Kakao Talk’ instead of email
  • Jenkins builds when pushed to Git
  • Make use of SonarQube web API
slide-6
SLIDE 6

System Testing

  • Tools used

– Category-partition : TSLgenerator by UC Irvine and Oregon State University – Pair-wise : All Pairs by Sacrifice – Requirement management : JFeature

slide-7
SLIDE 7

CPT Result (this week)

  • 56개중 50개 성공
slide-8
SLIDE 8

Pairwise Testing (this week)

  • 16개중 16개 성공
slide-9
SLIDE 9

Brute-force Testing (this week)

  • 28개 중 20개 성공
slide-10
SLIDE 10

Jfeature & Redmine

slide-11
SLIDE 11

Comments about Jfeature

  • Works only in old version of Eclipse
  • Have to create Junit test cases
  • Import and export is tricky
slide-12
SLIDE 12

Static Analysis

  • SonarQube 7 axis of code quality

– Architecture & design – Duplications – Unit tests coverage – Complexity – Potential Bugs – Coding Rules – Comments

slide-13
SLIDE 13

Basic metrics

size

slide-14
SLIDE 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

slide-15
SLIDE 15

Architecture & Design

  • Some suggestions

– Divide classes into packages

  • UI
  • Database
  • Talkkid
  • Common – Message, Word
slide-16
SLIDE 16

Duplications

  • All duplications found in Interface.java
slide-17
SLIDE 17

Unit Test Coverage

  • SonarQube analyzes on

– Coverage – Condition coverage – Line coverage – Unit test success/failure – Etc

  • This project has no unit test!
slide-18
SLIDE 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

slide-19
SLIDE 19

Potential Bugs & Coding Rules

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

  • Sonar rules + PMD + Check Style + Findbugs
slide-20
SLIDE 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 Rule Count Require This 573 Law Of Demeter 95 Line Length 79 Empty Line Separator 75 Javadoc Method 68 Javadoc Variable 63

  • Major errors
slide-21
SLIDE 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

slide-22
SLIDE 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

slide-23
SLIDE 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

  • n some minor settings for Gradle
slide-24
SLIDE 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

slide-25
SLIDE 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