tag:blogger.com,1999:blog-36347903519457458092024-02-07T19:57:16.535+02:00QA-StaffЗаметки о тестировании и вообще о разработке проектов в ИТ.emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-3634790351945745809.post-83903297618282047222010-11-16T12:14:00.000+02:002010-11-16T12:13:45.200+02:00Притча о пирамидах<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVm5os9LOYg7od6mt_O7RkibyoZg4lXVxtnVzjDzJ8SUW6FDmmDAuM_vxNNuJyGkrP94E-IUP4YtdzAdwSrsynPCi3ZuQwrdYrHqtPUmqymlldVdat8P-kqdx9BZkNdIJQtgYshfyUyZ38/s1600/373_piramid.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 250px; height: 270px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVm5os9LOYg7od6mt_O7RkibyoZg4lXVxtnVzjDzJ8SUW6FDmmDAuM_vxNNuJyGkrP94E-IUP4YtdzAdwSrsynPCi3ZuQwrdYrHqtPUmqymlldVdat8P-kqdx9BZkNdIJQtgYshfyUyZ38/s320/373_piramid.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5538291883202549698" /></a>...Идет строительство пирамиды Хеопса. Работает много людей. Подходят к одному человеку, который тешет камни, и спрашивают: "Что ты делаешь?". Тот отвечает: "Что не видите - тешу камни." Подходят к другому, который тоже тешет камни, и задают такой же вопрос. Тот отвечает "Я строю самое величественное сооружение на земле!"<div><br /><div>Вот так отличается отношение людей к работе. </div><div>Один монотонно и без интереса делает одно и то же каждый день, лишь бы за это платили (тешет камни). Ему не интересно что нового появилось в области, которой он занимается, не интересно когда и как будет выпущен текущий релиз и что в него войдет. Работа для него, это потерянные 8 часов жизни.</div><div>А другой живет тем, что делает, стремится улучшить процессы, производительность, свои знания и навыки. Именно у таких людей часто на стенах развешены странные каракули, которые на самом деле являются базовыми алгоритмами системы, майндмепами продукта, планами версий и еще мало ли чем. В статусах месенджеров у них часто можно встретить сообщения типа "Ура! Новая версия (название разрабатываемой системы) выпущена!". Если надо, они выложатся на 200% и успеют вовремя сдать отстающий проект, в то время как "тешущие камни" будут в основном только жаловаться, рассказывать как все плохо и искать виновных.</div><div><br /><div><br /></div></div></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com13tag:blogger.com,1999:blog-3634790351945745809.post-67240309723758187042010-11-11T17:56:00.011+02:002010-11-11T18:31:05.266+02:00Полнота проверки на xss атаку<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2zlncqOv6hPPVIm2o4wDYHPa-qq33iSPLo-b-bXZ9H5IOkjz0fdIWZm4-wBoScjxsl3_02vj-vAB-aDz7WfMzWBeUbLEE1cFnvurdgZusd0D36uuKqz7-VWBR1hXXjAu-qnZHevBBGw9D/s1600/xss-threat3.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 260px; height: 284px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2zlncqOv6hPPVIm2o4wDYHPa-qq33iSPLo-b-bXZ9H5IOkjz0fdIWZm4-wBoScjxsl3_02vj-vAB-aDz7WfMzWBeUbLEE1cFnvurdgZusd0D36uuKqz7-VWBR1hXXjAu-qnZHevBBGw9D/s320/xss-threat3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5538330399942134434" /></a><div>Большинство тестировщиков, которые не специализирутся на секюрити тестировании, при его выполнении (проверить то надо) пользуются стандартной процедурой:</div><div>1. Ввести во все поля тестируемой формы следующее: </div><span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZS2SV5uIvEo1mLzmHTSfyiQy3y2GpSapobT1x-L3Z779ZoV5oJv_OBeBPz-vs_U3wO5paTa5OMTv25SO-07gKk_3ytX9qQmCb8Beu6gGKF642vc0cWgKlKxFPugpnCm0QYE-VTxUNHsGW/s320/SNAG-1695.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5538330096236201714" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 149px; height: 19px; " /></span><div><span class="Apple-style-span"><br /></span></div><div><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "></span><span class="Apple-style-span"><br /></span><div>2. Запостить форму</div><div>3. Зайти на форму просмотра результата</div><div>4. Открыть запись</div><div>Результат: если скрипт выполняется, то атака получилась.</div><div>Но как оказалось, xss атака может скрываться не только в скриптах, но еще и в тегах.</div><div>Например, в нашем проекте, где не срабатывал вышеуказанный пример, отлично сработал следующий: </div><span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB3YTapjLA8QbEjqmEUlr23wyMDz2d2SWEB3qHUOhbmy0Qq6ZnvaMD0GN21gWk9NBcEGBMlBWjbmFHdyTUcywfXPXcY99pLqmn02pn-ly-sJcAasXO8sttcgFqXgu9npK7Gco25ETLYqcy/s320/SNAG-1694.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5538330221683058178" style="float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 239px; height: 19px; " /></span></div><div><span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "></span><div><span class="Apple-style-span"><br /></span></div><div><span class="Apple-style-span"><br /></span></div><div>Так что "век живи, век учись". Кстати, кто еще знает как можно запостить xss атаку, кроме этих двух способов? Делитесь знаниями :)</div></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com10tag:blogger.com,1999:blog-3634790351945745809.post-20527438692842900792010-11-11T14:18:00.006+02:002010-11-11T16:37:37.767+02:00Главное вовремя!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGpFaf3zkeixW6BwxPigTeoItBtPX0SQ1PI8xW4VgjpDY-pPB4BaZiriSah1M7Upomakxqbxo9wUaK7vIcUOoGdweDmJZxvJXqdNUS2oYYExOXzlodWYwJwNHzfhw9WASGR-siqvy1_XJ/s1600/tiger.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 202px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGpFaf3zkeixW6BwxPigTeoItBtPX0SQ1PI8xW4VgjpDY-pPB4BaZiriSah1M7Upomakxqbxo9wUaK7vIcUOoGdweDmJZxvJXqdNUS2oYYExOXzlodWYwJwNHzfhw9WASGR-siqvy1_XJ/s320/tiger.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5538273732575897394" /></a>Вчера по неосторожности установила QIP 2010. Мало того, что через 10 минут пользования сразу его снесла - это ужас, так еще и получила на почту очаровательное письмо с поздравлением с Новым 2010 годом :)<div><br /><div>Я так понимаю, что эта рассылка задумывалась для работы в перед и после новогодний период, но видимо разработчики так хорошо отметили Новый 2010 год, что забыли отключить ее. Зато теперь все новые пользователи QIP 2010 получают поздравления круглый год. А че, весело!</div><div>Главное чтоб через полтора месяца не забыли сменить на поздравление с новым 2011 годом ;)</div></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com4tag:blogger.com,1999:blog-3634790351945745809.post-42092060925429425472010-02-03T18:50:00.007+02:002010-02-03T19:07:21.368+02:00Когда заносить баги в трекер?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG6TyFXDK_CrRsiLfXsSril9nSojfYP02hZNO6W9AZX1B5SOp44Ok9sWc-tP8mcCGLmZznhSbtQWh0NGmzm2sO8l_ONrE-GCVu5AOv1i37iiPRNtV0fTabIVUQrLhRQBlK40IWzKlZXuZz/s1600-h/bugs2.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG6TyFXDK_CrRsiLfXsSril9nSojfYP02hZNO6W9AZX1B5SOp44Ok9sWc-tP8mcCGLmZznhSbtQWh0NGmzm2sO8l_ONrE-GCVu5AOv1i37iiPRNtV0fTabIVUQrLhRQBlK40IWzKlZXuZz/s320/bugs2.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5434063989626654402" /></a><p class="MsoNormal" style="text-align: justify;">Вероятно, все читали в умных книжках по тестированию, что лучше всего заносить баги по ходу их нахождения. Тестируешь – нашел баг – завел в баг-трекер – тестируешь дальше. </p> <p class="MsoNormal" style="text-align: justify;">Но на практике очень многие тестировщики (в том числе и я) не придерживаются такого подхода. На то есть несколько причин и на этот счет каждый имеет свое мнение и свои причины. </p> <p class="MsoNormal" style="text-align: justify;">Лично мне не удобно отрываться от процесса тестирования. Когда находишься «в потоке» и все мысли и чувства заострены под нахождение багов, то заведение отчетов об ошибках «здесь и сейчас» очень отвлекает, выбивает из процесса. </p> <p class="MsoNormal" style="text-align: justify;">Конечно, если в процессе тестирования находится по багу в час, то тут нет никаких проблем, чтобы сразу же занести баг в трекер. Но попадаются (и не редко) такие проекты где «баг на баге сидит и багом погоняет». В такой ситуации заводить баги сразу же при их нахождении не очень удобно. Даже совсем не удобно. На переключение между тестированием и занесением уходит довольно много времени. Поэтому, я считаю вполне оправданным занесение багов не во время самого тестирования, а чуть позже.</p> <p class="MsoNormal" style="text-align: justify;">Единственное, что я считаю неприемлемым – это заносить все найденные баги в конце дня. Во-первых, их тогда очень нудно описывать. Во-вторых, очень велика вероятность провтыкать какой-то баг и не занести. И в-третих, это плохо сказывается на здоровье программистов :), которые не видя в течении дня ни одного нового бага,<span style="mso-spacerun:yes"> </span>радуются и спокойно, с чистой совестью собираются себе домой… И тут вдруг обнаруживают несколько десятков багов. А-а-а!!! Так и до нервного срыва недалеко :)</p> <p class="MsoNormal" style="text-align: justify;">Я заношу баги после каждой логически законченной части тестирования. Например, после завершения проверки какой-то функциональности программы или после тестирования какой-то формы. То есть, части должны быть не большими. </p><p class="MsoNormal" style="text-align: justify;">А для того, чтобы не забыть баги очень удобно по ходу тестирования делать скриншоты. Ведь практически на каждый баг можно сделать скриншот. А по скриншотам уже очень легко вспоминать суть бага. Также можно делать заметки на бумаге. Завязывать узелки на память :) ... у каждого свои методы.</p><p class="MsoNormal" style="text-align: justify;">PS: Про узелки на память - это шутка.</p><p class="MsoNormal" style="text-align: justify;"><br /></p>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com6tag:blogger.com,1999:blog-3634790351945745809.post-59791828819180115802009-10-28T11:21:00.005+02:002009-10-28T13:12:49.165+02:00Имитаторы браузеров<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHX5-fOmioga2bEpGC-jWyeUdB17kkbn0K-WXSUJJ4fek39j-wZ7v3XulmdJnYEAoa1ilMmqA6At1qoxoHPHclE1ja3unYmXft8n6oE-aPs_tLYm_iMFDGNAMPVivOexxZqtfI5RXQqjDu/s1600-h/browsers-icons.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 299px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHX5-fOmioga2bEpGC-jWyeUdB17kkbn0K-WXSUJJ4fek39j-wZ7v3XulmdJnYEAoa1ilMmqA6At1qoxoHPHclE1ja3unYmXft8n6oE-aPs_tLYm_iMFDGNAMPVivOexxZqtfI5RXQqjDu/s320/browsers-icons.png" alt="" id="BLOGGER_PHOTO_ID_5397579766974416034" border="0" /></a>Постоянно приходится тестировать веб-приложения под разными браузерами.<br /><br /><div style="text-align: justify;">Для этих целей есть множество инструментов. Я перечислю только те, что я использовала.<br /><br />1. <a href="http://spoon.net/browsers/">Browser Sandbox</a>. Позволяет запускать имитаторы различных браузеров и в них проверять работу приложения.<br />Одно время я пользовалась этим инструментом, но не долго. Мне не понравилась его медлительность.<br /><br />2. <a href="http://browsershots.org/">Browsershots</a>. Позволяет быстро проверить как выглядит страница во всех известных браузерах под Windows, Linux, MacOS, BSD. Но не позволяет проверить работу приложения. Он только снимает скриншоты страниц.<br /><br />3. <a href="http://my-debugbar.com/wiki/IETester/HomePage">IETester</a>. Совсем недавно открыла для себя это десктопное приложение. Позволяет запускать в отдельних вкладках имитаторы различных версий браузера Internet Explorer.<br />Примечание: не совсем корректно работает под WinXP SP3.<br /><br />Хочу заметить, что не стоит полностью полагаться на эти или любые другие инструменты имитируюшие работу различных браузеров. Поскольку, они в некоторых случаях не ведут себя так, как настоящие браузеры. Это и понятно, имитаторы это ж тоже приложения, и тоже содержат баги. Например, тот же IETester выдает ошибки java script там, где настоящий браузер IE их не выдает.<br /><br /><span style="font-weight: bold;">Лучше всего установить на рабочем компьютере или сервере несколько виртуальных машин с различными операционными системами и браузерами. В таком случае мы тестируем приложения в реальном браузере и можем быть уверены в правильности результатов тестирования.</span></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com6tag:blogger.com,1999:blog-3634790351945745809.post-18772596265694615892009-10-27T12:33:00.005+02:002009-10-27T12:41:29.786+02:00Mailinator - инструмент для создания мейловСегодня мне нужно было тестировать приложение, где у пользователей уникальные мейлы. Причем при создании нового пользователя нужно всегда вводить реальный мейл, так как на него потом приходит сообщение для подтверждения регистрации.<br /><div style="text-align: justify;">Пользователей понадобилось создавать очень много и скоро мои личные мейлы закончились.<br />Коллега подсказал инструмент, с помощью которого можно быстро и просто создавать тестовые мейлы.<br />Инструмент называется Mailinator. Находится в интернете по адресу <a href="http://mailinator.com/">http://mailinator.com/</a>.<br />Для создания почтового акунта нужно всего лишь ввести имя (например, mytest1) и нажать "GO".<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg42iORU2hODdGls_mTZeVUONN7XqlepUEV5SsiHwC-BR_t8A9_vBkJx_Vd9pDTohgp7-iUZNHh5ZJV_xwVf83VKtQ-U5YI3Nk4CTt2aCEPm7wtobIwZa8OZSNQzJkHBQJxzNGH23q9mg7N/s1600-h/SNAG-0149.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 150px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg42iORU2hODdGls_mTZeVUONN7XqlepUEV5SsiHwC-BR_t8A9_vBkJx_Vd9pDTohgp7-iUZNHh5ZJV_xwVf83VKtQ-U5YI3Nk4CTt2aCEPm7wtobIwZa8OZSNQzJkHBQJxzNGH23q9mg7N/s320/SNAG-0149.jpg" alt="" id="BLOGGER_PHOTO_ID_5397227087207084498" border="0" /></a><br />Все! Адрес mytest1@mailinator.com можно использовать в тестовых целях.<br /><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com3tag:blogger.com,1999:blog-3634790351945745809.post-85464844047055532252009-10-25T19:06:00.010+02:002009-10-25T19:30:51.833+02:00Осторожно, люди!<div style="text-align: justify;">Вчера ехали к родителям в гости на маршрутке с вот такой надписью на заднем стекле.</div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6aEleyQe1OPnVYv-uANJUBSYzss9zK0h17pEyDLa6kOgvjeFtzgcsabStymfHA5riwvf8NqBuAi69rlkrH2b2Us4fgwim4a7L7W1_r3npYdh7WYBfu0adWgwNus3WVO4PDARh4rdxli_o/s1600-h/24102009184.jpg"><img style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 320px; height: 240px; " src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6aEleyQe1OPnVYv-uANJUBSYzss9zK0h17pEyDLa6kOgvjeFtzgcsabStymfHA5riwvf8NqBuAi69rlkrH2b2Us4fgwim4a7L7W1_r3npYdh7WYBfu0adWgwNus3WVO4PDARh4rdxli_o/s320/24102009184.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5396587472163795986" /></a><div style="text-align: justify;">Как только увидела эту надпись, мне сразу вспомнилась другая, которую обычно пишут на табличке или прямо на заборе в поселках.</div><div style="text-align: center;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0X2PTBCeUMBwEx8WNCuSX5-2xwVeRXJ1ckzve0O4kxUk2biR6qCgZXiX2oJS6peV-Uylgj0jAfTS4qqj0CYVfbqK21AruzfEHAysvM5hsilkcMV8S1LDYNMoZK6UQpJNf7JPzJD8lJsRj/s320/angry+dog.jpg" /></div><div style="text-align: justify;">В какой-то мере, я согласна со смыслом надписи на маршрутке. Людей стоит бояться даже больше, чем злых собак :) Но, думаю, автор хотел донести в ней несколько иной смысл. Тогда правильно было бы написать "Увага! Люди."</div><div style="text-align: justify;"><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-6623012048787798352009-10-23T23:55:00.003+03:002009-10-24T00:01:18.789+03:00Тестировщик – профессия не для слабонервных<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKbsbarUMnzR649TW7VgO8-fZYjENCdfVo6a-v9zRu558_R6kf3atPInldUNW2VlrzyqMJyWyobbMluJ5BX3ijljPsCugf_FevprvG2fGS5aaCLwtfFUED__N56XSX2G_0hUQ-HHjuX11K/s1600-h/bug.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 257px; height: 299px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKbsbarUMnzR649TW7VgO8-fZYjENCdfVo6a-v9zRu558_R6kf3atPInldUNW2VlrzyqMJyWyobbMluJ5BX3ijljPsCugf_FevprvG2fGS5aaCLwtfFUED__N56XSX2G_0hUQ-HHjuX11K/s320/bug.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5395903083844175122" /></a><div style="text-align: justify;">Наверное, никто не будет спорить, что работу тестировщика оценивают в большинстве случаев по количеству багов, пролезших в релиз. Причем никого не интересует, сколько этих багов было найдено, отслежено и надцать раз перепроверено, сколько противоречивых требований было проанализировано, сколько сил потрачено на добывание этих требований из кастомеров, сколько времени потрачено на консультирование разработчиков… Видно только одно - в релизе найдено N багов! И каким бы малым не было это число N или какими бы некритичными были эти баги, и даже то, что эти баги найдены в функционале, который был объявлен как «not to be tested» - на вас все равно смотрят с недовольством и грустью в глазах. Даже, если никто не говорит этого в голос.</div><div style="text-align: justify;">Вообщем, к важным качествам тестировщика нужно причислить еще умение трезво оценить в чем ты виноват, а в чем нет. Где-то нужно честно и обьективно признаться себе – тут я действительно провтыкал, shame on me и стараться больше такого не допускать (хотя всем людям свойственно ошибаться, но вот тестировщикам этого не разрешается). А где-то нужно так же обьективно осознать - вот тут я ничего не мог поделать, и морально казнить себя за это не стоит.</div><div style="text-align: justify;">Это очень-очень важное качество. Иначе развитие страшного комплекса неполноценности и в итоге погружение в депрессивное состояние – это только дело времени.</div><div style="text-align: justify;">PS: Вспомнились замечательные слова Уинстона Черчилля</div><div style="text-align: justify;"><blockquote>«Success is the ability to go from one failure to another with no loss of enthusiasm»</blockquote></div><div style="text-align: justify;"><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com2tag:blogger.com,1999:blog-3634790351945745809.post-69475427527897234912009-10-12T00:38:00.007+03:002009-10-13T21:18:40.072+03:00Хотят ли тестировщики быть программистами?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1ZD7hc81lRri_mPMB0UTnfOasHQ-1Dx8Z_vtwuNt18Vdl_XsYA6xyBwORxk54Y4mIp5shRzkRcoBYlBeazl0Ys82-8R462lvCWJAvMU9FaadQxswSG7QyE-4p0boxFJSFCEEcdDvndXHt/s1600-h/image.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 184px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1ZD7hc81lRri_mPMB0UTnfOasHQ-1Dx8Z_vtwuNt18Vdl_XsYA6xyBwORxk54Y4mIp5shRzkRcoBYlBeazl0Ys82-8R462lvCWJAvMU9FaadQxswSG7QyE-4p0boxFJSFCEEcdDvndXHt/s200/image.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5392150659344223650" /></a><div style="text-align: justify;">Недавно ехала в маршрутке и невольно пришлось подслушивать разговор двух начинающих разработчиков. Подслушивать пришлось потому, что сидела я прямо перед ними, а разговаривали они довольно громко - увлеченно хвастались друг другу своими мега достижениями в разработке каких-то суперсовременных алгоритмов поиска в университетской системе хранения информации :)</div><div style="text-align: justify;">Из разговора я поняла, что в их небольшой команде разработчиков (кажется их там трое) имеется один тестировщик Вася. И что этот Вася (по их словам) непонятно чем занимается, поскольку все разработчики сами ж проверяют свой код :). А также, что Вася (тоже по их словам) давно метит в разработчики.</div><div style="text-align: justify;">Как то заинтересовала меня фраза, так уверенно и гордо произнесенная одним из парней - "Ну какой же тестировщик не хочет быть программистом!".</div><div style="text-align: justify;">Я конечно не знакома в тестировщиком Васей и не могу сказать хочет или не хочет он быть программистом, также не могу судить о его отношении к тестированию и его тестерских способностях, но могу сказать с уверенностью на 100%, что я вот никогда, с тех пор как начала работать тестировщиком, не мечтала стать программистом. Более того, по образованию инженер-программист я осознанно пошла в тестировщики, поскольку мне эта профессия показалась намного интереснее. И ни разу не жалею о своем выборе.</div><div style="text-align: justify;">Также, за вот уже более 4 года работы я ни разу не встречала настоящего тестировщика, который хотел бы быть программистом. Я не зря говорю "настоящего тестировщика", потому что попадаются иногда ненастоящие тестировщики, например:</div><div><ul><li style="text-align: justify;">те, кто пытается пробраться в программисты через временную работу тестировщиком (типа поработаю, освоюсь в компании, наберусь знаний и опыта и постепенно...)</li><li style="text-align: justify;">те, кто вообще ни кем не хочет быть, а деньги нужны, кушать хочется - почему бы и тестировщиком не "работать".</li></ul></div><div style="text-align: justify;">Стало мне очень интересно, есть ли среди нас такие, что мечтают стать программистами.</div><div style="text-align: justify;">Коллеги, если не трудно и не секрет, напишите в комменты. Хотите ли Вы перейти в программисты? Если да, то по каким причинам Вы хотите стать программистом? Если нет и никогда не хотели, тогда напишите что же Вам так нравится в профессии тестировщика? Почему она нравится вам больше чем профессия программиста? </div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com9tag:blogger.com,1999:blog-3634790351945745809.post-38524780620100009572009-10-09T14:03:00.005+03:002009-10-09T14:18:14.217+03:00Особенности формирования требований к производительности В2В систем<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi-o91c602AEoH62jrQ5ssUtbxmrICqDvIBTgBbJ0gF8MC5D1cn41WyaOHyPmGECArFlKgJhZDfBdKJYlcySMk18RojAEy5OG_hnVxxSAa4qxL4CzB60dC0v9lLu1IwOm04iC3H2qe_fDO/s1600-h/requirements.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 232px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi-o91c602AEoH62jrQ5ssUtbxmrICqDvIBTgBbJ0gF8MC5D1cn41WyaOHyPmGECArFlKgJhZDfBdKJYlcySMk18RojAEy5OG_hnVxxSAa4qxL4CzB60dC0v9lLu1IwOm04iC3H2qe_fDO/s320/requirements.jpg" alt="" id="BLOGGER_PHOTO_ID_5390556879158330242" border="0" /></a> С точки зрения тестирования производительности все системы разделяются на:<br /><br /><span style="font-style: italic;"> Высоконагруженные</span>. Сотни тысяч пользователей, десятки миллионов хитов в день, десятки гигабайт данных, терабайты трафика. Yandex.ru, например.<br /><br /><span style="font-style: italic;"> Низконагруженные</span>. Например, системы В2В взаимодействия (системы межкорпоративного взаимодействия). Такую систему обычно используют около 100-500 сотрудников компании и 1000 – 5000 клиентов компании и, конечно же, не все одновременно.<br /><br /><div style="text-align: justify;">Если в высоконагруженных системах производительность стоит на первом месте, то в В2В системах на первом месте - функциональность. Неотъемлемая характеристика В2В систем – сложная бизнес логика. И эта сложная логика должна работать без сбоев и глюков.<br /><br />Поэтому, при тестировании В2В систем основная часть средств и времени отдается таким видам тестирования как: функциональное, юзабилити и интеграционное тестирование. На тестирование производительности остается очень мало времени.<br />Но его все равно проводить необходимо.<br /><br />Только тут важно понять чего мы хотим от нашей системы в плане производительности.<br />Конечно, всегда хочется иметь самое лучшее, но как говорится «что для русского хорошо, для немца - смерть».<br /><br />Мы можем потратить кучу времени и средств на обеспечение супер производительности нашей системы. Допустим, она будет чудесно работать под нагрузкой миллион хитов в день. Но в реальности максимальная нагрузка, которой подвергается наша система – 10 тысяч хитов в день. И, по прогнозам экспертов, до миллиона хитов ей еще расти и расти. Что мы сделали? Мы просто выбросили деньги на ветер и потратили силы зря. Не нужна нашей системе такая производительность, и еще много лет будет не нужна. Лучше бы мы разработали какую-то новую функциональность, которая действительно облегчила бы жизнь нашим пользователям.<br /><br />То есть, мы должны честно ответить на примерно такие вопросы:<br /><br /></div><ul style="text-align: justify;"><li><span style="font-style: italic;">Какое среднее количество пользователей будет одновременно работать с системой </span>(Сколько сотрудников ежедневно пользуются системой?. Сколько клиентов в день заходят в нашу систему?);</li><li><span style="font-style: italic;">Какое максимальное количество пользователей будет одновременно работать с системой</span> (Скольким людям понадобится достать или загрузить данные в системе в конце квартала, например?);</li><li><span style="font-style: italic;">Какой запас производительности мы хотим иметь</span> (Что если произойдет что-то непредсказуемое и куча людей ломятся в систему, сколько их может быть? Или, что если мы банально ошиблись в наших расчетах средней нагруженности системы. Насколько мы могли ошибиться?);</li><li><span style="font-style: italic;">Границы приемлемой производительности системы</span> (Какие показатели производительности мы будем считать хорошими/нормальными/плохими/очень плохими. Время выполнения операции 3 секунды это хороший или плохой показатель для нашей системы, а 10 секунд? Ну, 10 секунд это точно плохо, скажете вы. Ок. А если это операция формирования квартального отчета по результатам деятельности отдела? Вы все еще уверены, что 10 секунд это много для такой операции? Подсказка: тут нет общепринятых стандартов. Для каждой конкретной системы и даже для каждой конкретной операции хорошие и плохие показатели могут отличаться в разы).<br /></li></ul><div style="text-align: justify;">Иногда слышу нарекания коллег тестировщиков, мол вот я выявил, что система падает при непрерывной работе 20-ти пользователей с таким-то модулем на протяжении 30 минут. Кошмар! Завел баг, сказал менеджерам, а они ничего с этим не делают. Ах они такие!<br /><br />А менеджеры просто знают, что этим модулем пользуются от силы 1-2 пользователя в день и то не каждый день. То есть такая производительность модуля устраивает всех уже на протяжении нескольких лет. И еще несколько лет будет устраивать. Как только нарисуется тенденция к увеличению интереса пользователей к модулю, вот тогда найденная проблема станет действительно актуальной и ей уделят необходимое внимание.<br /><br />То есть, перед тем как приступать к тестированию производительности какой либо системы, нужно <span style="font-weight: bold;">четко понять что мы хотим</span> (в реальности) от нашей системы. Иначе получится тестирование ради тестирования.</div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-8695981477552496212009-06-10T12:25:00.010+03:002009-06-10T12:45:57.050+03:00«à la desktop» интерфейс для веб-портала<span style="font-family:verdana;">Интерфейс сайта в виде рабочего стола. Видели? Нет. Тогда смотрите.</span><br /><div style="text-align: justify;"><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkCDIy7aDbQU_52hQ__ltaRSSd7_2Hu6CKy2ADSLCwggwICumnolkCfGlLRuhJMc5YQfrBPbA10L53VXJaBA9M8xFPDPPSidQRRxJyCef7vBkKSGCfQ2y6BJO0qr1xZOSvL3zatf-p5jEl/s1600-h/SNAG-0100.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkCDIy7aDbQU_52hQ__ltaRSSd7_2Hu6CKy2ADSLCwggwICumnolkCfGlLRuhJMc5YQfrBPbA10L53VXJaBA9M8xFPDPPSidQRRxJyCef7vBkKSGCfQ2y6BJO0qr1xZOSvL3zatf-p5jEl/s400/SNAG-0100.jpg" alt="" id="BLOGGER_PHOTO_ID_5345630575939687938" border="0" /></a><span style="font-family:verdana;">Получше рассмотреть, покликать можно здесь http://ibpro.com.ua/admin/ .</span><br /><span style="font-family:verdana;">По-моему смотрится очень интересно. </span><br /><br /><span style="font-family:verdana;">Для сайтов контентного направления я бы не делала такой интерфейс. А вот, для корпоративного портала, основной целью которого является решение бизнес задач таких как: </span><br /><ul><li><span style="font-family:verdana;">размещение и скачивание документов</span></li><li><span style="font-family:verdana;">заполнение и просмотр отчетов</span></li><li><span style="font-family:verdana;">отслеживание логистических операций</span></li><li><span style="font-family:verdana;">размежение и подписка на мероприятия</span></li><li><span style="font-family:verdana;">...</span></li></ul><span style="font-family:verdana;">способ предоставления информации в виде десктопа мне кажется целесообразным.</span><br /><br /><span style="font-family:verdana;">В основном информация на портале отображается табличной форме или в виде списков. Страницы укомплектованы набором фильтров для поиска данных, ну и стандартными кнопками «добавить», «удалить», «сохранить», «скачать», «просмотреть»… </span><br /><br /><span style="font-family:verdana;">Вид «à la desktop» для портала видится мне примерно вот так.</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZRw5gwwGJWUy15vASGoq4qd3vZXmmle__slZAmxbNJJKVN_4_LmenEUZ2Y00VBXCEuSwHOCFDy65kTWkeYxDaDBfOlXGfgU69Z_qmuvR5MosG5YX4JBmJCkzD3NknYE3FZhh1AFzxKjO/s1600-h/SNAG-0103.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 274px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZRw5gwwGJWUy15vASGoq4qd3vZXmmle__slZAmxbNJJKVN_4_LmenEUZ2Y00VBXCEuSwHOCFDy65kTWkeYxDaDBfOlXGfgU69Z_qmuvR5MosG5YX4JBmJCkzD3NknYE3FZhh1AFzxKjO/s400/SNAG-0103.jpg" alt="" id="BLOGGER_PHOTO_ID_5345631873777463682" border="0" /></a><span style="font-family:verdana;">Возникают вопросы:</span><br /><ul><li><span style="font-family:verdana;">Насколько удобен для пользователей такой интерфейс?</span></li><li><span style="font-family:verdana;">Какие преимущества он имеет по сравнению со стандартным стилем отображения в вебе?</span></li><li><span style="font-family:verdana;">Какие недостатки? </span></li><li><span style="font-family:verdana;">Не испугает ли он пользователей, все-таки непривычно? :)</span></li></ul><span style="font-family:verdana;">Хотелось бы узнать мнения как специалистов в ИТ так и обычных пользователей Интернета.</span><br /><span style="font-family:verdana;">Скажем, если бы Вы попали на такой портал, какой бы была Ваша реакция? </span><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com8tag:blogger.com,1999:blog-3634790351945745809.post-21209831804643367962009-06-01T22:20:00.007+03:002009-10-12T01:53:35.020+03:00Брутфорс атака<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS0tTg7ifDGkyumsqCM-_ZDK8gmwrdJShltXazVoaCx3ejpixbgzZe65xFRZf4Wso3kxE5qODr8HtWPlEN1d7FI18rvG0Z7DI1DC8V_UzrIJIxPsc31INygtBsPX65vszWYIvzyYvbfR-f/s1600-h/vzlom1.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 250px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS0tTg7ifDGkyumsqCM-_ZDK8gmwrdJShltXazVoaCx3ejpixbgzZe65xFRZf4Wso3kxE5qODr8HtWPlEN1d7FI18rvG0Z7DI1DC8V_UzrIJIxPsc31INygtBsPX65vszWYIvzyYvbfR-f/s320/vzlom1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5391479137215180450" /></a><div style="text-align: justify;"><span style="font-family:verdana;">Брутфорс атаки являются самым легким но эфективным способом взлома. Суть атаки состоит в подборе паролей пользователей.</span></div><div style="text-align: justify;"><span style="font-family:verdana;">Эффективность такой атаки напрямую зависит от ленивости администраторов и пользователей.</span></div><div style="text-align: justify;"><span style="font-family:verdana;">Для проверки на наличие уязвимости к брутфорс атакам мы не будем перебирать пароли :) Это дело скучное, занимает много времени да и пользы нам от этого не много. Ведь подобрав пароль какого-то юзера, мы всего лишь докажем что это сделать возможно. А никто и не говорил, что это не возможно. Имея достаточное количество времени и ресурсов, можно подобрать всякий пароль.</span><br /><br /><span style="font-family:verdana;">Задача хорошо продуманной компьютерной системы - не дать пользователям создать пароль, который легко ломается. Например, Петя, 1234, pass.</span><br /><br /><span style="font-family:verdana;">Поетому, при тестировании нужно обратить внеимание на следующие моменты:</span><br /></div><ul style="font-family: verdana; text-align: justify;"><li>не рекомендуется длина пароля меньше 8-ми символов;</li><li>пароль должен содержать комбинацию букв, цифр и символов;</li><li>должно быть ограничение на кол-во попыток аутентификации за промежуток времени (например, не более 4-х раз в течении 1 минуты);<br /></li><li>пароли должны храниться обязательно в зашифрованном виде;</li><li>пароли не должны передаваться методом GET;</li><li>при работе с важной информацией должна использоваться защищенная передача данных (https протокол).<br /></li></ul><div style="text-align: justify;"><span style="font-family:verdana;">Последние три пункта, вообще-то, не имеют отношения к защите от именно брутфорс атаки, но они важны для того, чтобы уберечь пароли пользователей от похищения из места хранения или при передаче. </span><br /><span style="font-family:verdana;"> </span><br /><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com4tag:blogger.com,1999:blog-3634790351945745809.post-33550722177536203862009-05-29T22:10:00.012+03:002009-10-13T21:20:40.841+03:00Негативное тестирование<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpsSV1IZ_j7PxGUwGjDcgAjVhslocTxtkkVqJ4VVqRMo7aBlVNGhaWzD2udgAsz7DeVO6trRaoJfKHz8dbYR6SAjBK2SGAdwUOzEI7rLqISQhsY-CuTnTUMsvD6n0b9wbpRGofr6KgvKP3/s1600-h/Positiveand+Negative+Testing.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 138px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpsSV1IZ_j7PxGUwGjDcgAjVhslocTxtkkVqJ4VVqRMo7aBlVNGhaWzD2udgAsz7DeVO6trRaoJfKHz8dbYR6SAjBK2SGAdwUOzEI7rLqISQhsY-CuTnTUMsvD6n0b9wbpRGofr6KgvKP3/s200/Positiveand+Negative+Testing.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5392151099107571362" /></a><div style="text-align: justify; font-family: verdana;">Наверное всем тестировщикам известно, что такое негативное тестирование. Думаю даже, что это любимый тип тестирования для многих из-нас.<br /><br />При выполнении негативного тестирования мы проверяем как ведет себя приложение, получая на вход неправильные данные (например, символы в поле, где ожидаются цифры) или в нестандартных ситуациях (например, если выключить принтер во время печати документа) .<br /><br />Во многих ресурсах по тестированию, при описании последовательности выполнения видов тестирования, негативное тестирование отделяют в отдельную процедуру и ставят на 4-е место.<br />При этом приводится следующий план тестирования:<br /></div><ol style="text-align: justify; font-family: verdana;"><li>Изучение документации (для того, чтобы понять что, собственно тестируем)</li><li>Дымовое тестирование или Smoke testing (первый прогон программы, чтобы понять работает ли она вообще)</li><li>Позитивное тестирование (для того, чтобы проверить работу программы при получении ею "правильных" входных данных)</li><li>Негативное тестирование</li></ol><div style="text-align: justify; font-family: verdana;">Но почему так?! Почему нужно негативное тестирование отделять от позитивного и выполнять потом? Как показывает практика, оставленное на потом почти всегда остается не выполненным.<br /><br />А можем ли мы сказать что программа работает, если проверили ее реакцию только на правильные входные данные?<br /><br />А главное, я вот представляю ситуацию. Сижу я тестирую формочку. Проверила все соответственно ТЗ, проверила как обрабатываются данные, которые ожидается, что пользователь будет вводить в поля (заметьте, ожидается совсем не значит, что так и будет) и тут же в моем тестерском уме возникает небезосновательное подозрение, что если ввести вот в это поле "0" - то произойдет что-то нехорошее :) И что? Я должна сказать себе "Нет. По плану у меня сейчас позитивное тестирование. Негативное на следующей неделе, вот тогда и проверю с нулем"?<br /><br />По-моему, такой подход неправильный. Он не просто неправильный, он неэффективный.<br /><br />Во-первых, проведение отдельно позитивного и негативного тестирования займет больше времени, чем если их совместить.<br /><br />Во-вторых, есть риск, что негативное тестирование вообще не будет проведено или проведено кое-как в условиях страшного недостатка времени.<br /><br />А в третих, это противоречит тестерскому мышлению. Ведь основная задача тестировщика - стараться проверить реакцию программы на все действия, которые с ней может совершить пользователь. И, поверьте, большинство этих действий не укладываются в критерии позитивного тестирования.</div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com4tag:blogger.com,1999:blog-3634790351945745809.post-34115271762669298212009-03-28T20:45:00.006+02:002009-10-12T02:14:11.604+03:00Самые важные качества тестировщика. Часть1.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2xsrd6z_xuYYsO9bKyTcYg7HPKBSFcv3lSkRAedKLvRPYllYW42n7ljRUd1Ma7LnwzQvo7suxMQNL21INJPoZd7z1w1RtSsuOdRpuujjPxDNWdB2Rk9k1aFnAa-7nmSst5R3xnMBoAkyJ/s1600-h/Bug-In-The-Bed_2.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 158px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2xsrd6z_xuYYsO9bKyTcYg7HPKBSFcv3lSkRAedKLvRPYllYW42n7ljRUd1Ma7LnwzQvo7suxMQNL21INJPoZd7z1w1RtSsuOdRpuujjPxDNWdB2Rk9k1aFnAa-7nmSst5R3xnMBoAkyJ/s320/Bug-In-The-Bed_2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5391484650447255906" /></a><div style="text-align: justify;"><span style="font-family:verdana;">Во время прохождения собеседования на вакансию тестировщика часто дают решить логическую задачку. На мой взгляд, то что человек решил логическую задачу показывает только то, что у него хорошее логическое и,скорее всего, математическое мышление, но это совершенно не означает, что он подходит для работы тестировщиком. </span><br /><br /><span style="font-family:verdana;">Тестировщику важно иметь хорошо развитое не логическое, а, я бы сказала, антилогическое мышление. Тестировщик не должен думать стандартно, как все, типа: если А это Б, а Б это С, то А это С. Он должен смотреть шире и глубже, чем того требует логика. В тестируемых программах логически правильные пути содержат намного меньше ошибок, чем логически неправильные.</span><br /><br /><span style="font-family:verdana;">Столкнувшись с вышеприведенной задачкой, хороший тестировщик должен подумать примерно так: Если А это Б, а Б это С то</span><br /><span style="font-family:verdana;">Чем еще может быть А, кроме как В?</span><br /><span style="font-family:verdana;">Чем еще может быть В, кроме как С?</span><br /><span style="font-family:verdana;">И вообще, что такое А, В и С?</span><br /><span style="font-family:verdana;"></span><br /><span style="font-family:verdana;">Для тестировщика также очень важно уметь видеть, замечать и учитывать все возможные неточности, несоответствия, противоречия… Особенно это важно во время составления технического задания и обсуждения его с заказчиком.</span><br /><br /><span style="font-family:verdana;">Заказчики часто не могут (да и не должны) учесть все возможные варианты выполнения той или иной бизнес операции. А если задачу по разработке этой бизнес операции поставить в ТЗ так, что ее можно трактовать двузначно, то программист обязательно поймет и сделает не так, как это понимал и хотел заказчик. Поэтому тестировщику важно уметь выявить такие неоднозначные моменты еще на этапе составления ТЗ и согласовать с заказчиком.</span><br /><br /><span style="font-family:verdana;">Еще тестировщику важно иметь критическое мышление. Я бы сказала, что критическое мышление для тестировщика намного важнее, чем логическое. Перефразировав японскую мудрость, которая гласит «Во всем ищи красивое», получаем мудрость тестерскую – «Во всем ищи недостатки». </span><br /><br /><span style="font-family:verdana;">Приведу пример на себе. Если я получаю от программиста готовый функционал, тестирую его и не нахожу серьезных дефектов (несерьезных дефектов обычно достаточно и очень важно за этими несерьезными дефектами не забыть найти серьезные), я откладываю тестирование. Не прекращаю тестирование, не закрываю таск, даже если кажется что уже все перепробовала и все пути проверила. Я иду попить кофе, отвлечься… И потом, через некоторое время, возможно на второй день, опять сажусь тестировать этот функционал. И нахожу серьезные дефекты! Потому что всегда, повторюсь – ВСЕГДА в программе есть баги.</span><br /><br /><span style="font-family:verdana;">Конечно, логическое мышление тестировщику тоже не помешает, ведь ему ж тестировать программы, которые будут использовать люди думающие в большинстве своем логически. </span><br /><br /><span style="font-family:verdana;">Итак, важные качества, которыми должен обладать тестировщик это:</span><br /><ul><li><span style="font-family:verdana;">антилогическое мышление – умение мыслить глубже, шире и не так как того требует логика.</span></li><li><span style="font-family:verdana;">внимательность - умение замечать неточности и противоречия</span></li><li><span style="font-family:verdana;">критическое мышление – умение во всем находить недостатки</span></li><li><span style="font-family:verdana;">не помешает и наличие логического мышления</span></li></ul><br /><span style="font-family:verdana;">Это далеко не все важные для тестировщика качества. Продолжение читайте в следующих постах.</span></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-34085719079703701232009-03-28T13:34:00.001+02:002009-10-12T02:04:05.196+03:00Тестирование стабильности (stability testing)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKHXXajd508dp9RrAKrn46aehY572-vmp3juCGZG4zLSkUj0ktok3Vf6GCYLiBt2oeOEvYeD-WtZaDwFHtIR1SYiEW_Zc4NSlICHgtLc3n20Oka4kz7rpIwLzJTDQYCup7Bs2A02lydgb/s1600-h/ecg-stress-1.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 249px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKHXXajd508dp9RrAKrn46aehY572-vmp3juCGZG4zLSkUj0ktok3Vf6GCYLiBt2oeOEvYeD-WtZaDwFHtIR1SYiEW_Zc4NSlICHgtLc3n20Oka4kz7rpIwLzJTDQYCup7Bs2A02lydgb/s320/ecg-stress-1.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5391482024502888322" /></a><div style="text-align: justify;"><span style="font-family:verdana;">Целью тестирования стабильности (stability testing) является оценка работоспособности системы при длительной нагрузке.</span><br /><br /><span style="font-family:verdana;">Причем, тут берется не максимальная нагрузка, а средняя (рабочая) нагрузка. И систему нагружают на протяжении длительного времени (я обычно ставлю на ночь, когда ухожу домой).</span><br /><br /><span style="font-family:verdana;">При проведении тестирования стабильности показатели времени выполнения операций для нас имеют второстепенное значение. Главная задача - выявить утечки памяти или другие проблемы, которые не позволяют системе стабильно работать.</span><br /><br /><span style="font-family:verdana;">Хотя показатели времени выполнения операций тоже могут пригодиться. Они могут показать степень деградации системы. Если после многочасового тестирования Ваша система не упала, но время выполнения операций постоянно увеличивалось, то это говорит о том, что проблемы все же есть, просто для полного падения системе не хватило времени. Нужно погрузить систему дольше. </span><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com3tag:blogger.com,1999:blog-3634790351945745809.post-85014180159465135952009-03-28T13:16:00.004+02:002009-10-13T23:30:31.714+03:00Обьемное тестирование (volume testing)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw2rfn_tUkYz8SYCySDya0Nfe2qbNrL4daz2R2IkSlkveAudpj8J9CyhFEl8c3H9cQTtWlcskfHTzd7-Gyv6ib3lXRm4m_ErkTuHSxUg7iYxGe6tca01yOLWhkbbY-sGi4PDX21ewUOWP_/s1600-h/img1.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 248px; height: 308px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw2rfn_tUkYz8SYCySDya0Nfe2qbNrL4daz2R2IkSlkveAudpj8J9CyhFEl8c3H9cQTtWlcskfHTzd7-Gyv6ib3lXRm4m_ErkTuHSxUg7iYxGe6tca01yOLWhkbbY-sGi4PDX21ewUOWP_/s320/img1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5392184640038672626" /></a><div style="text-align: justify;"><span style="font-family:verdana;">Целью обьемного тестирования (volume testing) является определение производительности системы при увеличении обьемов данных в базе данных.</span><br /><br /><span style="font-family:verdana;">Тут нас интересуют те же показатели, что и при тестировании производительности, тоесть в основном - время выполнения операций в зависимости от количества пользователей, только в этом случае мы проводим тестирование на большых обьемах данных.</span><br /><br /><span style="font-family:verdana;">В моей практике есть случай, когда система отчетности отлично работала на обьеме данных за пол года, но значительно хуже работала на уже даже годовых данных и совсем плохо работала на данных за 2 года.</span><br /><br /><span style="font-family:verdana;">Самые первые претенденты на обьемное тестирование, это те места, где выбираются большие обьемы данных из БД или выполняются сложные sql запросы для выборки данных. Хочу сказать что, если первые места более-менее очевидны (где много данных выводится, там много данных и выбирается из БД), то вторые - не всегда очевидные (вы можете увидеть пару строк, но для того чтобы эти пару строк показать программисту пришлось перерыть пол базы). Имея немного опыта в программировании и базах данных, а таже неотъемлемую для тестера интуицию можно постараться самостоятельно выявить в системе такие узкие места, но все же тут лучше обратиться за помощью к программистам, которые знают систему и все ее проблемные места изнутри. </span><br /><br /><span style="font-family:verdana;">Тоесть для проведения нагрузочного тестирования нужно:</span><br /><br /></div><ol style="text-align: justify;"><li><span style="font-family:verdana;">выявить места, где выбираются большие обьемы данных из БД</span></li><li><span style="font-family:verdana;">выявить места, где выполняются сложные sql запросы </span></li><li><span style="font-family:verdana;">залить в БД много-много данных</span></li><li><span style="font-family:verdana;">выполнить тестирование производительности (читай <a href="http://qa-staff.blogspot.com/2009/03/load-testing.html">здесь</a>)</span></li><li><span style="font-family:verdana;">если нужно - выполнить стрессовое тестирование (читай <a href="http://qa-staff.blogspot.com/2009/03/stress-testing.html">здесь</a>)</span></li></ol>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-26058672343787298882009-03-28T12:21:00.003+02:002009-10-12T02:02:50.828+03:00Стрессовое тестирование (stress testing)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEl48GdF9aZVtXP2bHcIeAbrA8LbHmgKk6Vhmzs_SmDGAIrIkAToXnzCiNuaOfBj1RhAR_mhuvZyJIyvRKf2NRYTZXiafJijH7fl9SWkoxDUVZ2NlLKXSI3kTN8g6c0vDgsOVOhvyRD3Xx/s1600-h/110859301_5cc01c7ed5_m.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 217px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEl48GdF9aZVtXP2bHcIeAbrA8LbHmgKk6Vhmzs_SmDGAIrIkAToXnzCiNuaOfBj1RhAR_mhuvZyJIyvRKf2NRYTZXiafJijH7fl9SWkoxDUVZ2NlLKXSI3kTN8g6c0vDgsOVOhvyRD3Xx/s320/110859301_5cc01c7ed5_m.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5391481707641128402" /></a><div style="text-align: justify;"><span style="font-family:verdana;">Целью стрессового тестирования (stress testing) является оценка работоспособности системы в условиях повышенных и предельных нагрузок.</span><br /><br /><span style="font-family:verdana;"><span style="font-weight: bold;">При проведении стрессового тестирования нас интересует</span>:</span><br /><br /><span style="font-family:verdana;"><span style="font-weight: bold; font-style: italic;">как система восстанавливается после прекращения предельной нагрузки</span>. Для этого, в течении короткого промежутка времени дают системе предельную нагрузку, после чего возвращают нормальную (рабочую) нагрузку. Конечно, предельную нагрузку нужно сначала выявить (если помните, это была цель тестирования производительности, описанного <a href="http://qa-staff.blogspot.com/2009/03/load-testing.html">здесь</a>). После прекращения предельной нагрузки, система должна постепенно вернуться в нормальное состояние (тоесть, мы должны увидеть нормальное (среднее) время отклика).</span><br /><br /><span style="font-family:verdana;"><span style="font-style: italic; font-weight: bold;">как долго система может работать на предельной нагрузке</span>. Для этого дают системе предельную нагрузку и смотрят через какое время она свалится (или не свалится).</span><br /><br /><span style="font-family:verdana;">Примечание: предельная нагрузка - это не нагрузка при которой система сваливается, а нагрузка, при которой система еще остается работоспособной, но если ее немного увеличить - то сваливается.</span><br /><br /><br /><br /><span style="font-family:verdana;"> </span></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-40711037138034275912009-03-28T11:52:00.005+02:002009-06-09T13:07:28.153+03:00Тестирование производительности (performance testing)<div style="text-align: justify;"><span style="font-family:verdana;">Целью тестирования производительности (lerformance testing) является определение изменений в работе приложения в зависимости от интенсивности нагрузки.</span><br /><br /><span style="font-family:verdana;">Например, в первые 20 мин моделируем одновременную работу 10 пользователей (10 пользователей выполняют операции с интервалом в 5 сек). Потом следующие 20 мин увеличиваем кол-во пользователей до 20, следующие 20 мин - увеличиваем до 50 и.т.д пока приложение не свалится или пока не начнет работать так медленно, что работой это не назовешь. </span><br /><br /><span style="font-family:verdana;">Примечание: кол-во пользователей и интервал зависит от тестируемой системы. Некоторым системам для нормальной работы достаточно поддерживать одновременную работу 10-ти пользователей, а некоторым - 10 тысяч пользователей.</span><br /><br /><span style="font-family:verdana;">Можно также изменять интервал выполнения операций. </span><br /><span style="font-family:verdana;">Чем больше пользователей - тем больше нагрузка на систему. </span><br /><span style="font-family:verdana;">С интервалом все наоборот, чем меньше интервал выполнения операций - тем больше нагрузка на систему. </span><br /><br /><span style="font-weight: bold;font-family:verdana;" >При тестировании производительности нас интересует:</span><br /><br /><ul><li><span style="font-family:verdana;"><span style="font-weight: bold; font-style: italic;">изменение времени выполнения операций в зависимости от интенсивности операций</span> (где интенвисность операций = кол-во пользователей * кол-во операций на единицу времени)</span></li><li><span style="font-family:verdana;"><span style="font-weight: bold; font-style: italic;">определение границы приемлемой производительности</span> (где приемлемая производительность - это либо четко прописанное в ТЗ среднее время отклика системы, либо такая скорость работы,когда уже с приложением нормально работать невозможно) Кстати, для разных операций приемлемая производительность может быть разной. Например, если пользователю приложения нужно выполнять операцию 10 раз в час - то выполняться она должна быстро и не раздражать пользователя вечным ожиданием. Если пользователю нужно выполнить операцию раз в неделю или даже раз в день (например, сформировать сложный отчет), то такая операция может выполняться и дольше. Пользователь в это время может заниматься другими делами или просто пойти выпить кофе.</span></li><li style="font-style: italic; font-weight: bold;"><span style="font-family:verdana;">определение количества пользователей, которые могут одновременно работать с приложением</span></li></ul><span style="font-family:verdana;"> </span><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com2tag:blogger.com,1999:blog-3634790351945745809.post-34651415620411084552009-03-28T11:17:00.006+02:002009-06-09T13:13:37.192+03:00Введение в нагрузочное тестирование (load testing)<div style="text-align: justify;"><span style="font-family:verdana;">Нагрузочное тестирование (load testing) - это автоматизированное тестирование, которое имитирует одновременную работу множества пользователей над тестируемым приложением.</span><br /></div><div style="text-align: justify;"><br /><span style="font-family:verdana;">Количество пользователей и частота их действий зависит от цели, которую ставят перед тестированием и уже исходя из целей, нагрузочное тестирование разделяют на несколько видов:</span><br /><br /><ul><li><span style="font-family:verdana;">тестирование производительности (performance testing)</span></li><li><span style="font-family:verdana;">стрессовое тестирование (stress testing)</span></li><li><span style="font-family:verdana;">обьемное тестирование (volume testing)</span></li><li><span style="font-family:verdana;">тестирование стабильности (stability testing)</span></li></ul><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUVl6tM4B2H2EFBQrAk80iHPNBNzeO48x4CTQI8rCWDcPgHVRvmApxLEjUpH97nrUKv6hFVBNz3O6Z-HOexpT98TKLfOuVyJetalh2aRi4DuZqUiFWhm6h1WA49D6U0_pvbsOCPzGXFBDr/s1600-h/SNAG-0090.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 244px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUVl6tM4B2H2EFBQrAk80iHPNBNzeO48x4CTQI8rCWDcPgHVRvmApxLEjUpH97nrUKv6hFVBNz3O6Z-HOexpT98TKLfOuVyJetalh2aRi4DuZqUiFWhm6h1WA49D6U0_pvbsOCPzGXFBDr/s320/SNAG-0090.jpg" alt="" id="BLOGGER_PHOTO_ID_5342603918091883922" border="0" /></a><span style="font-family:verdana;">Есть множество инстументов для проведения нагрузочного тестирования, с помощью которых можно смоделировать необходимую модель нагрузки на приложение, провести тестирование и получить результаты. Каждый выбирает инструменты под себя, и если погуглить, то можно найти, то что нужно именно Вам и именно для Ваших целей. Для себя я выбрала WAPT на примере которого и буду рассказывать о моделировании разных видов нагрузки для разных целей тестирования.</span><br /><br /><span style="font-family:verdana;">В следующих постах я расскажу отдельно о каждом виде нагрузочного тестирования.</span></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-5789159383533063022009-03-21T18:46:00.007+02:002009-03-21T18:54:21.919+02:00Указатель направления сортировки<!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Обычная таблица"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU">На днях в нашем коллективе завязался спор по поводу стрелки, которая указывает направление сортировки столбика таблицы (также, вместо стрелок для указания сортировки часто используются треугольники).<o:p></o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU"><o:p> </o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU">Мнения разделились. Одни (в том числе и я) утверждают,<span style=""> </span>что правильно, когда стрелка вниз или треугольник, направленный углом<span style=""> </span>вниз должен показывать направление обратной сортировки<span style=""><br /></span></span></p><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9ZO3UsUzPqJduM0zgxX2Ah7lc9POX2RneQ-12WwwXGZxQnvtjE90WEbhJxY-UhiRfo71BAbmGehzkmQaUMygAHvbsxut4Op9LkfkVcBIAhrQTPVUhYrzvQxq_b_vYOonIsnWIjIGUCd6b/s1600-h/1.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 73px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9ZO3UsUzPqJduM0zgxX2Ah7lc9POX2RneQ-12WwwXGZxQnvtjE90WEbhJxY-UhiRfo71BAbmGehzkmQaUMygAHvbsxut4Op9LkfkVcBIAhrQTPVUhYrzvQxq_b_vYOonIsnWIjIGUCd6b/s200/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5315684400986220930" border="0" /></a></p><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU"><o:p></o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU"><o:p> </o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU">А стрелка вверх или треугольник углом вверх должен показывать направление прямой сортировки.</span></p><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMqD5H2PAKFY4x17xv-0yUDhPTLw3E0xP8ZnLWWrS_b3ejBDHEf3y9jWDx4-gIu1knrRIhkjJEHK6BekcGX6V-07WNdf9cgHy9ammaEIqmGcFffz-Rx7zqiKrFuGSc-ggJ8TqmKjJkvRst/s1600-h/2.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 64px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMqD5H2PAKFY4x17xv-0yUDhPTLw3E0xP8ZnLWWrS_b3ejBDHEf3y9jWDx4-gIu1knrRIhkjJEHK6BekcGX6V-07WNdf9cgHy9ammaEIqmGcFffz-Rx7zqiKrFuGSc-ggJ8TqmKjJkvRst/s200/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5315684602268529826" border="0" /></a><span style="" lang="RU"><o:p></o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU"><o:p> </o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU">Другие, утверждают, что все наоборот. Тоесть, стрелка (треугольник) вниз должен показывать прямую сортировку, в вверх – обратную.<o:p></o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU"><o:p> </o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU">Исследовав несколько примеров ПО, мы увидели что встречаются оба случая указания сортировки</span><span style="" lang="RU">. Например, в почтовике </span>Microsoft<span style=""> </span>Outlook<span style=""> <span lang="RU">треугольник углом вниз указывает на обратное направление сортировки, а углом вверх – на прямое. А вот в почтовике </span></span>The<span style=""> </span>Bat<span style="" lang="RU">! Все с точностью, до наоборот. <o:p></o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify; font-family: verdana;" class="MsoNormal"><span style="" lang="RU"><o:p> </o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify; font-family: verdana;" class="MsoNormal"><span style="" lang="RU">Получается, что в нашем споре победителя не оказалось. Интересно, правда, было бы узнать побольше мнений. Сколько людей считают правильным первый случай (треугольник носом вниз – это обратное направление сортировки)?<span style=""> </span>Сколько людей считают правильным второй случай (треугольник носом вниз – это прямое направление сортировки)?<o:p></o:p></span></p><div style="text-align: justify;"> </div><p style="text-align: justify;font-family:verdana;" class="MsoNormal"><span style="" lang="RU"><o:p> </o:p></span></p><div style="text-align: justify;"> </div><p face="verdana" style="text-align: justify;" class="MsoNormal"><span style="" lang="RU">Ответы пишите в комменты.<o:p></o:p></span></p><div style="text-align: justify;"> </div><p face="verdana" style="text-align: justify;" class="MsoNormal"><span style="" lang="RU"><o:p> </o:p></span></p>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com4tag:blogger.com,1999:blog-3634790351945745809.post-12777834103212954782009-03-19T21:49:00.006+02:002009-10-13T23:56:34.511+03:00Внимательность - важное качество тестировщика<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-BM8gdAJG9s9VQEiahm7rMbSB3x3AuC26eNye0lfInGIevRrlEWhtcOb26HvzQIWUMWHyXW85qyNXxT4YL59ANA9CpLQp89eoSg7OfRKSEJMug01PivhYBw-ySfDfNg7mgmf0mL2sDzq4/s1600-h/%D0%B6%D0%B8%D1%80%D0%B0%D1%84%D1%8B2.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 258px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-BM8gdAJG9s9VQEiahm7rMbSB3x3AuC26eNye0lfInGIevRrlEWhtcOb26HvzQIWUMWHyXW85qyNXxT4YL59ANA9CpLQp89eoSg7OfRKSEJMug01PivhYBw-ySfDfNg7mgmf0mL2sDzq4/s320/%D0%B6%D0%B8%D1%80%D0%B0%D1%84%D1%8B2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5392191367680399106" /></a><span style="font-family:verdana;">Безусловно, внимательность - одно из самых важных качеств тестировщика.</span><br /><span style="font-family:verdana;">Проверьте обладаете ли Вы этим качеством - решите задачи, приведенные в этом разделе.</span><br /><span style="font-family:verdana;"> </span><br /><div style="text-align: center; font-family: verdana;">* * *<br /></div><span style="font-family:verdana;">Перед Вами поставлена задача - вставить в стену окно.</span><br /><span style="font-family:verdana;">Какие вопросы вы зададите перед тем, как приступить к выполнению этой задачи? </span><br /><br /><div style="text-align: center;"><span style="font-family:verdana;">* * *</span><br /></div><span style="font-family:verdana;">Внимательно прочитайте условие, но только один раз, и попробуйте сразу же ответить на вопрос.<br /><br />На конечной остановке в автобус сели четырнадцать мужчин и две женщины. На первой остановке сошли двое мужчин и вошли две женщины. На следующей остановке вышли почти все мужчины (осталось только трое), а на следующей вошли пять женщин. Проехав с полкилометра, автобус остановился, и в него вошел еще один мужчина. Сколько всего было остановок на пути следования автобуса?</span>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-92041447646077342172009-03-19T21:23:00.006+02:002009-06-01T17:27:22.285+03:00Security testing. Php-including.<div style="text-align: justify;"><span style="font-family:verdana;">Php-including это, казалось бы, самая изветсная "дыра" в безопасности сайта, но в то же время и самая распространенная. Возникает она, когда данные, переданные сценарию в виде параметров, используются без дополнительной проверки.</span><br /><br /><span style="font-family:verdana;">Стратегия обнаружения уязвимости следующая.</span><br /><br /><span style="font-family:verdana;">Например, на тестируемом сайте мы видим url - <span style="font-style: italic;">http://www.testsite.ru/index.php?file=file.php</span></span><br /><span style="font-family:verdana;">Изменяем немного этот url, вот так - <span style="font-style: italic;"> http://www.testsite.ru/index.php?file=[test]</span> и выполняем. </span><br /><br /><span style="font-family:verdana;">Если уязвимость имеет место, то увидим что-то вроде этого: </span><br /><br /><span style="font-family:verdana;">«Warning: main([test].php): failed to open stream: No such file or directory in /home/user/www/file.php on line 3»</span><br /><br /><span style="font-family:verdana;">Но, стоит заметить, что подобное сообщение мы получим только в том случае, если на сервере в опциях PHP включен режим отладки. Иначе, придется вникнуть в хакерство поглубже.</span><br /><br /><span style="font-family:verdana;">Пишем запрос вида </span><span style="font-family:verdana;"><span style="font-style: italic;">http://www.testsite.ru/index.php?file=/etc/passwd</span>. Если нам повезло, то мы получим содержимое файда passwd на сервере.</span><br /><br /><span style="font-family:verdana;">Это основные и самые простые примеры как можно протестировать на php-including уязвимость. Далее включаем фантазию и google! </span><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com0tag:blogger.com,1999:blog-3634790351945745809.post-91947623291304406172009-03-04T23:23:00.005+02:002009-04-17T12:14:00.894+03:00Нестандартное мышление - без него не обойтись<div style="text-align: justify;"><span style="font-family:verdana;">Тестировщик должен видеть то, чего не видят другие, тоесть - смотреть на вещи нестандартно. Следующие задачки проверяют наличие нестандартного мышления.<br /><br /></span><div style="text-align: center;"><span style="font-family:verdana;">* * *</span><br /></div><span style="font-family:verdana;">Имеется одна в минуте и две в моменте, но только одна в миллион лет. Что это?<br /><br /></span><div style="text-align: center;"><span style="font-family:verdana;">* * *</span><br /></div><span style="font-family:verdana;">В каком случае 6 детей, 2 собаки, 4 взрослых, забравшись под один обычный зонтик, не намокнут?<br /><br /></span><div style="text-align: center;"><span style="font-family:verdana;">* * *</span><br /><span style="font-family:verdana;"></span></div><span style="font-family:verdana;">Есть 15 копеек из двух монет, причём одна из монет - не пятачок. Какие это монеты?<br /><br /></span><div style="text-align: center;"><span style="font-family:verdana;">* * * </span><br /></div><span style="font-family:verdana;">Что общего между ежиком и молоком ?<br /><span style="font-style: italic;font-size:85%;" >(Задачк</span><span style="font-style: italic;font-size:85%;" >у реально</span><span style="font-style: italic;font-size:85%;" > загадывали детям для поступления в первый клас в лицей. Бедные дети...)</span><br /><br /></span></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com2tag:blogger.com,1999:blog-3634790351945745809.post-9359657869724786022009-02-20T14:59:00.005+02:002009-10-13T23:58:13.241+03:00Логическое мышление - полезно для всех<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7xJJojXcGj8B49vErbcZwDUCkciI3RooC7Lh3obQVf3-tXYQox4xUXirDpxaqYHYBKZhdcJ8_l73SKH8d04H9mjIkPgZCveqcgxxq6-3MBwBvaXykIDiVi7aOZeVK_wPjhMINbDPguC6D/s1600-h/labyrinth-1.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 162px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7xJJojXcGj8B49vErbcZwDUCkciI3RooC7Lh3obQVf3-tXYQox4xUXirDpxaqYHYBKZhdcJ8_l73SKH8d04H9mjIkPgZCveqcgxxq6-3MBwBvaXykIDiVi7aOZeVK_wPjhMINbDPguC6D/s200/labyrinth-1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5392191776173256834" /></a><span style="font-family:verdana;">Наличие логического мышления полезно тестировщику, как и любому человеку.<br />Решите следующие задачки чтобы проверить, как у вас с логикой.<br /><br /></span><div style="text-align: center;"><span style="font-family:verdana;">* * *</span><br /><span style="font-family:verdana;"></span></div><span style="font-family:verdana;">Есть 12 шариков. Один шарик отличается весом от остальных. Как за три взвешивания определить какой шарик отличается, если не известно тяжелее он или легче.<br /><br /></span><div style="text-align: center;"><span style="font-family:verdana;">* * *</span><br /><span style="font-family:verdana;"></span></div><div style="text-align: justify;"><span style="font-family:verdana;">Есть 10 мешков с монетами, в одном - все монеты фальшивые. В остальных мешках фальшивых монет нет. Настоящие монеты весят ровно 10 грамм каждая. Фальшивые отличаются по весу. Есть электронные весы, которые показывают точный вес. </span><br /><br /><span style="font-family:verdana;">За одно взвешивание нужно определить, в каком мешке фальшивые монеты. На весы можно класть сколько угодно монет.<br /><br /></span><div style="text-align: center;"><span style="font-family:verdana;">* * *</span><br /><span style="font-family:verdana;"></span></div><span style="font-family:verdana;">Марина сказала, что ей позавчера было 13 лет, а в будущем году она отметит 16 лет. Верно ли утверждение Марины?</span><br /></div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com1tag:blogger.com,1999:blog-3634790351945745809.post-35766123565995581792009-02-12T16:58:00.011+02:002009-03-05T21:54:33.934+02:00Security testing. XSS атака.<span style="font-family:verdana;">В этой статье пойдет речь о том как найти на тестируемом сайте уязвимое место для XSS атаки.</span> <span style="font-family:verdana;">Вначале немного об этой атаке.</span> <span style="font-family:verdana;"><span style="font-weight: bold;"><br /><br />XSS атака</span> - это атака на сайт, использующая уязвимость, когда некорректно работают фильтры входящей информации. Информация не проверяется должным образом или вообще не проверяется :) перед тем как вернуть результат пользователю. Это дает возможность атаки на пользователя.</span> <span style="font-weight: bold;font-family:verdana;" ><br /><br />Как проверить, есть ли на сайте подобные уязвимости?</span><br /><div style="text-align: justify;"><ol><li><span style="font-family:verdana;">Ищем на сайте места, где данные отправляются на сервер.Например, стандартная форма регистрации .</span></li><li><span style="font-family:verdana;">По очереди вставляем в поля следующий код </span></li></ol><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUDi5qG-MDjS2QHLwj-wd9wSa6r8lmn30TZRALjjrkRfpmGdgyJ38zK5bR6gBfcbCR9IWcRCwwt8hyphenhyphenmz-TIyC88-z0fXpr2uYMIpwlqRqQvY9eUeHdk-eEpM9Ap4oaUstfRUq1oo5F4LIG/s1600-h/SNAG-0207.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 263px; height: 23px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUDi5qG-MDjS2QHLwj-wd9wSa6r8lmn30TZRALjjrkRfpmGdgyJ38zK5bR6gBfcbCR9IWcRCwwt8hyphenhyphenmz-TIyC88-z0fXpr2uYMIpwlqRqQvY9eUeHdk-eEpM9Ap4oaUstfRUq1oo5F4LIG/s320/SNAG-0207.jpg" alt="" id="BLOGGER_PHOTO_ID_5301929197252092306" border="0" /></a><ol><li><span style="font-family:verdana;">Сабмитим форму.</span></li></ol><span style="font-family:verdana;">Если поле не фильтруется, то скрипт успешно отправится и выполнится. В результате вы увидите следующее окошко</span> <span style="font-family:verdana;"><br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBGE1O5hfCY-kDkhEHHyAVPbBol9ughXDcRW4INcXwfb1YzdYULCsWk3QqCQ5Zm-ximVILqQvZkXZCSe4ttHT5y-Nj5RIH_wJhn7WIrPdy2X_73TZMVPyiEqeOAi9ef8jCtGOd_BQr088/s1600-h/SNAG-0204.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 126px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBGE1O5hfCY-kDkhEHHyAVPbBol9ughXDcRW4INcXwfb1YzdYULCsWk3QqCQ5Zm-ximVILqQvZkXZCSe4ttHT5y-Nj5RIH_wJhn7WIrPdy2X_73TZMVPyiEqeOAi9ef8jCtGOd_BQr088/s320/SNAG-0204.jpg" alt="" id="BLOGGER_PHOTO_ID_5301926818223541586" border="0" /></a><br /><span style="font-family:verdana;">Все! Уязвимость найдена :).Репортуем баг программистам.</span> <span style="font-family:verdana;"><br /><br /><span style="font-style: italic; color: rgb(0, 0, 102);">Кстати, </span></span><span style="font-style: italic; color: rgb(0, 0, 102);font-family:verdana;" >в пост </span><span style="font-family:verdana;"><span style="font-style: italic; color: rgb(0, 0, 102);">пришлось скрипт вставлять как картинку, иначе он выпонялся :)</span><br /><span style="font-style: italic; color: rgb(0, 0, 102);">Вот тебе и XSS атака.</span><br /><br />Что ж тут такого страшного, спросите Вы. Ну подумаешь, вывели сообщение.<br /></span><span style="font-family:verdana;">Ну, вообще то, делать страшные вещи и реально ломать сайт – это не наша работа. Для этого есть хакеры :)</span> <span style="font-family:verdana;">Наша работа найти уязвимость и мы ее нашли.<br /><br /></span><span style="font-family:verdana;">Но для убедительности, приведу примерную последовательность действий, как используя эту уязвимость на странице, хакер может атаковать пользователя.<br /><br />Итак.<br /></span><span style="font-family:verdana;">Первое. Для успешной атаки, пользователь должен быть залогинен (чтобы в его куках сохранилась информация о его авторизации в системе).<br />Второе. </span><span style="font-family:verdana;">Хакер, должен подготовить XSS код, который будет указывать на уязвимую страницу.<br /><br />Третье. Хакер должен заманить на данную страницу пользователя.</span> <span style="font-family:verdana;">Для этого он должен каким-то образом дать жертве ссылки на данную страницу (тоесть подготовленный URL) и заставить пользователя зайти на эту страницу.<br />Не буду вдаватся в подробности как он это сделает. В инете существует множество способов. </span> <span style="font-family:verdana;"><br /><br />После того как жертва пойдет по ссылке, сработает XSS код и хакер получит куки жертвы (с авторизационной информацией). При этом жертва ничего даже не заметит.</span> <span style="font-family:verdana;"><br /><br />После получения данных с куками пользователя системы, хакер может использовать их для входа в систему от имени этого пользователя.<br />А представьте, если пользователем окажется админ :)....</span> </div>emeraldahttp://www.blogger.com/profile/08407161298930425430noreply@blogger.com1