Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Sunday, September 22, 2013

Test iOS Apps with UI Automation Book Review

This book has made creating iOS Automation scripts much easier than it would have been with the Apple Instruments User Guide alone. Although, I do think reading the Apple Instruments User Guide is worthwhile. The Instruments User Guide gives you a nice overview of Instruments, but does not come close to the information this book provides on UI automation. I also recommend checking out the Apple UI Automation JavaScript Reference. At least breeze through it to get an idea of what it contains.

The book starts off by jumping right into capturing a script from the simulator and provides a nice overview of the Instrument's trace-document window.

Then Chapter 2 jumps right in to creating automated acceptance-test scripts using JavaScript, which is the language used for UI Automation.

One thing I must admit is that because of the book's size I really underestimated how valuable the information would be and how many topics would be covered. I normally only list the chapter to give you an idea of what the book covers, but for this review I have also include the sections in each chapter.

Chapter 1: UI Automation Overview
1.1 Capturing Our First Script from the Simulator
1.2 Finding Our Way around UI Automation
Chapter 2: Testing Behavior with UI Automation
2.1 Talking to the UI through JavaScript
2.2 Reporting Errors
2.3 Verifying that the Test Does What It Says
Chapter 3: Building a Test Suite
3.1 Testing with a Modal Alert View
3.2 Importing Script Files at Runtime
3.3 Testing Results from a Live API
3.4 Grouping Test Steps and Their Output
Chapter 4: Organizing Test Code
4.1 Starting a JavaScript Toolbox
4.2 Describing the App with Screen Objects
4.3 Reusing a Generic Screen Prototype
4.4 Converting Our Test Suite to Screen Objects
Chapter 5: Maps, Gestures, and Alerts
5.1 Exploring the Map
5.2 Identifying Elements with Accessibility APIs
5.3 Testing with Gestures
5.4 Advanced Alert-Handling
Chapter 6: Strategies for Testing Universal Apps
6.1 Universalizing an Application
6.2 Finding Elements in the New Idiom
6.3 Building an iPad Test Suite with Reusable Pieces
6.4 Searching the Element Tree with Predicates
6.5 Advanced Predicate Usage and Beyond
Chapter 7: Automating Performance Tests
7.1 Setting Up Custom Instruments Templates
7.2 Capturing Steps to Reproduce a Memory Leak
7.3 Triggering Simulator Memory Warnings with AppleScript
7.4 Stress Testing
Chapter 8: Setting Up Application Data
8.1 Seeding Data in Xcode with Application Data Packages
8.2 Seeding Data Dynamically with a Factory
8.3 Choose Your Own Adventure with Environment Variables
8.4 Hiding Test-Setup Code from Release
Chapter 9: Stubbing External Services
9.1 Choosing a Geographical Location
9.2 Faking a Network-Service API
9.3 Wrapping Service APIs in a Facade
9.4 Stubbing a Facade with Data in the App Bundle
Chapter 10: Command-Line Workflow
10.1 Practicing with the Raw Commands
10.2 Automating the Build-and-Run Process with Rake
10.3 Reading Environment Variables from Script Files
10.4 Resetting the Simulator to Test Permissions
10.5 Running Tests on an Attached Device
Chapter 11: Third-Party Tools and Beyond
11.1 Enhancing UI Automation
11.2 Testing outside the Box

As you can see above the author covers a ton of topics. He also covers them in-depth. There is no filler text in this book. The author also has an excellent writing style which makes reading the text a pleasure.

Although the coverage of Instruments and writing scripts is what this book is all about, I must say the real value is the author's understanding of what it takes to do automated testing. If you have no experience with how difficult it can be, I would recommend reading Experiences of Test Automation.

The book covers most of the things you must think about when you are including automated testing in your development process. Often times the organization of the testing scripts is overlooked and before you know it you are spending more time fixing your tests than you are writing your code. In the chapter Organizing Test Code, the author does a great job of showing you how to organize your code by building a JavaScript Toolbox.

When building universal applications you must build test scripts that account for the iPad and the iPhone interface. The chapter Strategies for Testing Universal Apps shows you how to do that.

With iOS performance is always one of the top quality attributes we need to give a lot of attention to. The chapter Automating Performance Tests shows us just how to do that. I also like that the author introduced custom templates in this chapter.

A few months ago one of our development teams asked us to write some Load Runner scripts for their application. It is a big COTS application that took 1.5 years to customize and configure, and that was only about 30% of what they had originally planned to do in 1 year. We gave them the list of what they would need to supply, which included a lot of things, but setting up application data and handling external services were included in the list. After they saw the list of what we would require from them for us to implement a test suite they decided not to move forward.

The source code examples the author supplies is organized and very usable. The code is broken down by chapters, and then within each chapter each it is broken down into steps.

