Przetestowałem 17 19 przeglądarek pod kątem szybkości interpretowania kodu JavaScript. Użyłem do tego najpopularniejszego benchmarka JavaScript: SunSpider JavaScript Benchmark.

Testy były przeprowadzone w miarę niezmiennym środowisku z domyślnymi ustawieniami przeglądarek i dodatkami, których używam na codzień. Każdy z testów był przeprowadzony dwa razy, a wyniki obliczone na podstawie średniej.

Pod uwagę wziąłem także najnowsze bety najpopularniejszych przeglądarek – w przypadku każdej z nich widać wyraźną poprawę wydajności – co cieszy…

Najpierw wyniki dla systemu Windows XP.

Lp. Przeglądarka Wersja Średnia (ms) Wskaźnik
1. Safari 4 beta 528.16 1225 1
2. Google Chrome 1.0.154.48 1485 1,2
3. Firefox 3.1 beta 3.1b3 2214 1,8
4. Firefox 3 3.0.7 3886 3,2
5. Opera 10 alpha build 1139 4524 3,7
6. Safari 3.1.1 525.17 4850 4
7. Opera 9 9.64 5336 4,4
8. MSIE 8 beta 6001.18372 rc1 7200 5,9
9. MSIE 7 7.0.5730.11 44905 36,6

Legenda:

  • Przeglądarka – nazwa przeglądarki
  • Wersja – wersja przeglądarki
  • Średnia – średnia czasów (w milisekundach) wykonywania testów
  • Wskaźnik – pokazuje ile razy przeglądarka jest wolniejsza od najszybszej w tabeli

Teraz wyniki dla Mac OS X.

Lp. Przeglądarka Wersja Średnia (ms) Wskaźnik
1. Safari 4 beta 5528.16 1203 1
2. Shiira 2.2 build 80118 1498 1,2
3. Chromonium 0.9 7.1.1 1815 1,5
4. Firefox 3.1 beta 3.1b3 1973 1,6
5. Firefox 3 3.0.7 3975 3,2
6. Flock 2 2.0.2 4108 3,4
7. Opera 10 alpha build 6166 6299 5,1
8. Opera 9 9.64 7434 6,1
9. Camino 1.6.6 13793 11,3
10. Firefox 2 2.0.0.18 15939 13,0

I jeszcze uwspólnione dane w jednej tabeli. Dane zostały przeliczone na podstawie uśrednionego wskaźnika (aby były wiarygodne, ponieważ testy dla Mac OS X i Win XP były przeprowadzane na różnej klasy komputerach).

Lp. Przeglądarka Wersja System Średnia (ms) Wskaźnik
1. Safari 4 beta 5528.16 OS X 10.5 1203 1
2. Safari 4 beta 528.16 Win XP 1225 1
3. Google Chrome 1.0.154.48 Win XP 1485 1,2
4. Shiira 2.2 build 80118 OS X 10.5 1498 1,2
5. Chromonium 0.9 7.1.1 OS X 10.5 1815 1,5
6. Firefox 3.1 beta 3.1b3 OS X 10.5 1973 1,6
7. Firefox 3.1 beta 3.1b3 Win XP 2214 1,8
8. Firefox 3 3.0.7 Win XP 3886 3,2
9. Firefox 3 3.0.7 OS X 10.5 3975 3,2
10. Flock 2 2.0.2 OS X 10.5 4108 3,4
11. Opera 10 alpha build 1139 Win XP 4524 3,7
12. Safari 3.1.1 525.17 Win XP 4850 4
13. Opera 9 9.64 Win XP 5336 4,4
14. Opera 10 alpha build 6166 OS X 10.5 6299 5,1
15. MSIE 8 beta 6001.18372 rc1 Win XP 7200 5,9
16. Opera 9 9.64 OS X 10.5 7434 6,1
17. Camino 1.6.6 OS X 10.5 13793 11,3
18. Firefox 2 2.0.0.18 OS X 10.5 15939 13,0
19. MSIE 7 7.0.5730.11 Win XP 44905 36,6

Myślę, że dane mówią same za siebie, a komentarz jest zbędny. Zastanawiające jest to, że Apple potrafi zrobić najszybszą przeglądarkę na swój system i system konkurencji, natomiast Microsoft sobie nie poradził jak trzeba.

Napawające optymizmem są wyniki wersji beta przeglądarek – widać, że deweloperzy przykadają do szybkości dużą wagę.

