Conference Presentations

Mock Objects: From Concept to Code
Slideshow

Mock objects are simulated objects that mimic the behavior of real objects in controlled ways. Because many code modules interact with external entities-things like databases, networks, file systems, third-party frameworks, and even the clock-these entities often cause us big-time trouble during unit testing. These entities can slow down our unit tests, produce unpredictable results, and have dangerous side effects. The best unit tests are decoupled from these external entities. Rather than try to control the entities, you can create mock objects to simulate their functionality. With a tangible example in the form of a short play, Rob Myers introduces mock objects and provides a brief history of their "relatives"-stubs and fakes. Then, with an animated, nearly-worst-case example, Rob presents code he developed to "mock out" nasty dependencies and create safe, predictable unit tests.

Rob Myers, Agile Institute
Lessons From The Trenches – The Do's And Don'ts of Agile Outsourcing
Slideshow

Due to its ongoing rise in popularity 'Agile' methods are now being used on a wide range of projects, varying in size and complexity. As a result it's not uncommon for key project areas, like development, testing, UX, etc to be outsourced to 'on' and 'off-shore' companies. And although the decision to outsource is sometimes the right one for a project, outsourcing also comes with its own inherent risks. Using real world examples based on personal experience, Ade Shokoya will be sharing the do's and don'ts of agile outsourcing. Attendees will leave this session knowing how to identify and avoid the common outsourcing problems that could quickly derail your agile projects - and potentially cost you your job. Armed with this knowledge you'll be better positioned to improve your personal power and influence at work, and achieve your career objectives.

Ade Shokya
The Why and How of Usability and User Experience (UX) Testing
Slideshow

Although usability and user experience may seem synonymous, they are separate and much different concepts. While usability is well defined in standards, UX has no agreed upon definition because it relates to a more nebulous attribute-user satisfaction. Both are, however, key ingredients for successful system deployment. Because they don’t know how to measure and evaluate UX, many teams ignore this important attribute until the end of development. Philip Lew discusses how to model both usability and UX by breaking each attribute down into measurable characteristics-learnability, user effectiveness, user efficiency, content quality, user errors, and more. Phil shows you how to derive measurements and metrics that your development and team can employ to benchmark, analyze, and improve both usability and UX.

Philip Lew, XBOSoft
Estimating in Software Development: No Silver Bullets Allowed
Slideshow

What do poker, Greek oracles, an Italian mathematician from the Middle Ages, and the path of hurricanes have in common? Given the title of this presentation, chances are it has something to do with estimation, and you'll have to attend this session to get the full connection. Kent McDonald explores the challenges and realities of trying to estimate software-related knowledge work-analysis, testing, development, and the entire project effort. A major challenge is that there are no guaranteed ways to arrive at perfectly accurate estimates, which not surprisingly is why they are called estimates. Kent introduces and gives you a chance to practice quick and practical estimating techniques that will work in different situations-guesstimating, break it down and add it up, and planning poker.

Kent McDonald, Knowledge Bridge Partners
Better Test Designs to Drive Test Automation Excellence
Slideshow

Test execution automation is often seen as a technical challenge-a matter of applying the right technology, tools, and smart programming talent. However, such efforts and projects often fail to meet expectations with results that are difficult to manage and maintain-especially for large and complex systems. Hans Buwalda describes how the choices you make for designing tests can make-or break-a test automation project. Join Hans to discover why good automated tests are not the same as the automation of good manual tests and how to break down tests into modules-building blocks-in which each has a clear scope and purpose. See how to design test cases within each module to reflect that module's scope and nothing more. Hans explains how to tie modules together with a keyword-based test automation framework that separates the automation details from the test itself to enhance maintainability and improve ROI.

Hans Buwalda, LogiGear Corporation
Back to the Basics: Principles for Constructing Quality Software
Slideshow

Using an analogy to the building codes followed by architects and contractors in the construction of buildings, Rick Spiewak explores the fundamental principles for developing and delivering high quality, mission-critical systems. Just as buildings are constructed using different materials and techniques, we use a variety of languages, methodologies, and tools to develop software. Although there is no formal "building code" for software, software projects should consider-and judiciously apply-the recognized "best" practices of static analysis, automated unit testing, code re-use, and peer reviews. Rick takes you on a deep dive into each of these techniques where you'll learn about their advantages, disadvantages, costs, challenges, and more.

Rick Spiewak, The MITRE Corporation
Cloud-based Testing: Flexible, Scalable, On-demand, and Cheaper
Slideshow

Cloud computing is here to stay-and it is changing the way we test software. Cloud-based testing offers flexible, scalable, and on-demand infrastructure services. And as a bonus, because the cloud offers pay-per-use purchasing options, cloud-based testing usually costs less. Tauhida Parveen describes the concept of cloud-based testing: scope, specific requirements, benefits, and drawbacks. She explains how cloud-based testing brings new capabilities and options for your testing activities-instantly creating and dismantling test environments and miming production environments in early testing. Tauhida discusses how to engineer scalable environments for load, stress, and performance testing. Then, she introduces cloud-based compatibility, cross-browser, and cross-platform testing opportunities you can exploit.

Tauhida Parveen, Independent Testing Consultant
It's a Phone First! How to Test Your Five-star Mobile Apps
Slideshow

Mobile application development shares many similarities-and some stark differences-with traditional web-based development. To build, test, and deploy five-star mobile applications, your organization needs-from inception-a focused test strategy to drive quality. Employing the wrong approaches and tools can leave your business sponsors and clients wondering what went wrong. Will Hurley outlines the current mobile landscape and explains what can and cannot be controlled in the mobile lifecycle. He explores the current landscape and limitations on tools for testing mobile apps, and offers guidance on what-and what not to-automate. With Will's guidance, you’ll learn how to establish a mobile lifecycle test strategy that is both leading edge and practical.

Will Hurley, Will Hurley - Quality and Security Services
Prime Directive: Improve Dev Testing Skills

In many development organizations today, quality is the responsibility of everyone on the project-both developers and testers. However, getting devs fully engaged in this testing continues to be a challenge. Andrew Prentice describes two approaches-blitz testing and mentored testing-that help Atlassian’s developers gain the skills they need to improve code quality before the testers get their hands on the application. He shares how they structure and organize blitz tests-group test sessions, the various roles participants play in them, and how to foster their viral adoption. Andrew also describes mentored testing, including its potential risks and mitigation options. He examines the skills and tools testing teams need to implement these techniques with their devs.

Andrew Prentice, Atlassian
Penetration Testing Demystified

Penetration testing is a method of evaluating the security of a system by maliciously attacking it and analyzing its possible weaknesses. Penetration testing uses a suite of tests, generally performed in a gray-box fashion, to attack the system as real attackers would-approaching the system with attacker eyes, knowledge, skills, and tools. Edward Bonver explains why and how penetration testing should be done on any mission-critical system as part of a comprehensive security testing strategy. He describes the factors that influence the success of penetration testing include testing environment readiness, technical information, and the availability of the product teams’ key contacts. You’ll learn the details behind penetration testing, common approaches, testing options, and best practices.

Edward Bonver, Symantec Corporation

Pages

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.