Right now one of the projects I am on has outsourced the development of the project's iOS and Android development. Our team is just creating the services the devices will communicate with. As we get new builds of the iOS app to be tested, it is really nice having the scripts setup to run through the scenarios that should work, and also those that shouldn't work. Running the scripts makes sure nothing unexpected happened, and if it did, we can stop that build from going to the testers and save them a lot of time.

All in all this book is a must read for the iOS architect, developer, and tester.

Test iOS Apps with UI Automation: Bug Hunting Made Easy

posted by tadanderson at 8:02 PM 0 comments

Saturday, September 21, 2013

Microsoft SharePoint 2013 Inside Out Book Review

This is the SharePoint book for the end-user that wants to become a power-user. It covers a ton of topics and it covers them in-depth.

The book is not intended for SharePoint developers for SharePoint administrators, although most SharePoint developers and administrators are also power users. So the book will come in handy when you're simply using share point as an end-user.

I have listed the table of contents below to give you an idea of what is covered in the book.

1. Introducing SharePoint 2013
2. Administration for business users
3. Working with list and library apps
4. Working with collaboration sites
5. Using Office applications with SharePoint
6. Sharing information with SharePoint social networking
7. Using and creating workflows
8. Planning site content
9. Creating and formatting content pages
10. Adding, editing, connecting, and maintaining web parts
11. Managing documents
12. Designing web content management sites
13. Implementing compliance, records management, and eDiscovery
14. Planning for business intelligence and key performance indicators
15. Implementing better business intelligence with Excel Services and SQL Server 2012
16. Building powerful dashboards with PerformancePoint Services
17. Working with Visio Services
18. Discovering information with SharePoint 2013 Search
19. Creating a customized SharePoint 2013 search experience
20. Creating, managing, and designing sites
21. Creating enterprise forms
22. Working with external content
23. Introduction to custom development

One big plus with this book is that it comes with an e-book download that is free when you purchase the printed book. That makes it very good a reference also.

The authors also have some downloads available of the examples that are used in the book.

This book really surprised me. It had a lot more information in it than I expected. The authors writing styles are great, so it makes for easy read. I would think that most people will use this as a reference though, reading the chapters that address their immediate needs.

Overall this book is definitely worth the cost, especially when you factor in the free e-book. Although my role is usually an administrator of SharePoint or a developer in the SharePoint environment, end users still call me with a lot of questions that I can't answer about using the front end, so I will be keeping this book by my side.

Microsoft SharePoint 2013 Inside Out

posted by tadanderson at 10:15 AM 0 comments

Previous Posts

  • DevOps: A Software Architect's Perspective Book Re...
  • Scaled Agile Framework (SAFe) LiveLessons Video Se...
  • Bulletproof Android: Practical Advice for Building...
  • Swift for Programmers Book Review
  • Security in Computing (5th Edition) Book Review
  • Swift in 24 Hours, Sams Teach Yourself Book Review
  • Sparx Systems Releases Enterprise Architect 12
  • Learning Swift Programming Book Review
  • Android Security Internals: An In-Depth Guide to A...
  • Adaptive Code via C#: Agile coding with design pat...



Archives

  • December 2005
  • January 2006
  • February 2006
  • March 2006
  • April 2006
  • June 2006
  • August 2006
  • October 2006
  • November 2006
  • December 2006
  • January 2007
  • February 2007
  • March 2007
  • April 2007
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • September 2007
  • October 2007
  • November 2007
  • December 2007
  • January 2008
  • February 2008
  • March 2008
  • April 2008
  • May 2008
  • June 2008
  • July 2008
  • August 2008
  • September 2008
  • October 2008
  • December 2008
  • January 2009
  • February 2009
  • March 2009
  • April 2009
  • May 2009
  • June 2009
  • July 2009
  • August 2009
  • September 2009
  • October 2009
  • November 2009
  • December 2009
  • January 2010
  • February 2010
  • March 2010
  • April 2010
  • May 2010
  • June 2010
  • August 2010
  • September 2010
  • October 2010
  • November 2010
  • December 2010
  • January 2011
  • February 2011
  • March 2011
  • April 2011
  • May 2011
  • June 2011
  • July 2011
  • August 2011
  • September 2011
  • October 2011
  • November 2011
  • December 2011
  • January 2012
  • February 2012
  • March 2012
  • April 2012
  • May 2012
  • June 2012
  • July 2012
  • August 2012
  • September 2012
  • October 2012
  • November 2012
  • December 2012
  • January 2013
  • February 2013
  • March 2013
  • April 2013
  • May 2013
  • June 2013
  • July 2013
  • August 2013
  • September 2013
  • October 2013
  • November 2013
  • December 2013
  • January 2014
  • February 2014
  • March 2014
  • April 2014
  • May 2014
  • June 2014
  • July 2014
  • August 2014
  • September 2014
  • October 2014
  • December 2014
  • February 2015
  • March 2015
  • April 2015
  • June 2015
  • July 2015
  • September 2015

Powered by Blogger