22
TIE-20200 Samuel Lahtinen TIE-20200 Ohjelmistojen suunnittelu Luento 14: Työkaluja Marko Leppänen, Samuel Lahtinen 1

TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

TIE-20200 Ohjelmistojen suunnittelu

Luento 14: Työkaluja

Marko Leppänen, Samuel Lahtinen

1

Page 2: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Ajankohtaista

• Harjoitustyön dedis 7.12. klo 06:00

Demoilusessiot samalla/seuraavalla viikolla

• Harjoitustyön neuvontapäivystystä• TO15-16 TE116 (Samuel), muulloinkin sopii tulla jos oon vaan

• Arvostelukristeeristöä

Page 3: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Ohjelmassa tänään

•Lyhyesti CI- & CD-työkaluista ja suunnittelusta

•Pikakertaus kurssin aihealueesta

•Tentin rakennetta, kysymyksien tyyliä

•Sananen harjoitustyön arvioinnista jne.

Page 4: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Nykyinen näkemys prosessista

CI

Versionhallinta

Deploy

BacklogKehitystyö

Staging/QA

Palaute ja mittaukset

DEV

Page 5: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

CD-putkea

Page 6: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Tavoite

• Continuous Deployment

• Nopea arvonlisä asiakkaalle• JIT

• Nopea palaute

• Aina ehjä build

• Hyötyjä saatavissa vaikkei asennuksia tehdäkään jatkuvasti

• A/B –testaus, käyttäjän seuraaminen?

Page 7: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Oikean maailman esimerkki

Page 8: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Työkaluja eri vaiheisiin

• Vaatimusten kerääminen ja hallinta

• Versionhallinta

• Kehitystyökalut

• Backlogin hallinta

• Koodikatselmointi

• Bugiseuranta

• Buildaus

• Testaus• Yksikkötestaus

• Käyttöliittymätestaus

• Hyväksymistestaus

• Laatutestaus

• Suorituskykytestaus

• CI

• Deployment

• Kommunikaatio

• Virtualisointi

Page 9: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Miksi työkaluja ja automaatiota?

• Automaatio nopeuttaa toistuvia tehtäviä

• Vähemmän mahdollisuuksia tehdä inhimillisiä virheitä

• Kunnon työkaluputken pystyttäminen ei ole triviaalia• Yleisesti 2 vko setup –aika

• Matala truck number

• Lean SW & DevOps

Page 10: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Miten valita työkalut?

• Tiettyjen toimittajien työkalupinot (esim. Atlassian)• Integraatio sujuvaa

• Tuttuus aina plussaa

• Mitä muut ovat kokeneet hyväksi• Blogit

• Yritysten väliset koulutustilaisuudet

Page 11: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Domain Requireme

nts

Elicitation

Version

Control

Artifact

Repository

Backlog

Management

Provisioning

&

Environments

Build Continuous

Integration

Unit

Testing

UI

Testing

Bug

Tracking

Quality &

Performance

Code

Review

Acceptance

Testing

Deployment Feedback

Consulting / IT

Products

Consulting / IT

Products

Consulting / IT

Services

Telecom

Products

Telecom

Products

Telecom

Products

Web Platform

Development

Platform

Mobile Games

Mobile Games

Mobile Games

B2B Services

B2B Services

Industrial

Automation

Embedded

Systems

UI Framework

Page 12: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Kehitystyökalut

• Vaatimukset: Jira, Trello

• Versionhallinta: Git, SVN, Mercurial

• Kommunikaatio: IRC, Slack, Skype, Hipchat, Github, Flowdock

• Koodikatselmointi: Gerrit

Page 13: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Reaalimaailman dokumentointiputki

Page 14: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Staattinen analyysi ja dokumentointi

• Javadocs

• Schemaspy

• Swagger

• Checkmarx, Findbugs, SonarQube, Clang, Bullseye, Coverity

Page 15: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

CI/testaus

• Jenkins, TeamCity, CircleCI, Bamboo, Buildbot

• Robot framework

• Chai, Expect.js, Mockito, Jasmine, Cucumber, Mocha

• Junit

• Load tests: Gatling, flood.io

• Monitorointi: New Relic, Zabbix, Pingdom, AWS Cloudwatch

• Selenium, Capybara, Browserstack, Webdriver

Page 16: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Virtualisointi/asennus/IT infra

• Virtuaaliympäristöjä: Virtualbox, Vmware, Docker

• Pilviympäristö: AWS, Rackspace

• konfiguraationhallinta: Chef/Puppet

• Servereiden elinkaarenhallinta: Foreman

• Etäserveriautomaatio: Capistrano, Rake

• Mobiilialustat: Hockeyapp

Page 17: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Analytiikka

• SiteCatalyst

• Snoobi

• Clickview

• A/B testaus: Optimizely

• Splunk

Page 18: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Työkalujen vertailu

• Työkalu-/teknologiavalinnat voivat olla myös suunnittelu

• Teknologiavertailu• Toistetaan esim. vuoden välein

• Dokumentoi samalla päätöksen syyt

Page 19: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Vertailumatriisi

Page 20: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Työkalujen heikkouksia

• Jotkut työkalut vaativat tiettyjä muita osia työkaluketjusta

• Kieliriippuvuus

• Saattaa pakottaa tietyt ajatusmallit

• Vendor lock-in

• Osaamisen puute

Page 21: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Suunnittelu vs. CI/CD

• Ohjaa myös ohjelman rakennetta, pienempiä selkeitä osakokonaisuuksia

• Päivitykset rakenteeseen, refaktoroinnit

• Testattavuuden korostuminen, rajapinnat• Tilattomuutta, sama toiminta samoilla parametreilla

• Mikropalvelutyyppiset arkkitehtuuriratkaisut

Page 22: TIE-20200 Ohjelmistojen suunnittelu - Tiedekunnatohjsuun/luennot/2015/luento14_tyokalut.pdf · 2015. 12. 1. · Integration Unit Testing UI Testing Bug Tracking Quality & Performance

TIE-20200 Samuel Lahtinen

Loppusanat

• Työkalujen käyttö, konfigurointi, yhdistely tullut lähemmäksi ohjelmiston

kehitystyötä

• Dev.ops. CI/CD-putken työkalut hallitseville tilausta työelämässä

Dedis työlle 7.12. klo 06:00.

Dokumenttipohja ja palautusohje löytyvät

täältä:

http://www.cs.tut.fi/~ohjsuun/harjoitustyo.sh

tml