web-sovellusten testaus - tunitie21201/s2011/luennot/web-sovellusten testaus.pdf ·...

22
Web-sovellusten testaus

Upload: others

Post on 17-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Web-sovellusten testaus

Page 2: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Testityypit web-sovellukselle

Toiminnallisuus

Yhteensopivuustestaus

Käytettävyys

Suorituskykytestaus

Tietoturvatestaus

Rajapintojen testaaminen

Page 3: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

GET -pyyntö

REQUEST:

GET http://www.cybercom.com:80/ HTTP/1.1

Host: www.cybercom.com

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

RESPONSE:

HTTP/1.1 200 OK

Date: Fri, 25 Nov 2011 06:37:24 GMT

Server: Microsoft-IIS/6.0

X-Powered-By: ASP.NET

X-AspNet-Version: 2.0.50727

Cache-Control: private

Expires: Sun, 27 Nov 2011 06:37:24 GMT

Content-Type: text/html; charset=utf-8

Content-length: 19392

Page 4: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

POST - pyyntö

REQUEST

POST http://www.cybercom.com:80/Search/?quicksearchquery=document HTTP/1.1

Host: www.cybercom.com

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Referer: http://www.cybercom.com/Search/?quicksearchquery=document

Cookie: sifrFetch=true; __utma=80957384.226035340.1322462249.1322462249.1322462249.1;

__utmb=80957384.6.10.1322462249; __utmc=80957384;

__utmz=80957384.1322462249.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);

__ptca=80957384.G1MJx4DIopNw.1322455050.1322455050.1322455050.1; __ptv_3rT7eN=G1MJx4DIopNw;

__pti_3rT7eN=G1MJx4DIopNw; __ptcc=1; __ptcs=80957384.6.10.1322455050;

__ptcz=80957384.1322455050.1.0.ptmcsr=(direct)|ptmcmd=(none)|ptmccn=(direct)

Content-Type: application/x-www-form-urlencoded

Content-length: 24372

FormHolder%24ctl00%24SearchText=document&ctl00%24FormHolder%24PageHolder%24WideContentHolder%24C

enterContentHolder%24MainBodyHolder%24SearchText=document&ctl00%24FormHolder%24PageHolder%24Wide

ContentHolder%24CenterContentHolder%24MainBodyHolder%24SearchButton=Search

Page 5: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Muita HTTP - pyyntöjä

OPTIONS

– Palauttaa

HEAD

– Palauttaa vain vastauksen headerin

PUT

– Lataa palvelimelle resursseja

DELETE

– Tekee palvelimelle resurssin poiston

TRACE

– Palauttaa alkuperäisen pyynnön

CONNECT

– pyydetään yhteyttä, joka jää päälle (esim. ssl -tunnelointi)

Page 6: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Web sivuilta yleisesti testattavia

asioita

Navigointi

– Back – napin käyttö

Sivun päivitys

Javascript

Usean selaininstanssin avaaminen

HTML koodin validointi

– CSS –tyylisivujen validointi

Syötteet

Evästeet ja niiden hallinta

Page 7: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Web sivuilta yleisesti testattavia

asioita

Linkkien tarkistus

– Tähän löytyy ilmaisia ja maksullisia työkaluja

– Osa regressiotestausta

Sivuston visuaalisen ilmeen tarkistus

– Zoomaus

– Eri näytön resoluutiot

– Eri selaimet

Sivuston sivujen tulostaminen

Selainten liitännäisten käyttö

– Flash/Flex, Silverlight, Java appletit ym.

– Videoiden näyttäminen

Lokalisointi

Company presentation

Page 8: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Yhteensopivuus eri selaimilla

2011 Internet

Explorer Firefox Chrome Safari Opera

October 21.7 % 38.7 % 32.3 % 4.2 % 2.4 %

September 22.9 % 39.7 % 30.5 % 4.0 % 2.2 %

