Test Studio is a tool that offers a variety of features to build custom automated solutions for desktop and web applications. It hosts and simplifies the testing process by supporting manual test creation, automation, and execution. Additionally, its reporting capabilities help in conveying to managers the quality status of the application under test. Test Studio can be extended with bug tracking tools, thus bringing the developers into the loop by seamlessly combining bug reporting within the testing process. This tool is tightly integrated with Team Foundation Server and Visual Studio, which provide the user with a wider set of benefits related to version controlling, management, development, and other powerful software test development characteristics.
Test Studio has two editions for testing desktop and web applications, the standalone and the Visual Studio plugin. Along with these editions, it supports an extended version intended for mobile testing.
Throughout this book, testers will learn how to use Test Studio features in order to create automated tests using interface recording and how to customize these tests by adding functionalities from the underlying test framework library. The different chapters cover the available built-in templates, such as manual, WPF, web, performance, and load test templates, where each chapter elucidates the underlying features that constitute the testing type implied by the template. Therefore, this book helps in learning manual test creation, automation, and execution against a WPF application, in addition to performance testing, benchmarking, workload designing, load testing, result analysis, and reporting against a web application. Furthermore, it contains an overview of Test Studio integration with Team Foundation Server and Visual Studio. A section is also dedicated to revealing the usage of Test Studio extension for automating, executing, reporting, and managing the tests for iOS applications in the cloud.
This book presents hands-on examples, code snippets, and snapshots to conduct the implementation, execution, and reporting phases pertaining to the software testing process inside Test Studio. It makes use of the available tools to present solutions for testing the functional and nonfunctional aspects of an application.
Chapter 1, Introduction, explains what software testing is, introduces some important concepts, and the comprised phases. The introduction also provides a summary of Test Studio features and the chapters in which they are reflected. This chapter also introduces the applications that will be used in the examples and how to properly set up their environment.
Chapter 2, Automating Functional Tests, introduces Test Studio, its architecture, and the supported technologies. It explains how to use its features to automate functional tests using simple recording, coding, execution, debugging, and logging. This chapter also provides an overview of test integration with Visual Studio.
Chapter 3, Data-driven Tests, demonstrates the usage of the data source features in order to create and execute data-driven automated tests. It covers the entire list of supported file system and database management sources to craft independent and embedded data-driven tests.
Chapter 4, Maintaining Test Elements, introduces Test Studio concepts on test element creation, recognition, finding, and editing using the tool IDE and framework library. This chapter also explains some techniques to help in sustaining the test repository and referencing it from within the automated tests.
Chapter 5, Manual Testing, demonstrates manual test creation, integration with MS Excel, execution, and transitioning to automated tests. Test Studio provides a managed process for converting manual testing into a semiautomated version through hybrid tests and then to a fully automated version. Furthermore, this chapter covers source and version controlling functions in Team Foundation Server, managed from Test Studio and Visual Studio IDEs.
Chapter 6, Test Lists and Reports, presents Test Studio's support for test suites through its test lists. It explains and demonstrates the creation and grouping of tests under static and dynamic lists. This chapter also dwells on the reporting side in this tool, its integration with Visual Studio, and customization with MS SQL server.
Chapter 7, Performance Testing, covers the nonfunctional aspects of an application's performance. It explains Test Studio's mechanism for carrying out performance testing by using the specific test template. The built-in capabilities are revealed through simulating real user requests, measuring performance counters, calculating metrics, comparing executions for the same test, and benchmarking the desired instance.
Chapter 8, Load Testing, demonstrates the steps to replicate real-life user loads. Using the load test template, virtual users can be employed to simulate any number of users, automated tests can be executed via different browsers, agents can be installed to initiate requests in a sparse environment, performance counters can be profiled on target machines as well as the networks, and user activity can be designed and tuned. Test Studio also offers a built-in mechanism to chart and compare the results collected for the multiple test runs.
Chapter 9, Mobile Testing, uses Test Studio extensions for iOS to demonstrate functional testing for a mobile application. The chapter explains UI test recording, execution, failure debugging, and accessing of test elements in order to automate the desired tests. Other Test Studio collaboration and reporting features are also exemplified. These features are supported in the feedback and crash reports modules that are viewable from the registered application web portal, which hosts a dashboard enabling other management and tracking testing functionalities related to test execution progress, quality monitoring, and users' collaboration.
Chapter 10, Tips and Tricks, presents some ideas resulting from the combination of different Test Studio features in order to provide useful solutions that enhance test reusability, maintainability, and flexibility in test functions.
Appendix A, Configuring BugNet, contains step-by-step instructions to configure the BugNet project and underlying objects for testing purposes.
This book assumes basic knowledge in C# in order to comprehensively follow the examples pertaining calls to the test framework library. Test Studio integration with the Team Foundation Server and Visual Studio requires familiarity with these tools' IDEs and features. This book contains material related to iOS testing, which also requires familiarity with the XCode development IDE. The reader must have prior knowledge of software testing concepts. The following is a list of the required tools in order to execute the examples in the book.
For functional and automated web performance and load testing:
MS SQL Server 2008
Visual Studio Ultimate 2010
Team Foundation Server 2010
A File Comparer WPF application
The BugNet Issue Tracker open source application
For mobile testing:
Mac OS X 10.7
iOS SDK 6
Test Studio extension for iOS
Test Studio bundle
The Switchy open source application
This book is for any person motivated by software testing who wishes to exploit and apply Test Studio features in order to manage an automated testing environment from test case creation to reporting.
It assumes a prior knowledge with the testing concepts in addition to having a basic C# knowledge and familiarity with Visual Studio IDE.
In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.
Code words in text are shown as follows: "Clicking on the
FileComparer.Test node it will display its properties in this pane."
A block of code is set as follows:
[default] exten => s,1,Dial(Zap/1|30) exten => s,2,Voicemail(u100) exten => s,102,Voicemail(b100) exten => i,1,Voicemail(s0)
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)
Any command-line input or output is written as follows:
# cp /usr/src/asterisk-addons/configs/cdr_mysql.conf.sample /etc/asterisk/cdr_mysql.conf
New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "On the startup window, click on Create New Project".
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply send an e-mail to
<[email protected]>, and mention the book title via the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at
<[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors, and our ability to bring you valuable content.
You can contact us at
<[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.