ТЭА вариант 1
технического обслуживания автомобиля 8 2 Назначение, устройство и принцип действия газоанализатора «Автотест – 01.02» 9 Заключение 19 Список используемых источников 20 Исходные данные принимаются в соответствии
Как убрать time.sleep() или чем его заменить а автотестах? Как убрать time.sleep() в коде или чем его заменить…
Как убрать time.sleep() или чем его заменить а автотестах? Как убрать time.sleep() в коде или чем его заменить , чтобы тесты проходили правильно ?
Ответ на вопрос
Чтобы убрать использование time.sleep() в автотестах, можно воспользоваться более эффективными и надежными методами ожидания элементов или событий на странице. Вот некоторые из них:Implicit wait в Selenium WebDriver: установка глобального времени ожидания, в течение которого WebDriver будет ждать появления элемента на странице перед выбрасыванием исключения.Пример:driver.implicitly_wait(10) # ожидание в течение 10 секундExplicit wait в Selenium WebDriver: создание явного ожидания для конкретного элемента или события на странице.Пример:from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myElement")))Пользовательские ожидания: написание собственных методов ожидания, основанных на конкретных условиях или событиях на странице.Пример:def wait_for_element(driver, locator, timeout=10):
wait = WebDriverWait(driver, timeout)
return wait.until(EC.presence_of_element_located(locator))Использование данных методов ожидания поможет избавиться от необходимости использовать time.sleep() в автотестах и сделает их более надежными и эффективными.
Еще
Как отделить логику от взаимодействия с базой данных? Всем привет! Подскажите, пожалуйста, как правильно…
правильно связать эти классы между собой? Так же необходима возможность покрывать данные классы автотестами.
Ответ на вопрос
Для отделения логики от взаимодействия с базой данных в PHP можно использовать паттерн проектирования Repository. Создайте класс ItemRepository, который будет содержать методы для работы с сущностями, например, методы для получения всех элементов, добавления элемента, удаления элемента и т.д.class ItemRepository {
private $db;
public function __construct(DbItems $db) {
$this->db = $db;
}
public function getAllItems() {
return $this->db->getAll();
}
public function addItem($item) {
return $this->db->add($item);
}
// Добавьте другие методы для работы с сущностями здесь
}Затем создайте экземпляр класса DbItems и передайте его в конструктор ItemRepository.$db = new DbItems();
$itemRepository = new ItemRepository($db);Используйте ItemRepository для работы с сущностями, таким образом, логика и взаимодействие с базой данных будут отделены.Для тестирования классов вы можете использовать фреймворк для юнит-тестирования, например, PHPUnit. С помощью него вы сможете написать тесты для методов ItemRepository, проверить их работоспособность и корректность.
Еще
Как называется такой подход к разработке, тестировани и баг-фиксу? Работал на проекте, где совершенно не было…
очевидны - логические ошибки таким образом не выловишь, только по обращению клиента. Ну и, само собой, автотесты предусмотрели бы ошибку заранее. Плюсы - не тратится время на тесты, благодаря чему быстрее пилятся
Ответ на вопрос
Данный подход к разработке, при котором отладка и исправление ошибок происходит путем реакции на обратную связь от клиентов, а не через автоматизированные тесты, можно назвать "реактивной разработкой" или "разработкой на основе обратной связи". Этот подход является компромиссом между быстрой разработкой и стабильностью программного продукта, и в некоторых случаях может быть эффективным, особенно в условиях ограниченных сроков или быстро меняющихся требований клиента. Однако, стоит помнить, что такой подход не исключает необходимости тестирования и предупреждения ошибок заранее, так как постоянное реагирование на возникающие проблемы может быть неэффективным и привести к накоплению технического долга. Идеальным вариантом является использование комплексного подхода, включающего в себя как реактивную, так и проактивную разработку, а также автоматизированные тесты и регулярные код-ревью.
Еще
Оправданно ли поведение менеджера проекта в описанной ситуации? Добрый вечер, я работаю тестером в небольшой…
можно больше, чтобы тестировщики не обращали внимания на него в будущем (уже остапа понесло; а автотесты поддерживать кому? а то, что не покрыто ими?). Он может забрать повешенный на меня запрос, "проверить"
Ответ на вопрос
Поведение описанных менеджеров проектов не является оправданным. Менеджер должен концентрироваться на своих обязанностях, координировать работу команды, управлять проектом и общаться с заказчиками, а не вмешиваться в технические аспекты работы специалистов. Вмешательство менеджера в работу специалистов может привести к снижению производительности, нарушению рабочего процесса и возникновению конфликтов. Кроме того, менеджер должен доверять своим подчиненным и дать им возможность профессионально развиваться и самостоятельно принимать решения в рамках своей компетенции.Таким образом, "перекрестная компетентность" в данном контексте является нежелательной чертой и может негативно сказаться на работе команды и результате проекта. Менеджер должен проявлять уважение к профессиональным навыкам своих подчиненных и не вмешиваться в их работу без необходимости.
Еще