August 22.4 % 40.6 % 30.3 % 3.8 % 2.3 %

July 22.0 % 42.0 % 29.4 % 3.6 % 2.4 %

June 23.2 % 42.2 % 27.9 % 3.7 % 2.4 %

May 24.9 % 42.4 % 25.9 % 4.0 % 2.4 %

April 24.3 % 42.9 % 25.6 % 4.1 % 2.6 %

March 25.8 % 42.2 % 25.0 % 4.0 % 2.5 %

February 26.5 % 42.4 % 24.1 % 4.1 % 2.5 %

January 26.6 % 42.8 % 23.8 % 4.0 % 2.5 %

Lähde: http://www.w3schools.com/browsers/browsers_stats.asp

Page 9: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Syötteiden tarkistus / testaus

Ei voida olettaa, että sovelluksen käyttäjä käyttää sovellusta ’oikein’

Web-sovelluksen käyttäjä voi syöttää sovellukselle mitä tahansa

syötteitä tahattomasti tai tahallaan

Kehittäjät tekevät usein oletuksia, miten sovellusta tulisi käyttää ja mitä

syötteitä sille tulee syöttää

Tärkeä osa sovelluksen tietoturvaa

Kaikki sovellukseen tulevat syötteet tarkistettava!

Page 10: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Väärät syötteet – negatiivinen

testaus

Merkkijonot

– Pitkät syötteet

– Erikoismerkit

– Html/javascript –syöttö

– SQL

– Välilyönnit

– …

Päivämäärät – Eri formaateissa

– Väärät päivät (31.2)

– Kesäaika

– …

Numerot – Negatiiviset luvut

– Suuret luvut

– 0

– Liukuluvut

– …

Page 11: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Käytettävyys

Mikä on sovelluksen kohderyhmä?

Käytön ja navigaation logiikka

– ’3 klikkauksen sääntö’

Visuaalinen ilme ja yhdenmukaisuus

Ohjeistus

Sivujen latausnopeus

Sivujen raskaus (sivukoko, javascriptin käyttö)

Page 12: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Web-testauksen työkaluja

Selenium

– Web – testauksen automatisointiin

– Nauhoitusominaisuus

– Testit ajetaan suoraan selaimella

– Useita selainympäristöjä

