Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Все мы теперь тестировщики!



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Все мы теперь тестировщики!
2015-11-23 10:45

Автор: Джо Колантонио

Оригинал статьи: http://www.joecolantonio.com/2015/11/03/were-all-testers-now/

Перевод: Ольга Алифанова

 

Когда я готовил презентацию "Ведущие тренды 2016 года" для шведской конференции OreDev, я задумался о том, как сильно изменилась индустрия разработки ПО за последние 15 лет. Я помню времена, когда специалисты по тестированию и обеспечению качества считались вторым сортом, а миром правили разработчики. И тут меня осенило: ведь сейчас все мы - тестировщики.

 

Смещение влево

 

Во многом это произошло благодаря стратегии "смещения тестирования влево" (стратегия раннего тестирования) как можно раньше в ходе разработки. В результате ваша команда концентрируется на качестве с самого начала проекта, а не рассчитывает на то, что баги будут найдены в конце жизненного цикла разработки.

 

Все больше и больше компаний применяют этот подход, и в результате тестирование и автоматизация перестают быть прерогативой исключительно QA, и роли разработчика и тестировщика постепенно размываются. Перемены всегда пугают, но ваша команда может облегчить себе жизнь при "смещении влево", выполняя ряд несложных рекомендаций.

 

Программа пяти шагов

 

Эти пять шагов очень помогли командам, с которыми я работал:

  • сделайте разработчиков ответственными за тестирование;
  • проводите ревью кода;
  • научите тестировщиков программировать;
  • используйте единые инструменты;
  • начинайте проект, держа в уме его тестируемость.

Читать статью полностью...



Регистрация и восстановление пароля
2015-11-23 14:43

Приветствую!

На сей раз у меня возникла проблема с написанием теста для проверки регистрации и восстановлением пароля.

Для регистрации использую сервис одноразовой почты dropmail.me

Реализовано:

1. Заходим, забираем почтовый ящик

2. Открываем новую вкладку, переходим на целевой сайт

3. Регистрируемся 

4. Разлогиниваемся и "забываем пароль"

 

Не реализовано:

3.1 Добавить проверку, что регистрация прошла успешно

5. Переключаемся на почту, находим письмо.В высланном письме есть:

    б) сам пароль (всегда 8 символов), который нужно сохранить в переменную, чтобы потом залогиниться

    а) ссылка, на которую надо кликнуть для подтверждения изменения пароля (откроется окно)

6. Залогиниться с новым паролем

7. Проверить, залогинился ли

 

Ниже приведен недоделанный код. Подскажите, в каком направлении двигаться, что читать или само решение.

 

PS: может посоветуете сервис одноразовой почты поприветливее интерфейсом, чтобы письма без задержек приходили (mail temp сначала нормально присылал, потом стал с задержкой в 1+ час)

package com.holydiverinc.webdriver;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;

import java.util.concurrent.TimeUnit;

import static org.junit.Assert.fail;

public class YTPasswordRecovery {
    private WebDriver driver;
    private String baseUrl;
    private boolean acceptNextAlert = true;
    private StringBuffer verificationErrors = new StringBuffer();

    @Before
    public void setUp() throws Exception {
        FirefoxProfile profile = new  ProfilesIni().getProfile("Webdriver");
        driver = new FirefoxDriver(profile);
        baseUrl = "https://yt.ua/ru";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.manage().window().maximize();
    }


