Každá služba končí odovzdaním funkčnej pipeline a dokumentácie. Transparentná cena, žiadny retainer lock-in. Pokračujeme len, keď chcete.
Postavíme kompletný framework s Page Object pattern, paralelným spúšťaním a HTML reportami. Vyberieme ti optimálny tool — Cypress pre rýchle iterácie a developer experience, Playwright pre cross-browser (Chromium / Firefox / WebKit) a zložité async flow.
// cypress/support/pages/loginPage.ts export class LoginPage { emailInput = () => cy.get('[data-qa="email"]'); passwordInput = () => cy.get('[data-qa="password"]'); submitBtn = () => cy.get('[data-qa="submit"]'); login(email: string, password: string) { this.emailInput().type(email); this.passwordInput().type(password); this.submitBtn().click(); } }
// webdriverio + Appium Android describe('Push notification flow', () => { it('opens deep link from push', async () => { await driver.executeScript( 'mobile: shell', [{ command: 'am start -a android.intent.action.VIEW -d myapp://orders/42' }] ); await $('~orderDetailTitle').waitForDisplayed(); await expect($('~orderId')).toHaveText('#42'); }); });
Real device cloud (BrowserStack, Sauce Labs) alebo lokálne emulátory. Pokrývame biometrické prihlásenie, push notifikácie, deep linking, in-app purchase flow, background/foreground transitions.
Pipeline, ktorá sa nezlomí. Paralelizácia cez shardy, retry logika pri flaky testoch, HTML + JUnit reporty, Slack notifikácie s priamym linkom na failure video. Celé to zazvoní v channeli do 30 sekúnd od commitu.
// Jenkinsfile — declarative pipeline { agent { label 'cypress-pool' } parameters { string(name: 'SPEC', defaultValue: '**/*.spec.ts') } stages { stage('Run E2E') { parallel { stage('Shard 1/4') { steps { sh 'cypress --record --parallel' } } stage('Shard 2/4') { steps { sh 'cypress --record --parallel' } } } } } post { always { slackSend(channel: '#qa-alerts') } } }
# Python — Azure DevOps → Jira sync def sync_azure_bugs_to_jira(project='QAHUB'): bugs = fetch_azure_bugs( wiql=""" SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] IN ('New', 'Active') AND [System.Tags] CONTAINS 'RO' """ ) for bug in bugs: if already_in_jira(bug.id): continue # dedup gate assignee = pick_assignee(bug.title) # FE.WEB / BE.CMS rule create_jira_issue( project=project, parent='QAHUB-990', assignee=assignee, **transform(bug), ) notify_slack('#azure-vs-jira', bug, emoji=':flag-ro:')
Váš QA tím logovava bugy v Azure DevOps, ale vývojári žijú v Jire? Postavíme automatizáciu, ktorá ich synchronizuje — s dedup gates, scopingom cez WIQL, priority-based assignee pravidlami a multi-project mappingom. V produkcii beží cez Jenkins Freestyle job.
Claude Code, Cursor, custom subagenti. Vieme ti ukázať, ako pri písaní testov šetríme 30–50 % času — bez kompromisov na kvalite. Zoznámime váš tím s patternami, ktoré fungujú v produkcii.
Z user story → syntakticky korektný Cypress test s Page Object referenciami. Claude Code workflow s našimi subagentami.
AI klasifikátor rozlíši skutočný bug od flaky testu. Priama integrácia do CI pipeline, šetrí hodiny triage.
Subagenti skontrolujú PR na shared patterns, anti-flaky best practices, pokrytie negative scenarios pred merge.
Discovery call, presný scope, fixná cena do 48 hodín. Bez tlaku.