Linkkien tarkistajat (http://validator.w3.org/checklink, Xenu…)

Web crawlers

Validaattorit (HTML/CSS)

Page 13: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Tietoturvan testaaminen

Tietomurrot ovat nykyisin arkipäivää

– Uutisia murroista tulee lähes päivittäin, myös Suomessa

Käyttäjät eivät ole luotettavia

– Kaikki syötteet on tarkistettava

Joitakin sovelluksen haavoittuvuuksia

– SQL-injektiot

– Cross site scripting (XSS)

– Cross Site Request Forgery (CSRF)

OWASP: https://www.owasp.org/index.php/Main_Page

– Testing guide:

https://www.owasp.org/index.php/Category:OWASP_Testing_Project

Page 14: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Tietoturvan testaaminen

Autentikointi

– Salasanan vahvuus ja tilin lukitseminen

Ei hyväksytä kaikkia salasanoja

Tilin lukitseminen esim. 10 virheellisen kirjautumisyrityksen jälkeen (tässä 2

puolta)

– Kirjautumisen vanheneminen

Unohtuiko salasana? – ominaisuus

Käyttäjäprofiilit

– Auktorisointi – pääsy ainoastaan sovelluksen sallittuihin osiin ja tietoihin

Cookieiden käyttö

– Ei tallenneta vaarallista tietoa keksiin

– Cookien elinaika

Page 15: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Tietoturvatestauksen työkaluja

Proxy – työkalut

– WebScarab, Paros

– Burb Suite

Skannerit

– nmap

– Nikto/Wikto

– Burb Suite

– W3af

– Acunetix, HP WebInspect (kaupallisia)

Page 16: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Suorituskyvyn testaaminen

Tavoitteet

– Suorituskykyvaatimusten verifiointi.

Suorituskyvyn selvittäminen.

Kuormituksen siedon selvittäminen.

– Varmistaa, että käyttöönotto onnistuu suunnitellusti – että palvelu

ylipäätään toimii.

– Pullonkaulojen tunnistaminen.

– Selvittää laitteistotarve – riittävyys nyt ja lähitulevaisuudessa.

Page 17: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Suorituskykytestauksen tyyppejä

Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin, joista

voidaan asiakkaan tarpeiden mukaan valita sopivimmat

Testityyppejä

– Kuormitustestaus (Load testing)

Testataan sovelluksen toimintaa määritettyjen raja-arvojen puitteissa, sekä

testataan laitteiston kokoonpanon riittävyys

– Stressitestaus (Stress testing)

Testataan, miten sovellus käyttäytyy äärimmäisissä kuormitustilanteissa

– Kestävyystestaus (Endurance testing)

Testataan sovelluksen käyttäytymistä pitkäkestoisen kuormituksen aikana

– Skaalautuvuuden testaus (Scalability testing)

Testataan sovelluksen skaalautuvuusominaisuuksia

– Volyymitestaus (Volume testing)

Testataan toimivuutta erityisesti suurilla datamäärillä

Page 18: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Suorituskykytestauksen

suunnittelu

Suorituskykyvaatimukset

– Paljonko tapahtumia ruuhkaisimpana aikana?

– Keskimääräinen vierailuaika ja sivupyyntöjen määrä

– Mahdolliset kuormituspiikit?

Testauksessa käytettävien käyttötapausten mietintä

– Sovelluksesta riippuen 3 – 6 keskeisintä käyttötapausta

– Mahdollisimman realistisen käytön simulointi

– Käyttötapausten painotus

Palvelinresurssien monitorointi

– CPU – kuorma

– Muistinkäyttö

– Levynkäyttö

– Verkkoliikenne

Company presentation

Page 19: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Suorituskykytestauksen

suunnittelu

Suorituskykytestauksen testiskriptien luonti

– Nauhoitetaan virtuaalisille käyttäjille valitut käyttötapaukset

– Skriptien mietintäajat asetetaan realistisiksi

– Testidatan luonti ja käyttö

Datan tulee olla riittävän laajaa ja dynaamista, jotta saadaan todellinen kuva

suorituskyvystä

Testidatan tulisi olla tuotantoa vastaava

– Vastausten tarkistukset

Ei toiminnallista testausta

Tavallisten virheviestien tarkistus

– Kuorman konfigurointi

Käyttäjämäärät

Käyttäjien lisääminen testattavaan sovellukseen

Company presentation

Page 20: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Testin suoritus

Alustetaan palvelin – uudelleenkäynnistys

– Aikaisemmat testit eivät vaikuta

Asetetaan monitoroinnit

– Monitoroinnit tärkeitä, koska niiden avulla päästään paremmin

pullonkaulojen jäljille

Esitestien ajaminen

– Testiskriptien testaus useammalla virtuaalisella käyttäjällä

– Palvelimen lämmittely

Palvelimen cachet alustuvat

Testin ajaminen

– Oikea kuorma

– Esim. Testin ramp-up 30 minuuttia, 150 käyttäjää yhden tunnin ajan

Company presentation

Page 21: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

Suorituskykytestauksen työkaluja

Open-source

– Apache JMeter

– Grinder

– Httperf

– loadUi

– OpenSTA

Kaupallisia

– HP Loadrunner

– SilkPerformer

– WAPT Pro

Page 22: Web-sovellusten testaus - TUNItie21201/s2011/luennot/Web-sovellusten testaus.pdf · Suorituskykytestauksen tyyppejä Suorituskykytestaus voidaan jakaa erilaisiin testityyppeihin,

www.cybercomgroup.com