OWASP – The Free And Open Web Application Security Project

Najpierw prezentacja Filipa o wtyczkach do Firefoxa, później prezentacja organizacyjna, o OWASPIE.

Wtyczki o których była mowa:

napisać kilka zdań o OWASPIE i poruszanym tematcie: jak zwrócić uwagę użytkowników na to, że bezpieczeństwo aplikacji jest ważne. A kiedy jest ważne?

  • w konkursach, gdzie jest regulamin – i nie powinno się dać oszukiwać
  • w miejscach gdzie podajemy swoje adresy e-mail (żeby spamboty ich nie przechwyciły)
  • w bankach…
  • w miejscach gdzie podajemy dane osobiste – żeby nie zostały wykradzione

Link do listy projektów OWASP

http://www.owasp.org/index.php/Main_Page

Dwa dni temu W3C ogłosiło, że Web Content Accessibility Guidelines 2.0 (WCAG) dotarło do momentu, kiedy stało się oficjalną rekomendacją. Trwało to bardzo długo, prace nad WCAG 2.0 rozpoczęły się bardzo dawno temu.

Dla osób, które pierwszy raz spotykają się ze skrótem – WCAG jest zestawem wytycznych, dzięki którym, po ich spełnieniu nasza strona będzie bardziej dostępna (dla użytkowników niepełnosprawnych), WCAG definiuje 3 poziomy dostępności, najłatwiejszy do osiągnięcia “A”, i dwa kolejne, “AA” i “AAA”. Sama witryna W3C osiąga poziom “AA”.

Na pierwszy rzut oka WCAG 2.0 różni się od poprzedniej wersji ilością przykładów, pozytywnych jak i negatywnych – co jest moim zdaniem bardzo przydatne.

ab (Apache Benchmark), to dołączana do dystrybucji Apache aplikacja testująca wydajność serwera http.

Apache Benchmark na podstawie wprowadzonej liczby zapytań do serwera (z czego część może być realizowana jednoczenie) wyświetla nam raport czasowy realizacji poszczególnych zapytań.

Przykładowe zapytanie: jk$ ab -n1000 -c200 -k http://webascrazy.net/ (Uwaga! Ważne, aby pamiętać o końcowym slashu, w przypadku wpisywania samej domeny!) Spowoduje odpytanie serwera na którym jest http://webascrazy.net 1000 razy, z czego, z czego jednokrotnie będzie wysłanych 200 zapytań. Wynik takiego zapytania będzie wyglądać mniej więcej tak:

Server Software: AOLserver/3.4.2
Server Hostname: www.onet.pl
Server Port: 80
Document Path: /
Document Length: 80062 bytes
Concurrency Level: 100
Time taken for tests: 39.487 seconds
Complete requests: 1000
Failed requests: 432
(Connect: 0, Length: 432, Exceptions: 0)
Keep-Alive requests: 959
Total transferred: 79873016 bytes
HTML transferred: 79371411 bytes
Requests per second: 25325.07
Transfer rate: 2022789.83 kb/s received
Connnection Times (ms)
min avg max
Connect: 0 46 4562
Processing: 0 3534 23659
Total: 0 3580 28221

http://httpd.apache.org/docs/2.0/programs/ab.html

a x zapytańhttp://www.netcoffee.pl/pogodzinach/2006/02/11/kontrola-wydajnosci-apache-benchmark/

Kilka dni temu W3C udostępniło kolejny  walidator stron internetowych. Nowe narzędzie sprawdzi nam, czy nasza strona nadaje się do przeglądania w telefonach komórkowych: http://validator.w3.org/mobile/

Logo W3C mobileOK Checker

Logo W3C mobileOK Checker

Zasada działania jest podobno do pozostałych walidatorów, po wpisaniu strony uzyskujemy czytelny raport. Bardzo przydatne narzędzie – jednak aktualnie są jakieś problemy z wydajnością (duże zainteresowanie?).

W związku z tym, możemy się pewnie wkrótce spodziewać aktualizacji Web Developer Toolbara z dodaną opcją walidacji serwisu za pomocą tego walidatora.

Jednocześnie dopisuję ten walidator, do listy z checkami przed uruchomieniem nowej aplikacji internetowej. Tutaj możesz zobaczyć całą listę.

Z Fiddlera z Firefoxem można korzystać na kilka sposobów. Wszystkie wymagają jednak >10 minut czasu na skonfigurowanie, poustawianie itd.