    @Test
    public void ytRegistration() throws Exception {
        //забираем почтовый ящик
        driver.navigate().to("http://dropmail.me/ru/");
        Thread.sleep(5000);
        driver.findElement(By.xpath("//h2/span")).click();
        driver.findElement(By.xpath("//h2/span")).sendKeys(Keys.chord(Keys.CONTROL, "c"));
        
        //новая вкладка
        driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
        
        //открываем целевой сайт, регистрируемся
        driver.get(baseUrl);
        driver.findElement(By.xpath("//div[@id='ytLogin']")).click();
        driver.findElement(By.xpath("//div[@id='ytAuthWindow']/div[2]/table/tbody/tr/td[4]/div/img")).click();
        driver.findElement(By.xpath("//div[@id='ytLoginRegistration']/div/input")).click();
        driver.findElement(By.xpath("//div[@id='ytLoginRegistration']/div/input")).sendKeys(Keys.chord(Keys.CONTROL, "v"));
        driver.findElement(By.xpath("//div[@id='ytLoginRegistration']/div/input[2]")).clear();
        driver.findElement(By.xpath("//div[@id='ytLoginRegistration']/div/input[2]")).sendKeys("111111Qq");
        driver.findElement(By.xpath("//div[@id='ytLoginRegistration']/div/input[3]")).clear();
        driver.findElement(By.xpath("//div[@id='ytLoginRegistration']/div/input[3]")).sendKeys("111111Qq");
        driver.findElement(By.xpath("//button[@onclick='auth.onRegister();']")).click();
        driver.findElement(By.xpath("//button[@id='popup_ok']")).click();
        
        //разлогиниваемся и "теряем" пароль
        driver.findElement(By.xpath("//div[@id='ytLogout']")).click();
        driver.findElement(By.xpath("//button[@id='popup_ok']")).click();
        driver.findElement(By.xpath("//div[@id='ytLogin']")).click();
        driver.findElement(By.cssSelector("p.pass-reset")).click();
        driver.findElement(By.xpath("//button[@id='popup_ok']")).click();
        driver.findElement(By.xpath("//button[@id='popup_ok']")).click();
        driver.findElement(By.cssSelector("body")).sendKeys(Keys.chord(Keys.CONTROL, Keys.TAB));
        
        //восстанавливаем пароль



    }

    private void assertEquals(String s, String text) {
    }

    @After
    public void tearDown() throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);
        }
    }

    private boolean isElementPresent(By by) {
        try {
            driver.findElement(by);
            return true;
        } catch (NoSuchElementException e) {
            return false;
        }
    }

    private boolean isAlertPresent() {
        try {
            driver.switchTo().alert();
            return true;
        } catch (NoAlertPresentException e) {
            return false;
        }
    }

    private String closeAlertAndGetItsText() {
        try {
            Alert alert = driver.switchTo().alert();
            String alertText = alert.getText();
            if (acceptNextAlert) {
                alert.accept();
            } else {
                alert.dismiss();
            }
            return alertText;
        } finally {
            acceptNextAlert = true;
        }
    }
}



Требуется менеджер по тестированию Красноярск
2015-11-23 15:39

Крупная производственная компания (промышленное производство, один из самых привлекательных работодателей Красноярска) ищет менеджера по тестированию программных продуктов (новая должность, start-up функции на предприятии)!

 

Задачи:

  • выстраивание системы, методологии тестирования, определение общих целей и стратегии тестирования систем компании (SAP, LIMS LabWare, MES Wonderware, DocsVision);
  • планирование, организация и управление тестированием, руководство командой тестирования;
  • анализ документации на продукт, предназначенный для тестирования:
  • разработка планов тестирования;
  • определение требований к тестам, проектирование тестов;
  • разработка тестовых процедур и совокупности тестовых данных на основе требований;
  • проведение тестирования и составление отчетов о ходе тестирования.

Требования:

  • опыт работы в тестировании программных продуктов (нагрузочное, автоматизированное, ручное);
  • знание методологии и методик тестирования;
  • знание типов и видов тестирования, различных классификаций;
  • знание автоматизированных сред разработки и тестирования;
  • знание основ SQL;
  • начальные навыки разработки ПО.

 

Условия:

  • полностью официальная з/п, официальное трудоустройство, все гарантии по ТК РФ;
  • ДМС;
  • дотация на питание;
  • график работы 8.00-17.00, в пятницу 8.00-16.00;
  • работа с масштабными проектами, возможности дальнейшего развития.

Контакты для связи и резюме:

y.popova@nvs.ancor.ru
Телефон: +7 (383) 289–29–51, доб.3063
Юлия Попова
Младший консультант,
Поддержка бизнеса
ANCOR Professional


xUnit Framework. Timeout теста.
2015-11-23 17:00

Всем привет.

Пишу тесты, используя xUnit фреймворк. Столкнулась с необходимостью останавливать тесты в случае, если время выполнения  превысило определенное заданное (Timeout).

Использую версию 2.0+. В этой версии было удалено свойство Timeout из класса FactAttribute

Перерыла кучу форумов,  не нашла адекватного решения. Нужен совет как можно это реализовать.

Как вариант использовать CancellationToken. Но этот вариант нельзя будет применить ко всем тестам с помощью атрибутов.



© 2010 | Software-Testing.Ru


В избранное