In any development project, a serious and extensive test harness provides the foundation for building quality software that is trusted and reliable. Windows Phone is no different. Many of the same approaches used on other platforms are relevant here, but there are also scenarios specific to Windows Phone that are important and can differentiate your app. This course will teach you all the building blocks for incorporating testing in your Windows Phone project and build up your critical thinking when it comes to choosing areas and features to test. Learn some shortcuts that will speed up your testing and development alike, and make sure you don't ignore any areas that could benefit from testing.
Lars is an author, trainer, Microsoft MVP, community leader, authority on
all things Windows Platform, and part time crocodile wrangler. He is heavily
involved in the space of HoloLens and mixed reality, as well as a published
Pluralsight author, freelance solution architect, and writer for numerous
Test Areas Hi! I'm Lars Klint, and welcome to Windows Phone Testing and Error Management. This is Module 2 about Test Areas. When first building a Windows Phone app, and you want to define a test harness for your project, there are a lot of areas you can target, but what provides the most value? How do you identify the test areas relevant to your project? There are a number of areas that you should always test, and then there are project-specific areas. We'll talk about the first run of your app. This is the first time a user of your app will fire up your best work, and if the first run is not smooth, they instantly lose faith in it. Fast App Switching and tombstoning are areas that require thought and testing. These areas are vital to make sure your app is running smooth and cohesive. The navigation through the user interface is the immediate point of interaction with your user, and a lack of testing here could mean your users can't find their way around your app, or they miss functionality that would add value to them. System Settings are out of your control, and we'll have to cater for users switching things on and off; we can't mandate certain System Settings, so you have to deal with all scenarios. Finally, there are areas where testing depends on whether your app is using them. These include Camera, Accelerometer, Compass, and more.
Preparing Test Data Hi! I'm Lars Klint with Pluralsight, and this is Windows Phone Testing and Error Management, Module 4, about Preparing Test Data. In this module, I'll show you why test data is important, and why it is important to get it right. For now, take my word for it, test data is important. To have confidence in your product, test data has to reflect the usage of your app. We will look at why test data is important, and I will provide some relevant examples you can relate to your own project. Furthermore, test data should be reusable and up to date. Having out of date, or too specific test data makes it less useful, and you will spend more time debugging than developing. When you're developing, and especially producing visual elements, design time test data is extremely useful and time saving. I will guide you through how to setup test data very easily for design time development, and how to make sure it doesn't make it to production polluting your deliverables. I'll show you both how to include UI and backend test data. I'll briefly touch on Geo Location Data testing scenarios, as there is a dedicated way to test Location Services while debugging. Lastly, there will be a sprinkling of hands on examples to get you on the right track when building your test data. So, let's get started preparing some test data!
Integration Testing Hi! I'm Lars Klint with Pluralsight, and this is Windows Phone Testing and Error Management, Module 6, where we will be looking at Integration Testing. How do you make sure that any libraries that other developers in your team, or outside of your team, have built-on behavior unexpectedly, and affect your project in the way that reflects negatively on you? How do you test that all the various components and modules that make up your next Angry Birds, or Facebook app will play nicely together, and not step on each other toes, or in any other way make your life difficult? Building on from unit testing, in this module we will look at integration testing. It is an important part of a holistic test plan, and I'll teach you how to get a grip on integration testing. It is a very large topic, and extensive research and literature has been produced on the topic. Over the years several theories and approaches have been put forward on how to carry out integration testing. We'll look at four different approaches that can guide you in setting up integration tests. We'll look at the different pros and cons for each approach, and identify which one to choose for your project. You might want to use a combination of all, or some, or maybe a single approach will do. We'll take a look at continuous integration, which is a way to automate testing, and identify errors and bugs early. It is a link between unit and integration testing, and is a no-brainer to use on most projects. And then we will, of course, understand how does all this relate to Windows Phone projects? Why should you spend time on integration testing, I bet in some places you might already be? We will look at how you can get the full picture for your app, and benefit from this innovative and progressive platform without being concerned that things out of your control won't work as expected.
Performance Testing Hi! I'm Lars Klint, and welcome to Windows Phone Testing and Error Management. This is Module 7 on Performance Testing. Users of mobile devices, be they Windows Phone or another platform, expect apps to perform optimally, and be of super quality. You, as the developer, want to have your app standout from the crowd of thousands of other apps, and often it is not enough to have a great idea if executed poorly. One of the areas that can weigh heavily for or against an app is how it performs. In this module, we'll look at what do we mean by performance in this context, as it is a very large topic if considering all meanings of performance in software development. There are many aspects of performance to consider in Windows Phone development, and we'll identify the most important ones. We will look at the various areas to consider when testing performance, and go into detail on some of the most critical ones. These are important to know so when you develop your application, you are aware of some of the pitfalls in terms of performance. Sometimes it might not be possible to address a certain performance issue, or the effort to resolve it is too great. In these scenarios, I'll go through how you might mitigate perception of poor performance through user guidance, and be honest about some areas of your app. This can be a greater return on your effort if the area in question is less important. The Windows Phone platform provides some APIs to monitor and assist performance, which you can take advantage of where relevant. You can monitor frame rates, redraws, and memory users, to mention a few possibilities. Finally, we'll test drive some of the tools that we can use to optimize performance. There are several tools available that you can use to measure and monitor performance, and we'll go through some of them in this module.
Logging Frameworks Hi! I'm Lars Klint with Pluralsight, and this is Windows Phone Testing and Error Management, Module 8, where we'll be looking at Logging Frameworks. In this last module of the course, we'll be looking at some of the logging frameworks available for Windows Phone. Because there're a lot of unknowns with devices, such as location, usage, uses, and more, it can be very difficult to perform basic maintenance of your product. What happens after you publish the app? You submit the app for certification, and once it's certified, it is free in the world, out of your control. How can you monitor it and see what is going on? What happens once it's been released to the Wild, and users you've never met, or seen, start using it? How do you keep track of bugs, popular features, and how do you know what to prioritize in your development plan? We'll go through how logging frameworks to Windows Phone can help you answer these questions and more. In particular, we'll be looking at two frameworks that are probably the two most used. The first is Bugsense, which is a cross-platform easy to use logging framework that has become very popular, and provides some great features, and presents data really well. The second framework is NLog, and it has more of a programmers flavor to it. It provides a bit more in-depth focus of programming artifacts, but it doesn't have the same polished feel to it. It is very extensible though, and works great. Finally, we'll get our hands dirty by looking at Bugsense and how easy it is to setup for any project.