Mała ikonka rozszerzenie w pasku stanu Firefoxa

Mała ikonka dodatku w pasku stanu Firefoxa

Dzisiaj kolega z pracy pokazał mi bardzo fajny dodatek: Fiddler Switch (pobierz Fiddler Switch). Dodatek ten instaluje się jako ikonka w pasku stanu Firefoxa, i za pomocą jednego kliknięcia uruchamia Fiddlera, oraz zmienia odpowiednio ustawienia proxy. Bardzo wygodne, bardzo łatwe, bardzo przyjemne.

Dodatkowo:


Często podczas testowania nowego systemu korzystającego np. z bazy danych natykamy się na problem braku danych testowych. Część z nas ma napisane i opatentowane skrypty, które generują nam najczęściej wykorzystywane dane, jednak wiele testów jest przeprowadzanych nierzetelnie właśnie ze względu na brak realnych danych.

Interface generatora danych testowaych na Testerzy.pl

Interface generatora danych testowaych na Testerzy.pl

Z pomocą przychodzi tutaj rewelacyjny skrypt ze strony Testerzy.pl: http://generatordanych.testerzy.pl. Generator daje nam możliwość wygenerowania do 5000 wierszy danych.

Przykładowe testowe dane wygenerowane przez generator

Przykładowe testowe dane wygenerowane przez generator

Danym możemy zdefiniować dużo (ponad 100) kolumn, do których wartości będą wygenerowane na podstawie wielu reguł, które możemy dowolnie definiwać: hasła, daty, adresy, nazwiska, losowe treści, numery, adresy e-mail. Bardzo dobre narzędzie – polecam i dodaję do listy niezbędnych narzędzi.


FogBugz (oficjalna strona FogBugz) – system zarządzania projektami ułatwiający komunikację zespołom projektowym. Główne funkcjonalności systemu (których jest sporo na rynku) to:

  • wiki
  • zarządzanie zadaniami
  • system bug-trackingowy
  • system komunikacji mailowej, z rozbudowanym systemem filtrów
  • grupy dyskusyjne
  • system harmonogramowania i estymacji czasu realizacji projektu

Muszę się przyznać, że nie korzystałem jeszcze z tego systemu, ale urzekło mnie video reklamujący FogBugz. Polecam obejrzenie, nawet jeżeli nie jesteście zainteresowani zakupem. Trwa 12 minut i jest prowadzony w bardzo luźnym stylu – sporo śmiechu.

FogBugz nie jest tani, kosztuje 25$ / użytkownik / miesiąc – w przypadku hostowania na serwerach FogBugz, lub 1899$ za licencje na 10 użytkowników, kiedy uruchamiamy aplikację na naszych serwerach.

Można przetestować FogBugz, bez ograniczeń funkcjonalnych, przez 45 dni, i to zamierzam zrobić ze swoim zespołem w ciągu najbliższego miesiąca. Pod koniec stycznia napiszę jak się sprawuje – chyba, że wyniki będą szybciej!

Dodam jeszcze, że narzędzie to jest autorstwa firmy, jednego z moich ulubionych publicystów: Joela Spolskyego (Fog Creek Software).


Programowanie ekstremalne – podstawowe zasady


http://msdn.microsoft.com/en-us/library/ms182613(VS.80).aspx

Smoke testing is done by developers before the build is released or by testers before accepting a build for further testing. Microsoft claims[1] that next after code reviews, smoke testing is the most cost effective method for identifying and fixing defects in software.

In software engineering, a smoke test generally consists of a collection of tests that can be applied to a newly created or repaired computer program. Sometimes the tests are performed by the automated system that builds the final software. In this sense a smoke test is the process of validating code changes before the changes are checked into the larger product’s official source code collection or the main branch of source code.

In software testing, a smoke test is a collection of written tests that are performed on a system prior to being accepted for further testing. This is also known as a build verification test. This is a “shallow and wide” approach to the application. The tester “touches” all areas of the application without getting too deep, looking for answers to basic questions like, “Can I launch the test item at all?”, “Does it open to a window?”, “Do the buttons on the window do things?”. The purpose is to determine whether or not the application is so badly broken that testing functionality in a more detailed way is unnecessary. These written tests can either be performed manually or using an automated tool. When automated tools are used, the tests are often initiated by the same process that generates the build itself. This is sometimes referred to as “rattle” testing – as in “if I shake it does it rattle?”