The document discusses automating exploratory testing by creating an app crawler that can emulate user interactions, test across different platforms, languages, resolutions and orientations. Some key points:
- Automated exploratory testing is needed due to shorter release cycles and less manual testing time.
- The author created an app crawler that can capture elements, images, errors, exceptions, performance data and replay tests across platforms.
- Challenges include handling authentication, detecting unique locators, and rescuing apps that get stuck.
- The crawler detects languages, monitors logs and exceptions, and uses Applitools for image validation to further automate the process.
- The goal is to help fill quality gaps
Automated softwaretestingmagazine april2013drewz lin
The document provides information about the April 2013 issue of the Automated Testing Institute's Automated Software Testing Magazine. The issue focuses on test automation approaches for "fast-paced environments" where testers have little time for automation and work with non-standard systems. It features articles about a team's transition from waterfall to agile development and the use of developer tools, challenges of test automation on embedded systems, and fitting test automation into agile development when it is not the only task. It also provides information on authors, events, trends seen in the ATI Automation Honors awards, and new mobile open source testing tools that were recognized in the awards.
The document discusses pair programming, an agile software development technique where two programmers work together at one workstation. They take turns between "driver" and "observer" roles, with the driver writing code and the observer reviewing each line of code as it is typed. Scientific studies have found that pair programming reduces errors by 15-50% and decreases testing/debugging time, though it increases overall effort by 15-60%. The document addresses common misunderstandings about pair programming and describes different pairing practices and techniques for remote pair programming.
Darshan Desai - Virtual Test Labs,The Next Frontier - EuroSTAR 2010TEST Huddle
EuroSTAR Software Testing Conference 2010 presentation on Virtual Test Labs,The Next Frontier by Darshan Desai.
See more at: http://conference.eurostarsoftwaretesting.com/past-presentations/
This document discusses improving the software development workflow by moving test planning earlier. It proposes defining acceptance criteria during feature planning to help test cases be "born" earlier. This would help avoid misunderstandings later on. It also advocates for more collaboration through daily stand-ups to catch issues early and learn from failures. The goal is to reduce bottlenecks and workload by improving planning, collaboration, and shifting left testing activities.
The document discusses integrating agile methodology and Visual Studios for a project. It includes slides on project management, planning, requirements gathering, design, development, testing and deployment. Comments are provided throughout discussing challenges with different methodologies, testing approaches and roles.
The document discusses various confusions and misconceptions around software testing. It argues that there is no such thing as "manual testing" and instead testing should be viewed on a spectrum of degree of interactivity and tool support. It also discusses how testing is providing quality-related information about a product efficiently to stakeholders, and how testing involves experimentation rather than just checking. The document emphasizes the importance of understanding complex environments using the Cynefin model, and developing personal qualities like curiosity, precision, and community involvement to continually learn and improve testing practices.
The document discusses exploratory testing in an agile context. It describes exploratory testing as simultaneously learning about a system while designing and executing tests, using feedback from the last test to inform the next. It also discusses that agile teams do both checking of requirements through automated tests as well as exploring to discover unintended consequences. Finally, it provides an example charter for exploratory testing of editing user profiles on a system.
This document discusses various tools and tactics for prototyping and user testing. It begins by explaining how prototyping during the discovery phase can help validate problems and assumptions. It then discusses using prototyping to test multiple solutions and gain insights to support design decisions. Finally, it provides an overview of different prototyping methods and considerations for tools, fidelity, audience, and platform.
This document discusses automating visual software testing. It begins by explaining that visual testing is used to verify a graphical user interface appears correctly. It then discusses why visual testing should be automated, such as because the test matrix is too large to cover manually across different browsers, devices, resolutions, etc. It also notes that mobile app quality is critical so testing needs to be thorough. The document outlines how visual testing works by taking screenshots, comparing them to baselines, and reporting differences. It provides examples of tools that can be used for visual testing and discusses how tests can be integrated into development pipelines from the code level through production.
A quick paced introduction to "Test Driven Development" (TDD) in an agile environment. The TDD philosophy states that you should develop your tests and then write code to make your tests pass and satisfy user requirements.
This document discusses an introduction to a class on rapid software testing. It states that the class aims to make students stronger, smarter and more confident testers by challenging them to think for themselves rather than simply listening to what the instructors say. The class can be beneficial for testers of all experience levels who want to improve at their work. Heuristics are discussed as techniques that can help substitute for complete analysis and involve guidewords, triggers, reframing ideas, and procedures to help solve problems.
DevOps Tactical Adoption Theory tries to make the transition process as smooth as possible. It hypothesis each step towards DevOps maturity should bring a visible business value empowering management and team commitment for the next step. The innovative idea here, it is not required to add the tools/processes to stack from sequential beginning to end, but seeking benefit.
The reason behind the theory is to encourage practitioners to apply each step one-by-one and then having the benefits in projects. Consequently, each step is tested in terms of utility and proved method validity for the further steps. In contrast to previous adoption models, our model indicates concrete activities rather than general statements.
Theory built on the claim that many DevOps transition projects considered problematic, impractical or even unsuccessful causing concept to become a goal more than a technique. Basically, theory consists of different areas of interest describing various actions on a schema.
In the session, it is planned to demonstrate “DevOps Tactical Adoption Theory” with focus on Delivery Pipeline/Testing Practices sectioned "Continuous Testing in DevOps".
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
This document discusses software quality assurance techniques. It covers concepts like verification, validation, and fault prevention. Specific techniques discussed include testing, inspections, prototyping, and reliability measurement. Debugging methods like the scientific method and using tools are also covered. The document emphasizes that combining techniques is most effective for software quality assurance.
The Leaders Guide to Getting Started with Automated TestingJames Briers
Conventional testing is yesterday’s news, is required but needs the same overhaul that has happened in development. It needs to be a slicker operation that really identifies the risk associated with release and protects the business from serious system failure. The only way to achieve this is to remove the humans, they are prone to error, take a long time, cost a lot of money and don’t always do what they are told.
Automation needs to be adopted as a total process, not a bit part player. Historically automation has focussed on the User Interface, which can be a start, but is often woefully lacking. Implementing an Automation Eco-System, sees automation drive through to the interface or service layer, enabling far higher reuse of automated scripts, encompasses the environment and the test data within it’s strategy, providing a robust, repeatable and reusable asset.
Don’t just automate the obvious. Automation is not a black box testing technique. Rather it is mirroring the development and building an exercise schedule for the code. Take your testing to the next level and realise the real benefits of a modern Automation Eco-system.
The document provides 10 tips for testing web applications before launch. It discusses the importance of testing functionality, usability, and performance under load. It outlines challenges like supporting various browsers, third-party apps, multimedia formats, plugins, localization, and balancing deadlines with quality. Crowdsourcing is presented as a way to complement in-house testing efforts.
Slides from "Taking an Holistic Approach to Product Quality"Peter Marshall
This is the base material used during a half day workshop at expoQA 17 June 2019. Peter Marshall runs over the necessary technical, organisational, and improvement practices required to deliver high quality software. Deep dives into Continuous delivery, devops, organisational structures, agile and digital transformation.
What skills can software testers provide the best testing services?NexSoftsys
Although software testers have the versatility, software testers must have both technical and non-technical skills to provide the best testing services as this skill helps the tester to fight against any circumstances.
Common Challenges & Best Practices for TDD on iOSDerek Lee
Presented at the June 2016 Tokyo iOS Meetup on 6/11/2016, in this presentation I give an overview of test driven development and how it can be used when developing for iOS / Swift.
TDD is an enormous topic so this really just scratches the surface to give an expansive glimpse into the journey that TDD truly is. Those unfamiliar with TDD will hopefully have a desire to learn more about it while those familiar will hopefully learn something new.
Lean Enterprise, A Definitive Approach in Software Development ProductionBerk Dülger
This document summarizes a presentation on lean enterprise and software development methodologies. It discusses:
1) The chaotic nature of software development and how 66% of projects are unsuccessful or 30% cancelled due to unpredictable nature, leading many to adopt agile/lean methods.
2) An overview of agile methods like Scrum and Kanban, as well as DevOps and Continuous Delivery approaches.
3) How the target methodology selection is DevOps combined with Scrumban for management, to increase efficiency and push increments to production just in time, unlike sprints in Scrum.
4) The final section discusses tactical DevOps adoption through continuous testing and visible business value at each step to encourage practitioners
Get the Balance Right: Acceptance Test Driven Development, GUI Automation and...Michael Larsen
The document discusses different testing approaches including Acceptance Test Driven Development (ATDD), Test Driven Development (TDD), GUI automation, and exploratory testing. It explains that ATDD and TDD are design processes that help ensure software meets project needs, while testing involves asking questions of a product. GUI automation can simulate user actions but is fragile. Exploratory testing involves testing design and execution together in a flexible way. The document argues that these approaches work best in balance and that exploration is important at all levels, including with automation. It emphasizes putting the customer first and seeing the approaches as interdependent parts of an overall quality process.
Software testing 2012 - A Year in ReviewJohan Hoberg
The document summarizes software testing trends in 2012. Key points include: Google introduced "Testing 2.0" which focuses on risk assessment and reducing probabilities of bugs; good test automation requires caring about results and addressing failed tests; context-driven testing emphasizes a risk-based approach and looking at multiple contexts rather than one school of thought; mindless automation and scripted manual regression testing are not effective at finding bugs; and customer involvement is important for testing in agile projects.
The document provides an overview of agile and test-driven development. It begins by comparing waterfall and agile approaches, noting that agile uses short iterative cycles. It then defines agile as iterative and incremental, with continual revisiting of requirements and design. Common agile methodologies like Scrum and extreme programming are discussed. Test-driven development is introduced as writing tests before code to ensure requirements are met and prevent bugs. The benefits of agile and TDD for developers are more code proven to meet requirements and less time spent debugging.
The document provides a historical overview of iterative and incremental software development practices. It describes how techniques like plan-do-check-act, iterative development, test-first development, and time-boxed iterations were used as early as the 1950s on projects like the X-15 program. It notes that many agile practices predate the naming of the agile methodology and have been used successfully for decades.
Exploratory testing is a systematic approach to discovering risks by rigorously analyzing and testing a system through heuristics and testing techniques. It involves simultaneously learning about the target system while designing and immediately executing tests, using feedback from previous experiments to inform new tests. Exploratory testing focuses on discovering things you can vary and uses models, heuristics, time-boxed sessions, and charters to structure the exploration and focus on important areas.
DevOps Tactical Adoption Theory - DevOpsDays istanbul 2016Berk Dülger
This document contains information about DevOps tactics and adoption theories presented by Berk Dülger. It discusses implementing DevOps practices incrementally to demonstrate business value at each step and gain management support. It also emphasizes the importance of continuous testing, including both unit and UI testing, and provides an example of a tactical adoption approach for continuous testing.
Test-driven development (TDD) is a software development process that relies on the repetition of a short development cycle of requirements, design, and coding. It promotes writing tests before writing code (test-first design) and helps improve code quality by reducing defects. The TDD cycle involves writing an automated test, running the test and seeing it fail, writing the minimum amount of code to pass the test, and refactoring the code as needed. TDD brings benefits like clarifying requirements, adding executable documentation, and detecting errors early. Acceptance TDD involves automating acceptance tests to define and validate requirements. It helps establish a definition of done and improves team collaboration.
The document outlines an agenda for a presentation on Domain Driven Design with Entity Framework 4.0. The presentation will cover what Domain Driven Design is, its layered architecture, building blocks, modeling a domain with EF 4.0, building repositories and services, and verifying the domain with unit tests. A developer and domain expert will demonstrate collaborating on the domain model.
The document discusses application lifecycle management (ALM) with Team Foundation Server (TFS). It provides an agenda that covers ALM stories, definitions of ALM and how it compares to the software development lifecycle (SDLC). The document then demonstrates TFS project portals, builds, continuous integration (CI) and takes questions. It aims to explain how TFS can be used for ALM and managing the entire application lifecycle.
The document discusses exploratory testing in an agile context. It describes exploratory testing as simultaneously learning about a system while designing and executing tests, using feedback from the last test to inform the next. It also discusses that agile teams do both checking of requirements through automated tests as well as exploring to discover unintended consequences. Finally, it provides an example charter for exploratory testing of editing user profiles on a system.
This document discusses various tools and tactics for prototyping and user testing. It begins by explaining how prototyping during the discovery phase can help validate problems and assumptions. It then discusses using prototyping to test multiple solutions and gain insights to support design decisions. Finally, it provides an overview of different prototyping methods and considerations for tools, fidelity, audience, and platform.
This document discusses automating visual software testing. It begins by explaining that visual testing is used to verify a graphical user interface appears correctly. It then discusses why visual testing should be automated, such as because the test matrix is too large to cover manually across different browsers, devices, resolutions, etc. It also notes that mobile app quality is critical so testing needs to be thorough. The document outlines how visual testing works by taking screenshots, comparing them to baselines, and reporting differences. It provides examples of tools that can be used for visual testing and discusses how tests can be integrated into development pipelines from the code level through production.
A quick paced introduction to "Test Driven Development" (TDD) in an agile environment. The TDD philosophy states that you should develop your tests and then write code to make your tests pass and satisfy user requirements.
This document discusses an introduction to a class on rapid software testing. It states that the class aims to make students stronger, smarter and more confident testers by challenging them to think for themselves rather than simply listening to what the instructors say. The class can be beneficial for testers of all experience levels who want to improve at their work. Heuristics are discussed as techniques that can help substitute for complete analysis and involve guidewords, triggers, reframing ideas, and procedures to help solve problems.
DevOps Tactical Adoption Theory tries to make the transition process as smooth as possible. It hypothesis each step towards DevOps maturity should bring a visible business value empowering management and team commitment for the next step. The innovative idea here, it is not required to add the tools/processes to stack from sequential beginning to end, but seeking benefit.
The reason behind the theory is to encourage practitioners to apply each step one-by-one and then having the benefits in projects. Consequently, each step is tested in terms of utility and proved method validity for the further steps. In contrast to previous adoption models, our model indicates concrete activities rather than general statements.
Theory built on the claim that many DevOps transition projects considered problematic, impractical or even unsuccessful causing concept to become a goal more than a technique. Basically, theory consists of different areas of interest describing various actions on a schema.
In the session, it is planned to demonstrate “DevOps Tactical Adoption Theory” with focus on Delivery Pipeline/Testing Practices sectioned "Continuous Testing in DevOps".
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
This document discusses software quality assurance techniques. It covers concepts like verification, validation, and fault prevention. Specific techniques discussed include testing, inspections, prototyping, and reliability measurement. Debugging methods like the scientific method and using tools are also covered. The document emphasizes that combining techniques is most effective for software quality assurance.
The Leaders Guide to Getting Started with Automated TestingJames Briers
Conventional testing is yesterday’s news, is required but needs the same overhaul that has happened in development. It needs to be a slicker operation that really identifies the risk associated with release and protects the business from serious system failure. The only way to achieve this is to remove the humans, they are prone to error, take a long time, cost a lot of money and don’t always do what they are told.
Automation needs to be adopted as a total process, not a bit part player. Historically automation has focussed on the User Interface, which can be a start, but is often woefully lacking. Implementing an Automation Eco-System, sees automation drive through to the interface or service layer, enabling far higher reuse of automated scripts, encompasses the environment and the test data within it’s strategy, providing a robust, repeatable and reusable asset.
Don’t just automate the obvious. Automation is not a black box testing technique. Rather it is mirroring the development and building an exercise schedule for the code. Take your testing to the next level and realise the real benefits of a modern Automation Eco-system.
The document provides 10 tips for testing web applications before launch. It discusses the importance of testing functionality, usability, and performance under load. It outlines challenges like supporting various browsers, third-party apps, multimedia formats, plugins, localization, and balancing deadlines with quality. Crowdsourcing is presented as a way to complement in-house testing efforts.
Slides from "Taking an Holistic Approach to Product Quality"Peter Marshall
This is the base material used during a half day workshop at expoQA 17 June 2019. Peter Marshall runs over the necessary technical, organisational, and improvement practices required to deliver high quality software. Deep dives into Continuous delivery, devops, organisational structures, agile and digital transformation.
What skills can software testers provide the best testing services?NexSoftsys
Although software testers have the versatility, software testers must have both technical and non-technical skills to provide the best testing services as this skill helps the tester to fight against any circumstances.
Common Challenges & Best Practices for TDD on iOSDerek Lee
Presented at the June 2016 Tokyo iOS Meetup on 6/11/2016, in this presentation I give an overview of test driven development and how it can be used when developing for iOS / Swift.
TDD is an enormous topic so this really just scratches the surface to give an expansive glimpse into the journey that TDD truly is. Those unfamiliar with TDD will hopefully have a desire to learn more about it while those familiar will hopefully learn something new.
Lean Enterprise, A Definitive Approach in Software Development ProductionBerk Dülger
This document summarizes a presentation on lean enterprise and software development methodologies. It discusses:
1) The chaotic nature of software development and how 66% of projects are unsuccessful or 30% cancelled due to unpredictable nature, leading many to adopt agile/lean methods.
2) An overview of agile methods like Scrum and Kanban, as well as DevOps and Continuous Delivery approaches.
3) How the target methodology selection is DevOps combined with Scrumban for management, to increase efficiency and push increments to production just in time, unlike sprints in Scrum.
4) The final section discusses tactical DevOps adoption through continuous testing and visible business value at each step to encourage practitioners
Get the Balance Right: Acceptance Test Driven Development, GUI Automation and...Michael Larsen
The document discusses different testing approaches including Acceptance Test Driven Development (ATDD), Test Driven Development (TDD), GUI automation, and exploratory testing. It explains that ATDD and TDD are design processes that help ensure software meets project needs, while testing involves asking questions of a product. GUI automation can simulate user actions but is fragile. Exploratory testing involves testing design and execution together in a flexible way. The document argues that these approaches work best in balance and that exploration is important at all levels, including with automation. It emphasizes putting the customer first and seeing the approaches as interdependent parts of an overall quality process.
Software testing 2012 - A Year in ReviewJohan Hoberg
The document summarizes software testing trends in 2012. Key points include: Google introduced "Testing 2.0" which focuses on risk assessment and reducing probabilities of bugs; good test automation requires caring about results and addressing failed tests; context-driven testing emphasizes a risk-based approach and looking at multiple contexts rather than one school of thought; mindless automation and scripted manual regression testing are not effective at finding bugs; and customer involvement is important for testing in agile projects.
The document provides an overview of agile and test-driven development. It begins by comparing waterfall and agile approaches, noting that agile uses short iterative cycles. It then defines agile as iterative and incremental, with continual revisiting of requirements and design. Common agile methodologies like Scrum and extreme programming are discussed. Test-driven development is introduced as writing tests before code to ensure requirements are met and prevent bugs. The benefits of agile and TDD for developers are more code proven to meet requirements and less time spent debugging.
The document provides a historical overview of iterative and incremental software development practices. It describes how techniques like plan-do-check-act, iterative development, test-first development, and time-boxed iterations were used as early as the 1950s on projects like the X-15 program. It notes that many agile practices predate the naming of the agile methodology and have been used successfully for decades.
Exploratory testing is a systematic approach to discovering risks by rigorously analyzing and testing a system through heuristics and testing techniques. It involves simultaneously learning about the target system while designing and immediately executing tests, using feedback from previous experiments to inform new tests. Exploratory testing focuses on discovering things you can vary and uses models, heuristics, time-boxed sessions, and charters to structure the exploration and focus on important areas.
DevOps Tactical Adoption Theory - DevOpsDays istanbul 2016Berk Dülger
This document contains information about DevOps tactics and adoption theories presented by Berk Dülger. It discusses implementing DevOps practices incrementally to demonstrate business value at each step and gain management support. It also emphasizes the importance of continuous testing, including both unit and UI testing, and provides an example of a tactical adoption approach for continuous testing.
Test-driven development (TDD) is a software development process that relies on the repetition of a short development cycle of requirements, design, and coding. It promotes writing tests before writing code (test-first design) and helps improve code quality by reducing defects. The TDD cycle involves writing an automated test, running the test and seeing it fail, writing the minimum amount of code to pass the test, and refactoring the code as needed. TDD brings benefits like clarifying requirements, adding executable documentation, and detecting errors early. Acceptance TDD involves automating acceptance tests to define and validate requirements. It helps establish a definition of done and improves team collaboration.
The document outlines an agenda for a presentation on Domain Driven Design with Entity Framework 4.0. The presentation will cover what Domain Driven Design is, its layered architecture, building blocks, modeling a domain with EF 4.0, building repositories and services, and verifying the domain with unit tests. A developer and domain expert will demonstrate collaborating on the domain model.
The document discusses application lifecycle management (ALM) with Team Foundation Server (TFS). It provides an agenda that covers ALM stories, definitions of ALM and how it compares to the software development lifecycle (SDLC). The document then demonstrates TFS project portals, builds, continuous integration (CI) and takes questions. It aims to explain how TFS can be used for ALM and managing the entire application lifecycle.
The document summarizes Microsoft's Visual Studio Team System (VSTS) and Visual Studio 2010 products. It discusses key features like integrated development tools, source code management, work item tracking, build automation, testing capabilities, and support for different development processes. VSTS aims to improve team productivity and collaboration through an integrated platform for the entire development lifecycle. Visual Studio 2010 offers various editions that provide features for coding, testing, modeling, database development, and other tasks.
Helvetas ICT Tools For Collaboration Interim Reportpete cranston
The document summarizes findings from evaluating Helvetas' use of collaborative technologies like Donyaso. It finds that while tools are used for communication, knowledge sharing occurs in isolated "islands" with limited sharing between groups. Donyaso is underutilized and lacking in features. It recommends phasing out Donyaso and moving to a new platform, implementing quick wins like simplifying processes, and developing a 24-month roadmap to replace systems and achieve consensus on requirements.
The survey summarizes findings from a global blogger survey conducted in 2009 across 21 countries. Key findings include:
1) Most bloggers welcome contact from PR firms and corporations, though contact varies by region, being most frequent in the US. Email is the preferred contact method.
2) Bloggers are generally interested in new product news and reviews but less interested in corporate announcements. Photos are the most used content format.
3) Awareness and perceived effectiveness of Social Media Releases is highest in Asia Pacific but usage of SMR elements was also highest there according to the survey.
Continuous integration (CI) aims to improve software quality and reduce delivery time by implementing continuous quality control processes like running automated unit, integration, and acceptance tests. CI helps teams be more efficient by quickly identifying issues and getting feedback. Key principles of CI include having a single code repository, automating builds and testing, publishing the latest build daily, and getting builds into production to enable fast feedback. Automating builds is important to ensure consistency across environments and allow issues to be identified and addressed early during development rather than in production.
This document discusses testing SharePoint solutions using Visual Studio 2010 tools. It provides an overview of common testing challenges and scenarios that lack testing rigor. It then demonstrates the Visual Studio 2010 testing capabilities for unit testing, load testing, coded UI testing, and lab management to help address these issues and establish a more robust testing practice. Automated testing tools are shown to integrate with the development lifecycle in Visual Studio and Team Foundation Server.
This document provides 5 insights to revolutionize software testing: 1) There are two types of code (experience and infrastructure) that require different testing approaches; 2) Testing should focus on capabilities rather than features; 3) Focus on testing techniques rather than individual test cases; 4) Testing should improve development rather than just find bugs; 5) Testing needs innovation to engage talent and avoid repetitive work. The author advocates shifting testing strategy to higher levels of abstraction and partnering with development to build quality in from the start.
Testing involves finding errors in a program. The goal is to assume a program contains errors and test to find as many as possible. Different testing techniques include white box testing by developers and black box testing by testers. Testing levels include unit, integration, system, and user acceptance testing. Developers and testers have different goals - developers want code to work while testers try to make code fail. Good development practices from a tester's view include doing own acceptance tests, fixing bugs, writing helpful error messages, and not artificially adding bugs. Good relationships between project managers, developers and testers help ensure quality.
Testing involves finding errors in a program. The goal is to assume a program contains errors and test to find as many as possible. Different testing techniques include white box testing by developers and black box testing by testers. Testing levels include unit, integration, system, and user acceptance testing. Developers and testers have different goals - developers want code to work while testers try to make code fail. Good development practices from a tester's view include doing own acceptance tests, fixing bugs, writing helpful error messages, and not artificially adding bugs. Good relationships between project managers, developers and testers help ensure quality.
The document discusses why software developers should use FlexUnit, an automated unit testing framework for Flex and ActionScript projects. It notes that developers spend 80% of their time debugging code and that errors found later in the development process can cost 100x more to fix than early errors. FlexUnit allows developers to automate unit tests so that tests can be run continually, finding errors sooner when they are cheaper to fix. Writing automated tests also encourages developers to write better structured, more testable and maintainable code. FlexUnit provides a testing architecture and APIs to facilitate automated unit and integration testing as well as different test runners and listeners to output test results.
Most of the people might say that software test engineers do not write code. Testers normally need completely different skill set which could be a mix of Java, C, Ruby, and Python.
That is not all you require to be a successful tester. A tester requires having a good knowledge of the software manuals and automation tools.
Depending on the complexity of a project, a software testing engineer may write more complicated code than the developer.
STARWEST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...Anna Russo
Using Microsoft Test Manager, Visual Studio 2010, and TFS 2010 can improve software quality through a 7 step approach: 1) Work management, 2) Defining what "done" means, 3) Automated builds, 4) Manual and automated testing tools, 5) Developer quality tools, 6) Lab management, and 7) Working smart. These tools provide an integrated environment for managing work, automating builds, facilitating manual and automated testing, and providing virtual test environments to improve efficiency and quality.
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...Anna Russo
Step 1 discusses work management in Visual Studio/TFS 2010, including hierarchical work management, improved dashboards and reports, and Excel integration. Step 2 covers defining and reporting on what is considered "done". Step 3 discusses automated builds, including build reports and associating work items. Step 4 focuses on manual testing tools like Microsoft Test Manager for test planning, management, and bug filing.
- The document summarizes a presentation given by Andy Zaidman at the International Conference on Automation of Software Test (AST 2023) in Melbourne, Australia on May 16th, 2023.
- It discusses findings from studies on how developers engineer test cases and their testing behaviors in IDEs, including strategies like being guided by documentation or code.
- It also presents recommendations to improve developer testing through better tool support, clear adequacy criteria in education, and a focus on improving the user and developer experience of testing tools and processes.
DevOps - Continuous Integration, Continuous Delivery - let's talkD Z
Brief but detailed insight about what to expect and what not from DevOps engineer if an organization is willing to hire one.
At the same time detailed insight about someone who is willing to dive into DevOps as a career option.
UI Integration Test
Herwidodo - Deviani
November 2021
The document discusses UI integration testing, including:
1. The motivation for UI integration testing is to find bugs earlier, reduce resource-intensive verifications, enable early automated feature regression testing, and reduce worries about unstable third-party libraries.
2. The objectives of UI integration testing are to assure no visual regressions, improve feature test coverage to reduce bugs, and enable automated testing to improve assurance and reduce release cycles.
3. UI integration testing runs the whole app in a real browser without hitting a real server, enabling fast, less failure-prone tests. It was demonstrated using Playwright and @blibli
Tutorial test driven development with Visual Studio 2012Hong Le Van
- The document discusses test driven development (TDD) using Visual Studio 2012, which features new support for external test frameworks like NUnit, improved test management tools, and integration of asynchronous testing.
- Key features include easy installation and use of external frameworks like NUnit via plugins, consolidated test results and management in Test Explorer, and support for async/await testing in .NET 4.5.
- Visual Studio 2012 allows seamless use of external frameworks with full IDE features and improves on limitations of Visual Studio 2010 integration.
Open Source tools in Continuous Integration environment (case study for agil...suwalki24.pl
Article wrote for Testing Experience magazine, publicated in December 2010.
The aim of this article is to share our experience in building and
managing Continuous Integration environments on the basis of
open-source tools like Hudson and Selenium. In this article we
will concentrate on testing purposes, suggest just few improvements
and describe our experience with using open-source tools.
The main idea is to present how to use automated tests reasonably
by minimizing the time spent on them while optimizing the
benefits that automated tests give us.
Continuous Integration testing based on Selenium and HudsonZbyszek Mockun
Open source tools in continuous integration environment, article describe who to use Selenium and Hudson to achieve CI testing.
Article has been written for Testing Experience magazine
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf
The quick rise of Continuous Delivery in the enterprise means that common problems are often approached the other way round. Concepts like Feature Flags and Testing In Production caused several headaches to developers and QA engineers, especially where they have a wealth of experience about traditional development.
There are some challenges and approaches which are very common, and they still scare newcomers. Let's have a look at a few of these, with the most common solutions.
CdCon + GitOpsCon 2023 in Vancouver Canada. Slidedeck for the talk on Scaling Software Delivery: A framework for developer enablement through devRel and outreach.
Unit testing involves developers writing short tests of individual units or modules of code as they develop software. These tests automatically validate that each piece of the software performs as intended. Benefits of unit testing include finding bugs earlier, simplifying integration, facilitating change, and encouraging good design. Developers should write tests early and often, refactor code frequently to keep it simple, and fix bugs as soon as they are discovered. Checklists can help ensure unit tests cover important functionality.
This presentation talks about the concepts of continuous Integration with TFS as an example platform on whihc you can implement this concept but it can apply to open source platforms as well
This document discusses career options in information technology, including software engineer, system administrator, database administrator, quality engineer, project manager, and sales/pre-sales roles. It provides links to resources about each role and questions to consider whether the role is a good fit, such as whether the role involves creativity, learning, long hours, and challenges. The document also provides tips for creating resumes, such as using a wizard and spell checker, having a simple theme, including an inspiring goal, and specializing. Interview tips include being honest, knowing when to say "I don't know", showing enthusiasm, community work, and projects to be proud of.
This document provides an overview of how various Azure services can help address common needs and challenges for a company called Litware. It discusses how Litware can leverage Azure Identity and Access Control services to enable single sign-on for customers using different directories. It also describes how Litware can use the Service Bus to integrate with customers' on-premises applications in a secure manner. Additionally, the document outlines how Workflow services could help Litware and customers create custom extensions more easily. Finally, it mentions how SQL Data services could help with Litware's database integration needs for different types of data.
This is a talk I gave on patterns and antipatterns of SOA, based on my understandings and practices and inspired by Ron Jacobs famous webcast by the same name.
Whitepaper On Agile Implementation OutlineMohamed Samy
This whitepaper discusses implementing an Agile methodology to address challenges in software development lifecycles (SDLC). It outlines problems like vague requirements, lack of documentation, and inability to track progress. The goals are to keep team morale high during deadlines, ensure full understanding of what is being built, communicate requirement changes, and deliver on time with quality. The challenge case study describes forming a small "commando" team, setting up environments, dealing with requirements issues without a business analyst, delivering prototypes through iterations, and a project manager entering to help manage requirements.
The document introduces Microsoft Dynamics, an enterprise resource planning (ERP) software suite. It defines ERP as a system that facilitates information flow and resource management across an organization. The Dynamics suite includes applications like AX, CRM, and NAV. It also discusses Dynamics' architecture and integration capabilities like the Application Integration Framework. The presentation aims to provide business and technical perspectives on Dynamics and demo some of its features like the enterprise portal.
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSeasia Infotech
Unlock real estate success with smart investments leveraging agentic AI. This presentation explores how Agentic AI drives smarter decisions, automates tasks, increases lead conversion, and enhances client retention empowering success in a fast-evolving market.
Bepents tech services - a premier cybersecurity consulting firmBenard76
Introduction
Bepents Tech Services is a premier cybersecurity consulting firm dedicated to protecting digital infrastructure, data, and business continuity. We partner with organizations of all sizes to defend against today’s evolving cyber threats through expert testing, strategic advisory, and managed services.
🔎 Why You Need us
Cyberattacks are no longer a question of “if”—they are a question of “when.” Businesses of all sizes are under constant threat from ransomware, data breaches, phishing attacks, insider threats, and targeted exploits. While most companies focus on growth and operations, security is often overlooked—until it’s too late.
At Bepents Tech, we bridge that gap by being your trusted cybersecurity partner.
🚨 Real-World Threats. Real-Time Defense.
Sophisticated Attackers: Hackers now use advanced tools and techniques to evade detection. Off-the-shelf antivirus isn’t enough.
Human Error: Over 90% of breaches involve employee mistakes. We help build a "human firewall" through training and simulations.
Exposed APIs & Apps: Modern businesses rely heavily on web and mobile apps. We find hidden vulnerabilities before attackers do.
Cloud Misconfigurations: Cloud platforms like AWS and Azure are powerful but complex—and one misstep can expose your entire infrastructure.
💡 What Sets Us Apart
Hands-On Experts: Our team includes certified ethical hackers (OSCP, CEH), cloud architects, red teamers, and security engineers with real-world breach response experience.
Custom, Not Cookie-Cutter: We don’t offer generic solutions. Every engagement is tailored to your environment, risk profile, and industry.
End-to-End Support: From proactive testing to incident response, we support your full cybersecurity lifecycle.
Business-Aligned Security: We help you balance protection with performance—so security becomes a business enabler, not a roadblock.
📊 Risk is Expensive. Prevention is Profitable.
A single data breach costs businesses an average of $4.45 million (IBM, 2023).
Regulatory fines, loss of trust, downtime, and legal exposure can cripple your reputation.
Investing in cybersecurity isn’t just a technical decision—it’s a business strategy.
🔐 When You Choose Bepents Tech, You Get:
Peace of Mind – We monitor, detect, and respond before damage occurs.
Resilience – Your systems, apps, cloud, and team will be ready to withstand real attacks.
Confidence – You’ll meet compliance mandates and pass audits without stress.
Expert Guidance – Our team becomes an extension of yours, keeping you ahead of the threat curve.
Security isn’t a product. It’s a partnership.
Let Bepents tech be your shield in a world full of cyber threats.
🌍 Our Clientele
At Bepents Tech Services, we’ve earned the trust of organizations across industries by delivering high-impact cybersecurity, performance engineering, and strategic consulting. From regulatory bodies to tech startups, law firms, and global consultancies, we tailor our solutions to each client's unique needs.
DevOpsDays SLC - Platform Engineers are Product Managers.pptxJustin Reock
Platform Engineers are Product Managers: 10x Your Developer Experience
Discover how adopting this mindset can transform your platform engineering efforts into a high-impact, developer-centric initiative that empowers your teams and drives organizational success.
Platform engineering has emerged as a critical function that serves as the backbone for engineering teams, providing the tools and capabilities necessary to accelerate delivery. But to truly maximize their impact, platform engineers should embrace a product management mindset. When thinking like product managers, platform engineers better understand their internal customers' needs, prioritize features, and deliver a seamless developer experience that can 10x an engineering team’s productivity.
In this session, Justin Reock, Deputy CTO at DX (getdx.com), will demonstrate that platform engineers are, in fact, product managers for their internal developer customers. By treating the platform as an internally delivered product, and holding it to the same standard and rollout as any product, teams significantly accelerate the successful adoption of developer experience and platform engineering initiatives.
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrus AI
Gyrus AI: AI/ML for Broadcasting & Streaming
Gyrus is a Vision Al company developing Neural Network Accelerators and ready to deploy AI/ML Models for Video Processing and Video Analytics.
Our Solutions:
Intelligent Media Search
Semantic & contextual search for faster, smarter content discovery.
In-Scene Ad Placement
AI-powered ad insertion to maximize monetization and user experience.
Video Anonymization
Automatically masks sensitive content to ensure privacy compliance.
Vision Analytics
Real-time object detection and engagement tracking.
Why Gyrus AI?
We help media companies streamline operations, enhance media discovery, and stay competitive in the rapidly evolving broadcasting & streaming landscape.
🚀 Ready to Transform Your Media Workflow?
🔗 Visit Us: https://gyrus.ai/
📅 Book a Demo: https://gyrus.ai/contact
📝 Read More: https://gyrus.ai/blog/
🔗 Follow Us:
LinkedIn - https://www.linkedin.com/company/gyrusai/
Twitter/X - https://twitter.com/GyrusAI
YouTube - https://www.youtube.com/channel/UCk2GzLj6xp0A6Wqix1GWSkw
Facebook - https://www.facebook.com/GyrusAI
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...Ivano Malavolta
Slides of the presentation by Vincenzo Stoico at the main track of the 4th International Conference on AI Engineering (CAIN 2025).
The paper is available here: http://www.ivanomalavolta.com/files/papers/CAIN_2025.pdf
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAll Things Open
Presented at All Things Open RTP Meetup
Presented by Brent Laster - President & Lead Trainer, Tech Skills Transformations LLC
Talk Title: AI 3-in-1: Agents, RAG, and Local Models
Abstract:
Learning and understanding AI concepts is satisfying and rewarding, but the fun part is learning how to work with AI yourself. In this presentation, author, trainer, and experienced technologist Brent Laster will help you do both! We’ll explain why and how to run AI models locally, the basic ideas of agents and RAG, and show how to assemble a simple AI agent in Python that leverages RAG and uses a local model through Ollama.
No experience is needed on these technologies, although we do assume you do have a basic understanding of LLMs.
This will be a fast-paced, engaging mixture of presentations interspersed with code explanations and demos building up to the finished product – something you’ll be able to replicate yourself after the session!
The Future of Cisco Cloud Security: Innovations and AI IntegrationRe-solution Data Ltd
Stay ahead with Re-Solution Data Ltd and Cisco cloud security, featuring the latest innovations and AI integration. Our solutions leverage cutting-edge technology to deliver proactive defense and simplified operations. Experience the future of security with our expert guidance and support.
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Raffi Khatchadourian
Efficiency is essential to support responsiveness w.r.t. ever-growing datasets, especially for Deep Learning (DL) systems. DL frameworks have traditionally embraced deferred execution-style DL code—supporting symbolic, graph-based Deep Neural Network (DNN) computation. While scalable, such development is error-prone, non-intuitive, and difficult to debug. Consequently, more natural, imperative DL frameworks encouraging eager execution have emerged but at the expense of run-time performance. Though hybrid approaches aim for the “best of both worlds,” using them effectively requires subtle considerations to make code amenable to safe, accurate, and efficient graph execution—avoiding performance bottlenecks and semantically inequivalent results. We discuss the engineering aspects of a refactoring tool that automatically determines when it is safe and potentially advantageous to migrate imperative DL code to graph execution and vice-versa.
Config 2025 presentation recap covering both daysTrishAntoni1
Config 2025 What Made Config 2025 Special
Overflowing energy and creativity
Clear themes: accessibility, emotion, AI collaboration
A mix of tech innovation and raw human storytelling
(Background: a photo of the conference crowd or stage)
Autonomous Resource Optimization: How AI is Solving the Overprovisioning Problem
In this session, Suresh Mathew will explore how autonomous AI is revolutionizing cloud resource management for DevOps, SRE, and Platform Engineering teams.
Traditional cloud infrastructure typically suffers from significant overprovisioning—a "better safe than sorry" approach that leads to wasted resources and inflated costs. This presentation will demonstrate how AI-powered autonomous systems are eliminating this problem through continuous, real-time optimization.
Key topics include:
Why manual and rule-based optimization approaches fall short in dynamic cloud environments
How machine learning predicts workload patterns to right-size resources before they're needed
Real-world implementation strategies that don't compromise reliability or performance
Featured case study: Learn how Palo Alto Networks implemented autonomous resource optimization to save $3.5M in cloud costs while maintaining strict performance SLAs across their global security infrastructure.
Bio:
Suresh Mathew is the CEO and Founder of Sedai, an autonomous cloud management platform. Previously, as Sr. MTS Architect at PayPal, he built an AI/ML platform that autonomously resolved performance and availability issues—executing over 2 million remediations annually and becoming the only system trusted to operate independently during peak holiday traffic.
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?Lorenzo Miniero
Slides for my "RTP Over QUIC: An Interesting Opportunity Or Wasted Time?" presentation at the Kamailio World 2025 event.
They describe my efforts studying and prototyping QUIC and RTP Over QUIC (RoQ) in a new library called imquic, and some observations on what RoQ could be used for in the future, if anything.
Canadian book publishing: Insights from the latest salary survey - Tech Forum...BookNet Canada
Join us for a presentation in partnership with the Association of Canadian Publishers (ACP) as they share results from the recently conducted Canadian Book Publishing Industry Salary Survey. This comprehensive survey provides key insights into average salaries across departments, roles, and demographic metrics. Members of ACP’s Diversity and Inclusion Committee will join us to unpack what the findings mean in the context of justice, equity, diversity, and inclusion in the industry.
Results of the 2024 Canadian Book Publishing Industry Salary Survey: https://publishers.ca/wp-content/uploads/2025/04/ACP_Salary_Survey_FINAL-2.pdf
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/canadian-book-publishing-insights-from-the-latest-salary-survey/
Presented by BookNet Canada and the Association of Canadian Publishers on May 1, 2025 with support from the Department of Canadian Heritage.
Build with AI events are communityled, handson activities hosted by Google Developer Groups and Google Developer Groups on Campus across the world from February 1 to July 31 2025. These events aim to help developers acquire and apply Generative AI skills to build and integrate applications using the latest Google AI technologies, including AI Studio, the Gemini and Gemma family of models, and Vertex AI. This particular event series includes Thematic Hands on Workshop: Guided learning on specific AI tools or topics as well as a prequel to the Hackathon to foster innovation using Google AI tools.
Original presentation of Delhi Community Meetup with the following topics
▶️ Session 1: Introduction to UiPath Agents
- What are Agents in UiPath?
- Components of Agents
- Overview of the UiPath Agent Builder.
- Common use cases for Agentic automation.
▶️ Session 2: Building Your First UiPath Agent
- A quick walkthrough of Agent Builder, Agentic Orchestration, - - AI Trust Layer, Context Grounding
- Step-by-step demonstration of building your first Agent
▶️ Session 3: Healing Agents - Deep dive
- What are Healing Agents?
- How Healing Agents can improve automation stability by automatically detecting and fixing runtime issues
- How Healing Agents help reduce downtime, prevent failures, and ensure continuous execution of workflows
Slides for the session delivered at Devoxx UK 2025 - Londo.
Discover how to seamlessly integrate AI LLM models into your website using cutting-edge techniques like new client-side APIs and cloud services. Learn how to execute AI models in the front-end without incurring cloud fees by leveraging Chrome's Gemini Nano model using the window.ai inference API, or utilizing WebNN, WebGPU, and WebAssembly for open-source models.
This session dives into API integration, token management, secure prompting, and practical demos to get you started with AI on the web.
Unlock the power of AI on the web while having fun along the way!
2. Software Developers, Development Leads1234567WHAT ARE THEY LIKE?Software developers are problem solvers, tinkerers, artists and engineers all rolled up in one. They are continuously building something for the first time. No matter what they are building there is some element of it—or all of it—that is new, that they have never done before. Developers are analytical and believe, to a certain extent, that there is an art form to software development.WHY ARE THEY HERE?Developers attend this session because they want to learn how to make their work life better. They have to work with testers every day, and anything that improves how they receive a bug, and how they can fix it and never see it again is an improvement.WHAT KEEPS THEM UP AT NIGHT?Bugs. Software developers are a proud people. They don’t like to find out that they introduced a bug into the code. The goal is bug-free code. Obviously this is impossible, because some bugs are the result of bad requirements or changes in scope. If a bug is found it can be massively disruptive to what they believe is a more creative process—writing new code. No software developer wants to spend time fixing bugs; time spent on bugs is like paying taxes.HOW CAN YOU SOLVE THEIR PROBLEM?Since the majority of time spent fixing bugs is in (a) reproducing them and (b) finding the root cause, and not in actually coding the fix, you need to give them tools that enable them to do these two things—reproduce the bug and find the root cause faster. WHAT DO YOU WANT THEM TO DO?Install Visual Studio 2010 Ultimate and start using IntelliTrace in their local debugging sessions. Work with their QA or test team to get them to begin using Visual Studio Test Professional 2010 so that bugs that are filed are more actionable.HOW MIGHT THEY RESIST?If the new tools and capabilities appear to have a lot of setup overhead they may quickly reject it as something they don’t have time for. Additionally, the need to get another team to use a new tool—the QA team—may appear to be a non-starter.WHAT’S THE BEST WAY TO REACH THEM?Demonstration. Show them what IntelliTrace does and how it can help them. Show them the entire workflow—from discovering a defect and filing a bug, to quickly locating the cause, to automating the functional test to identify if the bug ever returns.Target Audience
3. S2S: Situation to Solution1234SITUATIONDevelopers and testers frequently work in separate but connected teams. Each role is managed separately, perhaps only connecting at the Director of Development or Vice President of IT level. The development team is responsible for implementing a set of requirements, while the QA team is responsible for validating the requirements were met; however there is often little direct interaction between the developers and the testers and often a skill and pay gap that divides the two roles. In 90% of IT organizations it’s obvious the developers are more highly valued and usually more highly skilled.PROBLEMSince the developers and testers are managed separately, they are frequently given different direction. There is nothing forcing the two roles to interact, and likely the division of reporting structure creates a greater boundary between the two roles. The level of collaboration is very low, and too often the level of blame is too high.IMPLICATIONThere is erratic code quality, dependent on the individual developer with a high escaped bug rate, frequent regressions and performance problems. As a result there is a high-level of mistrust between testers & developers. When bugs are found, they are often difficult to reproduce due to poor bug documentation. In addition, the high complexity of the typical enterprise environment means developers assume the testers incorrectly configured the software or made some other mistake that explains away the bug.SOLUTIONVisual Studio 2010 introduces a new set of tools and capabilities that enable testers to easily create actionable bugs when a defect is found. The level of data collected and attached to the bug enables developers to quickly take action and locate the root cause of the bug. IntelliTrace™ enables the developer to step through the code execution from the test environment as if it was currently running. The data collectors can also capture environment and configuration settings, and developers can see the actual execution of the program using Lab Management 2010. Once the developer fixes the bug they are able to create a Coded UI Test which can be added to an automated regression test suite, ensuring that if the bug is ever reintroduced, it is quickly discovered. Target Audience
4. What are your most common defect resolutions?What If…TodayFixed…Won’t FixNot a BugCannot ReproduceCannot ReproduceNot a BugWon’t Fix…Fixed
5. Why Can’t a Bug Be Fixed?Poorly documentedsteps to reproduceLack of visibility into the tester’s actionsEnvironment differences
19. Microsoft Approach in VSTS 201070% of testing happens heremajority of test tools target hereBlack Box TestingWhite Box TestingAPI Testing
20. Microsoft Test CapabilitiesLoad Test Web Test Coded UI Test Microsoft Test RunnerUnit Testing Test Case ManagementLab ManagementData Collectors (Historical Debugging, Test Impact, Metrics)Team Foundation ServerReporting
21. VSTS 2010 Test ElementsTest Case ManagementCompose test cases, plans and suites.Integration with TFS
22. Manual Test RunnerStandalone toolEnables execution of test casesCollects system data and event logCaptures still images and videoEnables filing a new bug
28. “…the realization came over me with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs.”- Maurice Wilkes,Memoirs of a Computer Pioneer, MIT Press
36. Createricher actionable bugs.Environment Snapshots.Quickly debug issues in the same environment.Connect to the test environment snapshot with network isolation.Automate end-to-end workflowOut of the box build-deploy-test automation workflow
37. *For complete list visit Microsoft Visual Studio galleryVisual Studio Test Partners
38. What will be your most common defect resolution?What If…TodayFixed…Won’t FixNot a BugCannot ReproduceCannot ReproduceNot a BugWon’t Fix…Fixed
#2: Walk-in slide. Advance to the next slide to begin the presentation.
#3: HIDDEN SLIDE FOR SPEAKER PREP ONLYAudience Definition:Software Developers, Development LeadsWhat are they like? Software developers are problem solvers, tinkerers, artists and engineers all rolled up in one. They are continuously building something for the first time. No matter what they are building there is some element of it—or all of it—that is new, that they have never done before. Developers are analytical and believe, to a certain extent, that there is an art form to software development.Why are they here?Developers attend this session because they want to learn how to make their work life better. They have to work with testers every day, and anything that improves how they receive a bug, and how they can fix it and never see it again is an improvement.What keeps them up at night? Bugs. Software developers are a proud people. They don’t like to find out that they introduced a bug into the code. The goal is bug-free code. Obviously this is impossible, because some bugs are the result of bad requirements or changes in scope. If a bug is found it can be massively disruptive to what they believe is a more creative process—writing new code. No software developer wants to spend time fixing bugs; time spent on bugs is like paying taxes.How can you solve their problem?Since the majority of time spent fixing bugs is in (a) reproducing them and (b) finding the root cause, and not in actually coding the fix, you need to give them tools that enable them to do these two things—reproduce the bug and find the root cause faster. What do you want them to do? Install Visual Studio 2010 Ultimate and start using IntelliTrace in their local debugging sessions. Work with their QA or test team to get them to begin using Visual Studio Test Professional 2010 so that bugs that are filed are more actionable.How can you best reach them? Demonstration. Show them what IntelliTrace does and how it can help them. Show them the entire workflow—from discovering a defect and filing a bug, to quickly locating the cause, to automating the functional test to identify if the bug ever returns.How might they resist?If the new tools and capabilities appear to have a lot of setup overhead they may quickly reject it as something they don’t have time for. Additionally, the need to get another team to use a new tool—the QA team—may appear to be a non-starter.
#4: HIDDEN SLIDE FOR SPEAKER PREP ONLYSituationDevelopers and testers frequently work in separate but connected teams. Each role is managed separately, perhaps only connecting at the Director of Development or Vice President of IT level. The development team is responsible for implementing a set of requirements, while the QA team is responsible for validating the requirements were met; however there is often little direct interaction between the developers and the testers and often a skill and pay gap that divides the two roles. In 90% of IT organizations it’s obvious the developers are more highly valued and usually more highly skilled.ProblemSince the developers and testers are managed separately, they are frequently given different direction. There is nothing forcing the two roles to interact, and likely the division of reporting structure creates a greater boundary between the two roles. The level of collaboration is very low, and too often the level of blame is too high.ImplicationThere is erratic code quality, dependent on the individual developer with a high escaped bug rate, frequent regressions and performance problems. As a result there is a high-level of mistrust between testers & developers. When bugs are found, they are often difficult to reproduce due to poor bug documentation. In some environments, coding mistakes are caught by the developers before handing off to testing, but consistency still depends on individual discipline. Since developers don’t understand the testing role there’s often a lack of trust. In addition, the high complexity of the typical enterprise environment means developers assume the testers incorrectly configured the software or made some other mistake that explains away the bug.SolutionVisual Studio 2010 introduces a new set of tools and capabilities that enable testers to easily create rich, actionable bugs when a defect is found. The level of data collected and attached to the bug enables developers to quickly take action and locate the root cause of the bug. IntelliTrace™ enables the developer to step through the code execution from the test environment as if it was currently running—similar to a digital video recorder (DVR). The data collectors can also capture environment and configuration settings, and developers can see the actual execution of the program using Lab Management 2010. Once the developer resolves the bug they are able to create a Coded UI Test which can be added to an automated regression test suite, ensuring that if the bug is ever reintroduced, it is quickly discovered.
#5: What is the most common bug resolution used right now by your development team? Is it ‘Cannot Reproduce,’ or ‘Not a Bug,’ or ‘Won’t Fix?’ If you stack ranked all of the bug resolution by how commonly they were used, where would ‘Fixed’ appear? Imagine if you could move ‘Fixed’ to the top of the list? How would your software development process change if resolutions like “Not a Bug” and “Won’t Fix” became rarities? What if “Cannot Reproduce” became obsolete?Welcome. My name is [SPEAKERNAME] and I am a [SPEAKER TITLE].
#6: The first step in resolving a bug is reproducing it reliably. Once the bug is reproduced, a developer can use tools like the Visual Studio debugger to step through the code execution, watching variable states and execution flow to identify the cause of the bug. Unfortunately, all too often bugs are difficult to reproduce. If you cannot reproduce a bug, how can you be expected to fix the root cause? The reasons for not being able to reproduce the bug could be varied. Some bugs are triggered by inputs that are difficult to recreate, or poorly documented in the bug report; often a tester will perform actions or steps that weren’t explicit in the test case. Without knowing what the tester did it becomes very difficult to reproduce the bug. In some cases, bugs are the result of the speed at which the tester performed the actions—a reproduction that is often very hard to identify until you see the tester in action. In some cases the bug is the result of environmental differences between the development environment and the test environment—which could include different operating systems, service packs, different versions of required runtimes, and even the version of the software being tested.
#7: All of these things lead to a lot of wasted effort on your team, and create a divide—a chasm—between the developers and the testers. The reality is that you share a common goal. Both developers and testers want to ship high-quality software that meets the expectations of the customers and stakeholders. How can you reduce the waste of bug Ping-Pong, and increase the level of collaboration between developers and testers. Sure you can engage in some crazy team building outing where you have the developers have to fall backwards and the testers have to catch them…but is that really going to help?
#8: Visual Studio 2010 is going to help. Today you are going to see three (3) ways that developers and testers can use the tools and capabilities of Visual Studio 2010 to:Create rich, actionable bugs that enable any developer to learn enough about the bug to take immediate action.Replay the code execution from a test run to reproduce a bug and quickly find the root cause, even if the development environment is different than the test environment.Create an automated functional test that will quickly discover the bug if it reemerges.
#9: In order to move ‘Fixed’ to the top of the resolution list you have to start by looking at how software is tested and how defects are reported. In most environments today the test or QA team uses a set of tools that enable them to do their job, but which don’t integrate into the tools used by the development team. This is the first fracture in the system and a contributor to costly bug ping-pong. In an ideal world the development team and the test team would each use tools that integrated with one another and enables easily passing information back and forth.
#10: Microsoft Test Manager 2010 is for testers what Visual Studio is for developers. That is to say, where Visual Studio is an IDE – an integrated development environment, Test Manager is an ITE – an integrated test environment. This is the interface that a tester will use to create test cases, organize test plans, track test results, and file bugs when defects are found. Test Manager is integrated with Team Foundation Server, and is designed to improve the productivity of testers. While I am not going to do a deep-dive of all that Test Manager can do, it is important to understand how it integrates with the Visual Studio Agents to make the most of test case execution, and ensure that when a tester files a bug, it is actionable with very little work on the tester’s part.
#11: Visual Studio Agents 2010 are set of technology—included with Visual Studio 2010—that enable tasks to be performed on behalf of one or more users. In the context of developer-tester collaboration, the most important Agent is the Test Agent, which includes a set of diagnostic data adapters, or DDA’s. There are several DDA’s which each server a different purpose. During test execution DDA’s can be used to:Collect a video capture of the tester’s machine.Collect the steps performed during the test execution.Collect system information from any or all of the machines involved in the test execution.Collect an action recording—a recording of the keyboard strokes and mouse clicks performed by the tester.Collect an IntelliTrace file which can be later used to replay the events that occurred during the test run.DDA’s can be used to impact the system under test (e.g. network emulation), and are extensible as well; so if there’s a piece of information which you find would be helpful for your developers to have from test runs, you can easily write your own DDA which collects that data for inclusion with the actionable bug.While this is not an exhaustive list of the DDA’s and their capabilities, these are the ones that will provide the most value when filing a bug; these are the DDA’s that will automate the collection of information that will turn a normal, somewhat helpful bug into a rich, actionable bug.
#12: To define an actionable bug I’d like to examine a typical bug. When a tester files a bug they record information they think is important or will help whomever the bug is assigned to understand it better. The problem starts right here. You might say that Developers are from Mars, testers are from Venus. That is to say, the roles of these individuals, and what is important to them and the language they speak is so different that they may as well be from different planets. How can anyone expect a tester to accurately provide the information that a developer needs to do their job? As a result a typical bug fails to contain the necessary detail for a developer to understand the bug, find the root cause and fix it.
#13: An actionable bug, on the other hand, is a bug that is full of data that will aid the developer in understanding the bug, and enable them to take immediate action toward fixing the bug. An Actionable bug contains enough information that whomever it is assigned to is not blocked from taking action to fix the bug.Let me demonstrate how to use Microsoft Test Manager 2010 to execute a test, find a defect and file an actionable bug.
#14: See DemoMate file: CreateActionableBug.demo 10-mins
#15: We have to understand the types of testers and who we are targeting with these tools.We’ve had specialist testing tools in the past and have improved on them.However the big leap with Test Elements is the support for the generalist tester.
#16: +In General, Manual Testing is supported by the Microsoft Test and Lab Manager that is included in Visual Studio Test Elements 2010 and Specialist testing is supported by Visual Studio.
#23: As a developer, the most important thing you need to see in a bug is information, and the more the better. An actionable bug is tremendously helpful. No longer do you have to hope that the tester properly documented the steps to reproduce the bug, or the system information—those things are collected automatically and added to the bug. No longer do you have to walk down the hall and ask the tester to run the test case again so that you can watch and see what happened with your own eyes—the screen capture and video capture do that for you. But that still may not be enough to do the most important thing—find the root cause of the bug quickly.
#24: To quote - Maurice Wilkes, the builder and designer of the EDSAC, the first computer with an internally stored program,“…the realization came over me with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs.”Even with all the information provided by an actionable bug, unearthing that nugget of information—the root cause of a defect—may be the most difficult thing to do. Imagine if you could go back in time and watch the code execution happen as the bug was discovered. Think of how much time you would save if you could rewind and fast forward through the test execution.
#25: IntelliTrace is a new capability in Visual Studio 2010 Ultimate that enables developers and testers to collaborate by sharing a historical perspective. When a test case is executed using Test Manager 2010, you have the option of collecting an IntelliTrace file using one of the DDAs. The IntelliTrace DDA collects information about the events that executed during the test run. The level of event data collection is adjustable via DDA configuration, and may be fairly coarse grain collection, or much more fine grain collection. When a tester files a new bug, the IntelliTrace file is automatically attached and available to the developer when they open the bug in Visual Studio. This enables the developer to see the exact code execution that occurred during the test run.
#26: You could think of this as being like a DVR—a digital video recorder—for developers. When you attach the Visual Studio debugger to an IntelliTrace file you are able to move through the code execution similarly to a DVR—move forward, backward, pause, stop, rewind, etc. Similar to a DVR, you can’t change the code execution that occurred—after all, it already happened, and you can’t change the past—but you are able to examine the code execution more easily. If you miss something, simply “rewind” back to the event to see what happened. This enables you to more easily and more quickly identify the issues that caused the bug.
#28: Functional testing refers to the testing of a specific action of function of the code. A function test is typically designed to identify if a particular requirements has been fulfilled, if a feature works, or if a user story can be completed without error.
#29: Currently about 70% of functional testing is done manually—that is, a software tester follows a script to execute a series of steps to verify the outcome of a test. Microsoft Test Manager 2010 is an example of a tool that someone doing manual testing would use to be more productive. Imagine if you could still get the benefits of functional testing without the overhead and resource cost of doing in manually.Consider a regression test—a test designed to identify if a bug fix begins to fail. With a regression test (and even other functional tests) you are repeatedly testing something that was known to work at one point. These too are typically done manually. This is a massive resource hit. Software testers spend countless hours testing functionality that works, solely to ensure it still works. Imagine how much more productive they could be if they could focus their efforts on creating and running new test cases that covered parts of the system not currently tested instead of spending their time testing the same thing, over and over again.
#30: Comp Photo: http://www.istockphoto.com/stock-photo-1629680-the-cyber-robot-hand.phpA new capability in Visual Studio 2010 Premium is the ability to create a Coded UI Test—a test that automates the testing of the user interface of an application. Coded UI Tests work similarly to unit tests, in that they are written in a programming language—such as Visual Basic or C#—perform some action or series of actions, validate one or more assertions, and are easily repeatable with predictable results. The difference from a unit test is that, while a unit test is intended to test an individual unit of code, such as a single method call, the Coded UI Test is intended for automating a functional test, including the validation of the outcomes within the test. Visual Studio makes it easy for you to create Coded UI Tests be enabling you to use an action recorder to capture your actions—keyboard strokes and mouse clicks—or to simply import an existing action recording created with Test Manager 2010 as part of a test case execution. In either case, the actions recorded are converted into code—Visual Basic or C#. This creates a great collaboration point for developers and testers. Consider the following workflow:A developer writes code to fulfill a requirement.A tester uses Test Manager 2010 to test the implementation and discovers a defect.The tester files an actionable bug.The developer fixes the bug.The tester verifies the fix by successfully completing the test case.The developer (or a test automation engineer) imports the Action Recording from the last test run and creates a Coded UI Test.Every time a new build is deployed to the test environment, all of the Coded UI Tests are executed to ensure there are no regressions.By automating functional tests, including regression tests, you are able to free up testing resources to focus on creating and executing new tests to ensure complete test coverage of your software. This is like adding an automated tester to you team. One that is never late for work, never complains, works at incredible speed and who will take on additional testing work as fast as you can create the Coded UI Tests.
#32: Visual Studio Lab Management 2010 takes developer and tester collaboration to the next level. It offers an out-of-the-box solution fully integrated with Visual Studio. It leverages virtualization for application lifecycle management and enables you to Create even richer bugs. With a single click, you can take an environment snapshot and attach a link to it in the bug. Developers can quickly debug issues on real testing environment by connecting to environment snapshot. In case the QA team is still holding on to the test environment, network isolation allows you to create multiple copies of environments without having to reconfigure machines or your application.Once you have created automated test cases, use lab management to automate the end-to-end workflow that builds your app, provisions an environment for application deployment in minutes instead of hours or days, deploys your application through a distributed workflow based on Team Foundation Build and runs automated test suites. The test results are stored in TFS for further analysis and reporting.Furthermore, teams spend a lot of time on tasks that don’t contribute to the over all quality of the application or project success. Areas where teams maybe wasting precious cycles is around setting up and tearing down of environments. Our customers tell us that they spend up to 40% of the test cycle time setting up machines. Lab Management empowers the team members to quickly create complex multi-machine environments. Since Lab Management leverages virtualization, you get all the benefits of virtualization, such as, hardware consolidation which lowers your total cost of ownership.
#34: At the beginning of this session I asked what your most common defect resolution is currently. More importantly I asked you to consider what the impact to your business and your software projects would be if you could move “Fixed” to the top of the list, and resolutions like ”Cannot Reproduce” to the bottom of the list.
#35: Today you saw three (3) ways that developers and testers can collaborate to deliver high quality software more easily, and ensure “Fixed” is far and away the most common defect resolution by using the capabilities of Visual Studio 2010.Visual Studio 2010 enables you to:Create rich, actionable bugs that enable any developer to learn enough about the bug to take immediate action.Replay the code execution from a test run to reproduce a bug and quickly find the root cause, even if the development environment is different than the test environment.Create an automated functional test that will quickly discover the bug if it reemerges.