Presentation from XP Days Ukraine (December, 2011) and QADnepr Mini Conference (Dnepropetrovsk, October 2011) about true role of testers and ways to fix development process to avoid their participation in usual stages of the quality control chain.
Presentation from IT Brunch online conference "Visiting Agile practitioners" (November 2011) about building of small hyper-productive teams and managing them to drive projects to success.
Test-driven development allows developers to find and fix bugs more quickly by writing automated tests before developing code. This reduces debugging time and improves productivity. Constant testing is crucial for short release cycles and gives developers confidence to refactor and improve code quality throughout development. Automated testing enables developers to test thoroughly without losing focus.
Implementing Test Automation in Agile ProjectsMichael Palotas
This document discusses test automation practices at eBay. It begins by providing facts about eBay as a company and platform. It then outlines eBay's approach to test automation, which involves designing automated tests using test aspects, modeling the business domain layer, and implementing tests using Selenium. The document advocates for a lean approach to test automation to avoid technical debt and waste. It emphasizes automating regression tests first before expanding to other test types and executing tests in parallel using a Selenium Grid for faster feedback.
Test automation is a key part of eBay's quality engineering strategy. Some lessons learned from eBay's experience with test automation include: flipping the testing triangle to focus more on end-to-end automation than manual or unit tests; treating automation as software development with processes like code reviews; and maintaining automation code for readability and ease of updating. While automation is important, manual testing remains valuable for exploring areas outside of automated test cases. The goal is to combine the benefits of both manual and automated testing for a comprehensive approach to quality.
This document summarizes a presentation on best practices for using Selenium for test automation. The presentation covers 12 steps: 1) Admit you have a problem; 2) Take a deep breath; 3) Try looking at things differently; 4) Pump some tech iron; 5) Find your inner Napoleon and develop a strategy; 6) Break down the wall between QA and development; 7) Learn the terrain; 8) Test less but test well; 9) Keep it lean and optimize; 10) Pay it forward by sharing knowledge; 11) Resources for learning Selenium; 12) Recap of the 12 steps. The document provides additional details on each step and recommendations for learning more.
Reliable tests with selenium web driverPawelPabich
Reliable end-to-end (e2e) tests are important for assuring code quality and encouraging refactoring, but unreliable e2e tests are harmful. To write reliable e2e tests, focus on the happy path, test only code you own, navigate directly to the screen under test, and make sure the system is in a known initial state. Avoid using Thread.Sleep and test recorders, and test only one scenario at a time.
This document outlines 10 lessons learned about test automation from eBay. It provides facts about eBay, including that it has 27770 employees worldwide and processes 2 billion page views and 75 billion database calls daily. The lessons recommend flipping the testing triangle to focus more on automation, ensuring everyone knows what is automated, using test aspects to guide automation, and treating automation as software development. It emphasizes the importance of maintainability, using the same language as developers, investing in test infrastructure, and that manual testing remains important alongside automation.
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsRehgan Avon
2018 Women in Analytics Conference
https://www.womeninanalytics.org/
Data analysts create millions of lines of elegant, powerful code every year. However, because software development is not seen as their primary role, best practices of software engineering often fall to the wayside. Many data analysts are self-taught programmers who haven’t been exposed to tools like version control software, unit testing suites, and System Development Life Cycle (SDLC) processes. Popular software engineering concepts such as Don’t Repeat Yourself (DRY), design patterns, and modularization can vastly improve the quality and efficiency of analytics projects. This talk will provide a high-level introduction to these topics, and will focus on providing resources for additional learning.
This document discusses various techniques for rapid application testing (RAT) such as unit testing, integration testing, smoke testing, system testing, regression testing, performance testing, and test-driven development. It emphasizes automating test plans and test execution to allow tests to be run multiple times for little additional cost. The goal of testing is to balance cost and risk by reusing automated tests that are fast and good predictors of issues while throwing more tests at critical areas.
Software quality assurance means delivering useful features one at a time through a test-first methodology. Test-driven development gives confidence to experiment and serves as a benchmark for classes, with unit tests serving as regression tests. It allows senior developers to hand functional tests to junior developers to implement, focusing on outcomes over specific implementations. Both internal and external quality are important, with ambiguous APIs hindering productivity. Good development involves collaboration, even for solo projects, and smoke tests should always be run before sharing code with others.
This document discusses important developer disciplines for software development. It begins by introducing the author, Chris Howe-Jones, and his background. It then discusses the complex, multi-disciplinary nature of software development teams and environments. The rest of the document outlines various important developer disciplines like test-driven development, version control, continuous integration, refactoring, design principles and more. It emphasizes the importance of testing in many forms. Overall, the document provides an overview of technical and process disciplines that are important for developers to know.
User research and usability testing are important to remove obstacles for users and maximize benefits. Usability issues can reduce financial gains, damage a company's reputation, and lead to poor product results. While developers may think they know what users need, usability is best understood through field studies and user interviews rather than assumptions. User research should begin early in the design process to gather important insights into the interface design. Usability testing, even on a small scale, can provide valuable feedback to improve the user experience.
The document summarizes a presentation on Agile Testing for a software development group. The presentation covered the textbook definition of Agile Testing, focusing on doing the simplest tests to verify functionality and quality standards. It also discussed the street version, emphasizing establishing a quality philosophy throughout the team. Finally, it discussed challenges such as finding the right testing resources and preventing work from being "thrown over the wall" to testing without proper communication between teams.
Test Driven Development (TDD) provides several benefits over traditional waterfall and iterative development models:
1) It establishes a fast feedback cycle between writing code and writing tests, allowing developers to quickly validate functionality.
2) The automated tests that are written serve as documentation and specifications for the code, giving confidence that changes don't break existing functionality.
3) High test coverage promotes well-designed, loosely-coupled code that is easier to maintain and extend over time.
The document summarizes some key points about using Selenium for test automation:
1. Common traps to avoid include choosing Selenium solely based on trends, automating all tests without consideration for test types, and initiating automation late in the development cycle.
2. An example project story describes using Selenium with Java, Jenkins, and a page object pattern for tests of a PHP ecommerce site.
3. Issues that can arise include tests becoming difficult to maintain over time and new features breaking many existing tests. This leads to wasted effort and unhappy stakeholders.
This document discusses test driven development (TDD) with Laravel. It begins with an introduction to the author and overview of TDD. The main benefits of TDD are described as code confidence, cleaner code, and fewer bugs. An example of building tests for a car wash management tool is provided to demonstrate the TDD cycle of red-green-refactor. Key points are made about what to test, including focusing on data transformations and keeping controllers skinny. Views are generally not tested, but using presenters allows views to be fully tested.
Continuous Integration: Finding problems soonestShawn Jones
Continuous integration (CI) aims to find problems early by automatically building and testing code changes. With CI, every code change triggers automated builds, running tests, scans, and deploying to test environments to check if the change breaks anything. The goals are to detect issues immediately, ensure all code is compilable and tests pass, and produce candidate releases quickly. CI requires source control, build servers, automated tests, and developers who fix problems from failed builds. It helps reduce defects but requires resources to implement and maintain.
This document discusses test-driven development (TDD), a software development technique where test cases are written before implementation code. TDD involves writing a failing test case, then code to pass the test, and refactoring code as needed. Key principles are writing tests first, running tests frequently, and making code changes in small iterative steps. TDD aims to increase code quality and reduce bugs by fully testing code in short cycles.
The document introduces test-driven development (TDD) and unit testing using NUnit. It discusses common excuses for not testing code and the benefits of unit tests. These include proving code works, reducing bugs, and making code easier to refactor. The document also outlines best practices for unit tests, such as running quickly, only failing for one reason, and minimizing dependencies. It introduces TDD workflows like red-green-refactor and describes some influential figures in agile software development and testing.
This document discusses test-driven development (TDD) and its importance for software development. It notes that TDD is not just about unit testing code, but is a key part of software craftsmanship. When practicing TDD, tests should be written from the perspective of understanding by business analysts and customers, not just for code implementation. TDD promotes a short feedback loop to continually refine code through testing. Examples provided demonstrate how to use TDD for a FizzBuzz coding exercise by first writing tests to define requirements and then coding to pass those tests.
The document discusses ways to build quality into software development through practices like requirements maturity, three amigos meetings, test-driven development, and pair programming. It notes that defects are expensive and that many bugs come from miscommunication or misunderstanding of requirements. The document advocates for continual feedback, quality without compromise, and delivering value over tasks. It promotes collaboration between developers, testers, and product owners from the start of a project to develop a shared understanding and prevent defects.
The document discusses acceptance testing frameworks, including what they are, why they are worthwhile, and what should go into one. It defines an acceptance testing framework as one that defines the format for expressing expectations, drives the application under test, executes the tests, and reports results. Frameworks help avoid issues like brittle tests and performance problems that commonly occur with tools like Selenium. Effective frameworks have components like a runner, integration, configuration, reporting, logging, and a domain-specific language. The real value is realized by integrating frameworks with continuous integration to provide timely test results. Several open source and commercial frameworks are described.
TDD involves writing tests before writing code to satisfy requirements. The document discusses TDD, providing:
1. An overview of the TDD process and definitions of its key steps - make a test, make it fail, make it pass.
2. An example walking through writing a test for an "easy button" and implementing the code to pass the test.
3. Reasons for using TDD, including improved code quality, design, discipline, and documentation from maintaining an automated test suite.
This document provides an overview of Agile and eXtreme Programming (XP), including the core values and principles of the Agile Manifesto, roles and practices in XP, and how to adopt and apply XP to projects. It discusses key aspects of XP like short iterations, user stories, frequent releases, test-driven development, refactoring, collective code ownership, and more. The goal is to give the reader a crash course in Agile and XP methodologies.
A developer must focus on delivering working software instead of just coding. To be a "rockstar developer", one must have strong knowledge in algorithms, object-oriented programming, design patterns, refactoring, source control, unit testing, and software development processes like Scrum. It is important to continuously learn new technologies, practices, and standards. When choosing a company, consider factors like their use of source control and continuous integration, availability of mentors, and work-life balance. Freelancing can hinder career growth; working with other experienced developers is most beneficial for improvement.
Working Links improves scenario modeling and forecasting with Adaptive InsightsAdaptive Insights
Working Links was facing challenges with their existing budgeting and forecasting system that made scenario modeling difficult and the process slow. They implemented Adaptive Insights within two months which provided an intuitive interface and robust scenario planning capabilities. This helped Working Links better understand the impacts of changes and reduced the time spent on budgeting. Users found Adaptive Insights easy to use and it provided increased transparency into the numbers.
This document discusses various techniques for rapid application testing (RAT) such as unit testing, integration testing, smoke testing, system testing, regression testing, performance testing, and test-driven development. It emphasizes automating test plans and test execution to allow tests to be run multiple times for little additional cost. The goal of testing is to balance cost and risk by reusing automated tests that are fast and good predictors of issues while throwing more tests at critical areas.
Software quality assurance means delivering useful features one at a time through a test-first methodology. Test-driven development gives confidence to experiment and serves as a benchmark for classes, with unit tests serving as regression tests. It allows senior developers to hand functional tests to junior developers to implement, focusing on outcomes over specific implementations. Both internal and external quality are important, with ambiguous APIs hindering productivity. Good development involves collaboration, even for solo projects, and smoke tests should always be run before sharing code with others.
This document discusses important developer disciplines for software development. It begins by introducing the author, Chris Howe-Jones, and his background. It then discusses the complex, multi-disciplinary nature of software development teams and environments. The rest of the document outlines various important developer disciplines like test-driven development, version control, continuous integration, refactoring, design principles and more. It emphasizes the importance of testing in many forms. Overall, the document provides an overview of technical and process disciplines that are important for developers to know.
User research and usability testing are important to remove obstacles for users and maximize benefits. Usability issues can reduce financial gains, damage a company's reputation, and lead to poor product results. While developers may think they know what users need, usability is best understood through field studies and user interviews rather than assumptions. User research should begin early in the design process to gather important insights into the interface design. Usability testing, even on a small scale, can provide valuable feedback to improve the user experience.
The document summarizes a presentation on Agile Testing for a software development group. The presentation covered the textbook definition of Agile Testing, focusing on doing the simplest tests to verify functionality and quality standards. It also discussed the street version, emphasizing establishing a quality philosophy throughout the team. Finally, it discussed challenges such as finding the right testing resources and preventing work from being "thrown over the wall" to testing without proper communication between teams.
Test Driven Development (TDD) provides several benefits over traditional waterfall and iterative development models:
1) It establishes a fast feedback cycle between writing code and writing tests, allowing developers to quickly validate functionality.
2) The automated tests that are written serve as documentation and specifications for the code, giving confidence that changes don't break existing functionality.
3) High test coverage promotes well-designed, loosely-coupled code that is easier to maintain and extend over time.
The document summarizes some key points about using Selenium for test automation:
1. Common traps to avoid include choosing Selenium solely based on trends, automating all tests without consideration for test types, and initiating automation late in the development cycle.
2. An example project story describes using Selenium with Java, Jenkins, and a page object pattern for tests of a PHP ecommerce site.
3. Issues that can arise include tests becoming difficult to maintain over time and new features breaking many existing tests. This leads to wasted effort and unhappy stakeholders.
This document discusses test driven development (TDD) with Laravel. It begins with an introduction to the author and overview of TDD. The main benefits of TDD are described as code confidence, cleaner code, and fewer bugs. An example of building tests for a car wash management tool is provided to demonstrate the TDD cycle of red-green-refactor. Key points are made about what to test, including focusing on data transformations and keeping controllers skinny. Views are generally not tested, but using presenters allows views to be fully tested.
Continuous Integration: Finding problems soonestShawn Jones
Continuous integration (CI) aims to find problems early by automatically building and testing code changes. With CI, every code change triggers automated builds, running tests, scans, and deploying to test environments to check if the change breaks anything. The goals are to detect issues immediately, ensure all code is compilable and tests pass, and produce candidate releases quickly. CI requires source control, build servers, automated tests, and developers who fix problems from failed builds. It helps reduce defects but requires resources to implement and maintain.
This document discusses test-driven development (TDD), a software development technique where test cases are written before implementation code. TDD involves writing a failing test case, then code to pass the test, and refactoring code as needed. Key principles are writing tests first, running tests frequently, and making code changes in small iterative steps. TDD aims to increase code quality and reduce bugs by fully testing code in short cycles.
The document introduces test-driven development (TDD) and unit testing using NUnit. It discusses common excuses for not testing code and the benefits of unit tests. These include proving code works, reducing bugs, and making code easier to refactor. The document also outlines best practices for unit tests, such as running quickly, only failing for one reason, and minimizing dependencies. It introduces TDD workflows like red-green-refactor and describes some influential figures in agile software development and testing.
This document discusses test-driven development (TDD) and its importance for software development. It notes that TDD is not just about unit testing code, but is a key part of software craftsmanship. When practicing TDD, tests should be written from the perspective of understanding by business analysts and customers, not just for code implementation. TDD promotes a short feedback loop to continually refine code through testing. Examples provided demonstrate how to use TDD for a FizzBuzz coding exercise by first writing tests to define requirements and then coding to pass those tests.
The document discusses ways to build quality into software development through practices like requirements maturity, three amigos meetings, test-driven development, and pair programming. It notes that defects are expensive and that many bugs come from miscommunication or misunderstanding of requirements. The document advocates for continual feedback, quality without compromise, and delivering value over tasks. It promotes collaboration between developers, testers, and product owners from the start of a project to develop a shared understanding and prevent defects.
The document discusses acceptance testing frameworks, including what they are, why they are worthwhile, and what should go into one. It defines an acceptance testing framework as one that defines the format for expressing expectations, drives the application under test, executes the tests, and reports results. Frameworks help avoid issues like brittle tests and performance problems that commonly occur with tools like Selenium. Effective frameworks have components like a runner, integration, configuration, reporting, logging, and a domain-specific language. The real value is realized by integrating frameworks with continuous integration to provide timely test results. Several open source and commercial frameworks are described.
TDD involves writing tests before writing code to satisfy requirements. The document discusses TDD, providing:
1. An overview of the TDD process and definitions of its key steps - make a test, make it fail, make it pass.
2. An example walking through writing a test for an "easy button" and implementing the code to pass the test.
3. Reasons for using TDD, including improved code quality, design, discipline, and documentation from maintaining an automated test suite.
This document provides an overview of Agile and eXtreme Programming (XP), including the core values and principles of the Agile Manifesto, roles and practices in XP, and how to adopt and apply XP to projects. It discusses key aspects of XP like short iterations, user stories, frequent releases, test-driven development, refactoring, collective code ownership, and more. The goal is to give the reader a crash course in Agile and XP methodologies.
A developer must focus on delivering working software instead of just coding. To be a "rockstar developer", one must have strong knowledge in algorithms, object-oriented programming, design patterns, refactoring, source control, unit testing, and software development processes like Scrum. It is important to continuously learn new technologies, practices, and standards. When choosing a company, consider factors like their use of source control and continuous integration, availability of mentors, and work-life balance. Freelancing can hinder career growth; working with other experienced developers is most beneficial for improvement.
Working Links improves scenario modeling and forecasting with Adaptive InsightsAdaptive Insights
Working Links was facing challenges with their existing budgeting and forecasting system that made scenario modeling difficult and the process slow. They implemented Adaptive Insights within two months which provided an intuitive interface and robust scenario planning capabilities. This helped Working Links better understand the impacts of changes and reduced the time spent on budgeting. Users found Adaptive Insights easy to use and it provided increased transparency into the numbers.
The document discusses how complexity, volatility, uncertainty, and ambiguity are challenging executives and companies. It presents scenario planning as a strategic mindset that can help organizations embrace uncertainty and see beyond short-term predictions by developing realistic alternative futures. Scenario planning works by starting with a question, gathering information, identifying key drivers of change, and composing different plots or scenarios to explore implications. This allows companies to connect dots between current decisions and uncertain future events. The document also advocates for more agile and adaptive strategies that embrace change, take incremental steps, acknowledge risk, continually immerse in markets, and maintain organizational alignment.
Game Theoretic Real Option Approach of the Procurement of Department of Defen...Marc Rabaey
The real option analysis for investments is well known. In order to make decisions (delay, stop, start up, continue), management is waiting to collect more information,
or is waiting for a better environment (market situation, political situation and so on).
However this is without taking into account the (inter)actions of the other players in the market. Option games will place the real options into a strategic (game theoretic) context., i.c. DoD for procurement.
In reality, the complexity of real options and the need for the permanent monitoring of the environment make some managers reluctant to introduce it in the enterprise for
investment decision-making. A generic framework “Intelligence Base” is being proposed to approach intelligence and game options in a holistic way for the strategy and the investments.
The document discusses adaptive planning and its importance in complex settings. It introduces tools that can be used in an adaptive planning process, including scenario planning, systems mapping, network mapping, and pre-mortems. These tools help identify drivers of the future, envision potential variations, explore implications of different scenarios, and prepare organizations to adapt. The presentation provides examples of how these tools can be applied to an adaptive funding strategy and emphasizes rethinking assumptions through an iterative planning process.
This document discusses an individual's interests which include being a creative director, biochemistry, games, MOOC's, and activities like family, sports, food, and fun. It also mentions topics in education technology like adaptive learning, pre-tests, scenario based learning, and application tests.
WWF Japan's Energy Vision: Energy Scenario Proposal for Decarbonizing JapanNaoyuki Yamagishi
1. WWF Japan proposes an energy scenario to decarbonize Japan's economy by 2050 through massive energy savings, phasing out nuclear power, and increasing renewable energy supply.
2. Their analysis shows that energy demand can be halved by 2050 through energy efficiency measures. Renewable energy sources like solar, wind and biomass are sufficient to meet Japan's energy needs and the costs will decrease over time as the transition is made.
3. While the power grid will require investments to accommodate more renewable energy, studies show it can adapt if changes are made early. WWF Japan calls for ambitious targets and a shift to more renewable-centric thinking to achieve a 100% renewable energy system.
Evaluate adaptive learning model at ICL December 05 2014Loc Nguyen
This document proposes criteria for evaluating adaptive learning models and provides an evaluation scenario. It introduces three evaluation criteria: (1) the system criterion evaluates how the adaptive learning system works with or without user modeling; (2) the academic criterion measures how well user modeling helps students learn; and (3) the adaptation criterion assesses the quality of the system's adaptation based on user satisfaction. An example scenario then applies these criteria, dividing evaluation into study, feedback, and evaluation acts performed by teachers and students with different learning methods.
The document discusses strategic planning and critical thinking in business. It defines strategic planning as a plan of action to achieve major aims and notes that the process requires developing a mission statement and linking vision, mission, and strategy to business growth. Scenario planning is discussed as imagining alternative future environments to improve decision making. The document also covers accountability, noting that clear expectations, credible consequences for performance and non-performance, and purpose and direction are important.
Vietnam is a Southeast Asian country with a population of over 90 million people. It has a diverse landscape and climate, from the tropical south to the more temperate north. Cycling is a popular way for visitors to see the countryside and experience local life in Vietnam. Some of the top destinations for cycling include Hanoi, Ho Chi Minh City, Phong Nha, Hue, and various World Heritage Sites. Over 5 million international tourists visited Vietnam last year, with the government investing in coastal regions and cycling infrastructure.
The Small, Local, Open, Connected ScenarioLeNS_slide
The document discusses the "Small, Local, Open, Connected" scenario for sustainability. It proposes a vision of distributed systems where the global is made up of interconnecting local systems. These local systems are small in scale, flexible, and highly context-related. They are organized into networks to form resilient, adaptable, and participatory production and economic systems. The scenario is driven by risk management, balanced economy and ecology, and democratic and equitable values. It catalyzes diffuse creativity and social innovation through design approaches.
This document discusses using binomial models and decision trees to value real options for projects. It introduces financial options versus real options and how real options can be used in project valuation. The document also describes how to solve real options problems using binomial trees and provides contact information for the professor Andres Lazo de la Barra who teaches about real option project valuation.
Leading the Rebellion: Turning Visionary Ideas into RealityStephen Anderson
(My presentation from Adaptive Path MX)
You’ve got an idea. Maybe it’s a better process that’s a bit unorthodox. Or maybe it’s a new product idea you need to push through your organization. The question is: How does that idea become reality? Between procedure, politics, and other pushbacks, implementing visionary ideas — however promising — requires a lot more than a good prototype or story.
To understand how unorthodox ideas can make it through an organization, we’ll look outside the design industry to filmmaking. Specifically, we’ll look at what it took to make the one of the most influential — and disruptive — films of all time: the original Star Wars movie. If we look behind the scenes, what did it take to get George Lucas’s space fantasy from script to screen? From assembling the right team to navigating the Hollywood corporate studio environment to tapping into powerful universal patterns, speaker Stephen P. Anderson will share six lessons that we as UX Managers — and leaders — can all learn from Lucas’ adventure.
The document discusses real options, which are options where the underlying asset is a real asset like a project or investment. Real options offer flexibility and help with decision making under uncertainty. Some key types of real options discussed include abandonment options, options to wait, expand, contract, switch projects, and defer or initiate projects. Real options can provide value above traditional net present value analysis by accounting for management flexibility.
This document discusses scenario mapping, a technique used in design and research. Scenario mapping involves gathering a project team, identifying key user goals or tasks, and then mapping out scenarios on post-it notes in a large space to understand user needs and envision possible designs. Scenario mapping provides benefits as both a research tool to understand user needs and an early design tool to ideate solutions before building prototypes.
This is the presentation on brand strategy in turbulent socio-economic conditions that I gave at the 2011 Branding Conference in South Africa. A key part of the presentation was the use of scenario planning. I also spoke about Sagacite's work on rapid adaptive strategies. I have added a couple of notes to several of the more obscure slides to help viewers understand what I talking about.
This document provides instructions for a scenario planning group assignment. Students are asked to conduct scenario planning for a key issue facing their manager's organization. They must identify drivers of change, develop four scenarios based on two axes of uncertainty, and analyze strategic implications. Deliverables include an initial presentation, feedback, and a final written report and video summarizing scenario planning results and recommendations for the organization. The report should follow guidelines on content, including describing scenarios, strategic fit, and contingency planning.
Overview presentation on Scenario Mapping, a methodology that combines "simulated hindsight" with "highly prepared meetings" Scenario Mapping is fractal: can be applied to large companies, business units, markets, products, etc.
Karthik Gaekwad is a member of the cloud team at National Instruments who owns the Canopy user management and licensing platform. He discusses National Instrument's approach to cloud development which includes short monthly iterations to incrementally develop and deploy new features. Key aspects of their approach include modeling the end-to-end system, designing features to be reusable across platforms, extensive testing and monitoring, and getting early user feedback through demos.
The document discusses test driven development (TDD) in an agile environment. It covers topics like the agile manifesto, evolutionary design, TDD steps and philosophy, myths about TDD, test qualities, benefits and costs of TDD, plugins and language support. The author shares their experience with TDD, noting that it improved code quality and refactoring while requiring support from leads to be effective long-term. Acceptance TDD is recommended to ensure shared understanding of what is being built.
Frank's Learning Summary - Evolution of agile testingFrank Lee
The document traces the evolution of agile testing from 2001 to present day. It describes how early versions of agile (V1.0 and V2.0) focused mainly on developers performing tests using test-driven development and unit tests. Over time, the role of testers was recognized with more emphasis on exploratory testing, automation tools, and specialist tester skills like modeling and exploratory testing frameworks. The document highlights key testing figures and conferences that advanced agile testing practices. It concludes that while no manifesto exists, many flavors of agile testing are used with an emphasis on risk-based exploratory testing.
This is a draft of a presentation for a course on Visual Studio 2010 Unit Testing, I've uploaded mainly because I tried to create a Metro Style presentation, so if everyone like it, he can use as base for own presentation.
Test-driven development is generally regarded as a good move: it should result in simple decoupled design, your tests tend to cover behaviour not methods, and far fewer bugs. However, just getting unit tests in on a real, commercial project is hard - switching to TDD is even harder. Often you can start a project with good intentions and coverage, then the deadline looms and the tests go out then the hacks come in. So, instead of beating ourselves up about not being perfect let's look at an interative approach to adopting TDD principles. We'll look at tactics for selling TDD to your client, boss and colleagues. This talk will also cover methods for making TDD easier for you by showing you what tools you can use to integrate it into your development environment. In the project itself, we'll examine how we can make small but permanent steps towards full TDD, without losing that progress when deadlines hit. We'll also cover a few methods for learning on your own time and how the whole process can actually be made quite enjoyable.
xUnit and TDD: Why and How in Enterprise Software, August 2012Justin Gordon
“A comprehensive suite of JUnit tests is one of the most import aspects of a software project because it reduces bugs, facilitates adding new developers, and enables refactoring and performance tuning with confidence. Test-driven development (TDD) is the best way to build a suite of tests. And the Dependent Object Framework is the best way to test against database objects.” This presentation covers the benefits of TDD along with practical advice on how to implement TDD in complex projects.
Unit Testing, TDD and the Walking SkeletonSeb Rose
The document discusses unit testing, test-driven development (TDD), and the walking skeleton approach. It provides an overview of these software development practices, including writing automated tests before code, using the tests to drive code development, and starting projects with an initial architecture or "walking skeleton" that is automatically testable, buildable, and deployable. The document aims to dispel common myths about testing and convince readers of the value of these practices.
Presentation from ConfeT&QA Online conference (February 2012) about techniques and approaches for successful adoption of TDD (Test Driven Development) in functional tests with WebDriver.
The document discusses the role of testers in traditional vs agile projects. In traditional projects, testers join late and write test cases to run on completed code. In agile projects, developers automate acceptance tests using ATDD and defects are failing tests. Some managers think testers are not needed since developers test. However, testers add value by asking questions others don't to get a unique perspective, being an "information radiator", and exploring the system in different ways to find holes in code and understanding. To succeed in agile, testers need different skills than traditional testing.
Presentation from AgileEE 2012 in Kiev (October 2012) and XP Days Ukraine 2012 in Kiev (November 2012) about evolution of Agile processes in team during project lifecycle.
This document outlines an agenda for a presentation on Test Driven Development (TDD) best practices. The agenda includes sections on an overview and introduction to TDD, what TDD is and the process, challenges of TDD, learning and best practices for sustaining TDD, frameworks and variations of TDD, and a question and answer period. Some key best practices discussed are writing tests before code, focusing tests on functionality rather than code structure, and establishing governance and training to ensure proper adoption of TDD.
The document outlines chapters from a book on developer testing. It discusses working in cross-functional teams and the roles of developers and testers. Developers are responsible for unit testing and some integration testing, while other types of testing like security and performance are usually not done by developers. The document also discusses testing terminology, styles, objectives, and what makes software testable from a developer's perspective. Testability brings benefits like being able to easily verify functionality and make changes without surprises.
This document provides an overview of test driven development (TDD), including what TDD is, an example unit test, the TDD process, benefits of TDD such as more maintainable code and fewer bugs, and resources for learning and practicing TDD such as books and training courses. TDD involves writing automated tests before implementation code to help ensure code quality and catch errors early. The process involves writing a test, seeing it fail, then writing just enough code to make it pass and refactoring as needed.
The document discusses the principles and practices of continuous delivery in an agile context. It emphasizes automating the entire software delivery process from code commits through deployment to production to minimize risks and ensure fast, reliable software updates. This includes having automated tests, continuous integration, monitoring systems, and the ability to rollback changes. It also stresses the importance of collaboration across teams to establish a shared goal of delivering value to customers through working software.
This document discusses agile testing and its principles. It defines agile testing as testing practices that follow the agile manifesto and treat development as the customer of testing. The key principles of agile testing are that individuals and interactions are valued over processes, working software is valued over documentation, and responding to change is valued over following a plan. It also discusses specific agile development methodologies like extreme programming and the role of testing in agile projects.
Rise and fall of Story Points. Capacity based planning from the trenches.Mikalai Alimenkou
Люди в мире Agile используют Story Points - для Agile коучей и тренеров это самый простой способ объяснить, как следует проводить оценку и планирование в «новом мире». Но тогда эта простая концепция нарушает реальные практические кейсы. В настоящее время команды состоят из очень специализированных людей, работающих над бэкендом, фронтэндом, тестировании, инфраструктуре и прочим. Для них почти невозможно иметь общий уровень сложности. Это только одна из проблем, которые мы собираемся осветить в этом докладе.
Чтобы оставаться конструктивным, а не просто старомодным парнем из XP, Николай поделится своим опытом с более точной и прагматичной техникой оценки/планирования - планированием на основе возможностей.
We have spent many years testing our applications and systems manually and with test automation tools. During this time many bug root causes have been classified and could be detected automatically with special static analysis tools. Most of them could be applied at the early stages of development even before code is integrated into the main development branch. In this talk, I will go through available solutions and demonstrate what kinds of issues may be detected automatically reducing the time and effort of traditional testing.
Modern CI/CD in the microservices world with KubernetesMikalai Alimenkou
In this talk, we will go through the design process of modern CI/CD for the microservices-based system with Kubernetes support. We will discuss how to verify consistency between microservices, apply different levels of quality gates and promote artifacts between environments. Thanks to Kubernetes we will review different approaches of environment resources optimization for development needs during CI/CD cycles.
Saga about distributed business transactions in microservices worldMikalai Alimenkou
Most of people nowadays think microservices architecture is a great way to build any system. They visit conference talks, read books and review tutorials, where ‘hello world’ applications are built just in several minutes using microservices approach. But the reality is not so wonderful and one of the biggest pain is hidden inside distributed business transactions. In monolith application this topic is almost completely covered with DB level transactions. In distributed world you have to face many issues trying to implement reliable and consistent business logic.
In this talk we will review different types of problems related to distributed business transactions, popular SAGA pattern, frameworks and techniques to simplify your life without compromising quality of the system.
Effectiveness tips from Kubernetes trenches by Captain ObviousMikalai Alimenkou
Nowadays almost everybody knows about Kubernetes, some teams are using it and some are only dreaming about it. Despite the popularity, Kubernetes is not simple and there are so many ways of abuse this peaceful technology. In this talk I would like to present quite obvious set of tips, based on failures and ineffectiveness at different companies I have worked with during last several years.
Ride the database in JUnit tests with Database RiderMikalai Alimenkou
For a long time DB related testing in Java world has been a real pain and most developers tried to reduce number of such tests as much as possible. With good in-memory database implementations like H2, schema migration solutions like Liquibase or Flyway, containerization with libraries like TestContainers, database management is now much simpler. But test data management is still a pain. Some developers use SQL dumps, others insert data via JPA/JDBC or rely on prepared data sets. Good old DBUnit may be a good option, but it is not so developer friendly and not adopted well for modern annotations driven development style. Database Rider closes the gap between modern Java development environment and DBUnit, bringing DBUnit closer to your JUnit tests, so database testing will feel like a breeze. In addition to flexible data sets management this library provides other useful features: programmatic data sets definition, leak hunting, data sets export, constraints management, etc. As contributor and loyal user for many years, I would like to share my experience with Database Rider and demonstrate how to make database testing a fun again!
Wastful waste or why everything is so slow in developmentMikalai Alimenkou
I think almost everybody experienced cases when things are moving very slowly in IT companies or teams. You have many people, talented engineers, Agile process and development speed is still below expectations. We try to focus on performance and efficiency last 10 years, improving our practices and tools. But we are still there in terms of speed when they are applied to real life cases. How is it possible? In this talk we will review the concept of waste circles and understand what are the main sources of time waste in development process. This concept would help you to check your processess, focus on right things and achieve much better results in your organization or team.
The document discusses implementing a hexagonal architecture and domain-driven design approach with Spring Boot. It promotes starting with use cases and domain context, using entities and value objects to model the domain, and aggregates for complex relationships. It also advocates an ports and adapters approach using Spring Boot modules like Spring MVC, Spring Data, and Spring Messaging to connect business logic to databases, queues, APIs and other external services through adapters. The summary emphasizes changing one's perspective to focus on the business logic and domain model first and using existing Spring Boot features to build the technical implementation around it.
Wastful waste or why everything is so slow in developmentMikalai Alimenkou
I think almost everybody experienced cases when things are moving very slowly in IT companies or teams. You have many people, talented engineers, Agile process and development speed is still below expectations. We try to focus on performance and efficiency last 10 years, improving our practices and tools. But we are still there in terms of speed when they are applied to real life cases. How is it possible? In this talk we will review the concept of waste circles and understand what are the main sources of time waste in development process. This concept would help you to check your processess, focus on right things and achieve much better results in your organization or team.
DevOps checklist or how to understand where is your team in DevOps landscape ...Mikalai Alimenkou
DevOps become a buzzword in a last few years. Several companies, development and product teams have achieved quite impressive results in this area making cultural changes, transforming their processes and practices, introducing new roles, tools and techniques.
Do you think is achievable for you team or it’s still a bunch of drama? There is no common approach for measuring achievements and understanding how much DevOps’ich the current team/company is. In this talk I will provide attendees with basic checklist to start with and some reliable tools/techniques to monitor progress of “DevOps transformation”.
DevOps checklist or how to understand where is your team in DevOps landscapeMikalai Alimenkou
DevOps is a hot topic during last several years. Some companies, teams and products have achieved quite impressive results in this area making cultural changes, transforming their processes and practices, introducing new roles, tools and techniques. At the same time there is no common approach for measuring achievements and understanding “how DevOps” the current team/company is. In this talk I will provide attendees with basic checklist to start with and some reliable tools/techniques to monitor progress of “DevOps transformation”.
Практические трудности в разработке Медкарты для целой страныMikalai Alimenkou
Почти год мы в Whirl Software разрабатываем систему Медкарта в масштабе целой страны. За это время мы столкнулись с множеством интересных сложностей и проблем, часть из которых успешно победили, а для некоторых хорошего решения до сих пор не найдено. В этом докладе мы поделимся накопленным практическим опытом и некоторыми техническими решениями, которые могут быть полезны в рамках разработки электронных медицинских систем.
Hexagonal architecture with Spring Boot [EPAM Java online conference]Mikalai Alimenkou
Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.
Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…
This document provides guidance on effectively managing test data for software testing. It discusses 6 approaches to preparing test data: 1) using the user interface, 2) inserting data via API calls, 3) direct SQL insertion into the database, 4) using data sets with DBUnit, 5) versioned data dumps, and 6) reusing production data. The key recommendations are to choose the approach that best fits the system under test, speed up test data management with APIs, reuse live data when possible, and mix strategies as needed to build reliable test cases.
Agile antipatterns: review after 10 years of practiceMikalai Alimenkou
Вот уже более 10 лет Agile движение шагает по Украине и стучится практически в каждую компанию. Но приносят ли новые процессы, принципы и практики реальную практическую пользу? Получается ли изменить к лучшему команды, проекты, компании? Я в роли консультанта за эти 10 лет поработал с более чем 100 компаниями, поэтому повидал много хорошего и плохого. В данном докладе хочется пробежаться по основным проблемам, сложностям и анти-паттернам в переходе отечественных компаний на "Agile рельсы". Мы рассмотрим какие практики не очень хорошо приживаются, от чего страдает большинство команд, какие основные препятствия встречают на своем пути и как умудряются их обходить. Я надеюсь, доклад поможет зародиться множеству интересных дискуссий.
Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.
Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…
Almost any application or software system manages data. It is hard to imagine test automation that is not affected by this fact. There are many differenct approaches how to prepare system under test, providing predefined test data: use application UI, invoke API methods, run business logic directly, access DB from test scenarios, etc. In this talk we will review most of existing approaches, starting from the easiest and the most popular ones and finishing with really tricky ways to manage your test data for large distributed systems. There is no ideal solution for every case or silver bullet, but I hope your toolset will become wider after visiting this talk.
Бытовая классификация тестировщиков с точки зрения разработчикаMikalai Alimenkou
Тестировщики часто говорят о противостоянии и конфликтах с разработчиками. Но ведь есть команды, где все живут в мире и согласии. Видимо что-то тут не так? Я хочу поговорить о том, как тестировщиков видят сами разработчики. В докладе будет проведена забавная классификация. Кроме известного всем тестировщика-обезьянки будут представлены тестировщик-муха, тестировщик-нацист, тестировщик-панда и многие другие герои. Высможете лишний раз задуматься над тем, как вас видят со стороны и, возможно, изменить ситуацию к лучшему.
Доклад будет также полезен менеджерам проектов и лидерам команд. Вы сможете быстрее распознавать те или иные шаблоны поведения тестировщикови принимать меры по повышению уровня командной работы. Приходите, будет интересно!
Code Review tool for personal effectiveness and waste analysisMikalai Alimenkou
Usually it is hard to analyze personal effectiveness and detect wastes in development process because developer’s work decomposition is not transparent and available for analysis. As a good sample of ineffective process imagine developer, who spends 1 day on task implementation and then reimplements it several times according to code review notes during next 2 days. Or another developer, who is waiting for code review during 2 days, switching context to other tasks, finally gets notes and switches back to initial task, trying to refresh all details in his head. And so on and so forth…
Code review tool usage helps to aggregate lots of useful information about any code change at any stage (static analysis, code review, rework, acceptance, integration into main branch). In this talk I’m going to demontrate how this information could be used for detailed analysis of development effectiveness and wastes detection. Based on mentioned analysis you could implement many improvements for your development process and then measure their success.
Funny stories and anti-patterns from DevOps landscapeMikalai Alimenkou
During last several years DevOps became strong buzzword used almost in every project, team and company. But almost everywhere it is used in very funny and strange context. For example, existing ops guys are renamed to DevOps just to sell them to the client for more money. Or DevOps is used as new job title for some magically powerful person who is able to operate cloud environment and modern infrastructure related tools, leading team of old school ops and participating in management meetings. In this talk I’m going to review all different anti-patterns and bad practices in DevOps landscape using stories from my personal experience as Delivery Manager and independent consultant.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In Francechb3
Development without Testers: Myth or Real Option?
1. DEVELOPMENT WITHOUT TESTERS:
MYTH OR REAL OPTION?
Mikalai Alimenkou
http://xpinjection.com
29.10.2011
2. Background
• Java Technical Lead/Scrum Master at Zoral
Labs
• 7+ years in software development
• 5+ years of working by Agile
methodologies
• Expert in Agile engineering practices
• Founder and coach at XP Injection
(http://xpinjection.com)
• Organizer of Selenium Camp, JEEConf and
XP Days Ukraine conferences
3. Before start doing something you need to understand it properly
I. WRONG VISION OF TESTING
ACTIVITY
4. Why so many testers?
Too many bugs “Brave” automation team
Endless regression testing Very quick development
5. What is the “ideal”
dev/tester ratio?
Dev Tester ?
Devs Tester ?
Devs Tester ?
X Devs Y Testers ?
6. Where may problems
happen? Can’t implement
what they want
Can’t explain
requirements
Customer
Existing functionality is Dev Team
broken when new is ready
20. Strong definition of DONE
Can I start testing
this new feature?
Yes, it is done!
But I can’t even build
the product…
Ops, I forgot to
commit some files...
21. TDD at all levels
ATDD TDD
Customer’s Tests Programmers’ Tests
Acceptance Fixtures Production Unit Integration
Tests Code Tests Tests