No catches, no fine print just unadulterated book loving, with your favourite books saved to your own digital bookshelf.
New members get entered into our monthly draw to win £100 to spend in your local bookshop Plus lots lots more…Find out more
See below for a selection of the latest books from Software testing & verification category. Presented with a red border are the Software testing & verification books that have been lovingly read and reviewed by the experts at Lovereading. With expert reading recommendations made by people with a passion for books and some unique features Lovereading will help you find great Software testing & verification books and those from many more genres to read that will keep you inspired and entertained. And it's all free!
To build reliable, industry-applicable software products, large-scale software project groups must continuously improve software engineering processes to increase product quality, facilitate cost reductions, and adhere to tight schedules. Emphasizing the critical components of successful large-scale software projects, Software Project Management: A Process-Driven Approach discusses human resources, software engineering, and technology to a level that exceeds most university-level courses on the subject. The book is organized into five parts. Part I defines project management with information on project and process specifics and choices, the skills and experience needed, the tools available, and the human resources organization and management that brings it all together. Part II explores software life-cycle management. Part III tackles software engineering processes and the range of processing models devised by several domestic and international organizations. Part IV reveals the human side of project management with chapters on managing the team, the suppliers, and the customers themselves. Part V wraps up coverage with a look at the technology, techniques, templates, and checklists that can help your project teams meet and exceed their goals. A running case study provides authoritative insight and insider information on the tools and techniques required to ensure product quality, reduce costs, and meet project deadlines. Praise for the book: This book presents all aspects of modern project management practices ... includes a wealth of quality templates that practitioners can use to build their own tools. ... equally useful to students and professionals alike. -Maqbool Patel, PhD, SVP/CTO/Partner, Acuitec
Reliable test design is important in software testing; without it, defects in software may remain undetected. This book presents the key test design techniques, in line with ISTQB, and explains when and how to use them, including in combination, with practical, real-life examples. Automated test design methods are also explored. Tips and exercises are included throughout the book, allowing you to test your knowledge as you progress.
This best-selling software testing title is the only official textbook of the ISTQB-BCS Certified Tester Foundation Level. This fourth edition includes examples and exercises reflecting current technology and applications. It is ideal for those with a little experience of software testing who wish to cement their knowledge with industry-recognised techniques and theory.
Learn end-to-end automation testing techniques for web and mobile browsers using Selenium WebDriver, AppiumDriver, Java, and TestNG Key Features Explore the Selenium grid architecture and build your own grid for browser and mobile devices Use ExtentReports for processing results and SauceLabs for cloud-based test services Unlock the full potential of Selenium to test your web applications. Book DescriptionSelenium WebDriver 3.x is an open source API for testing both browser and mobile applications. With the help of this book, you can build a solid foundation and can easily perform end-to-end testing on web and mobile browsers.You'll begin by being introduced to the Selenium Page Object Model for software development. You'll architect your own framework with a scalable driver class, Java utility classes, and support for third-party tools and plugins. You'll design and build a Selenium grid from scratch to enable the framework to scale and support different browsers, mobile devices, and platforms.You'll strategize and handle a rich web UI using the advanced WebDriver API and learn techniques to handle real-time challenges in WebDriver. You'll perform different types of testing, such as cross-browser testing, load testing, and mobile testing. Finally, you will also be introduced to data-driven testing, using TestNG to create your own automation framework.By the end of this Learning Path, you'll be able to design your own automation testing framework and perform data-driven testing with Selenium WebDriver. This Learning Path includes content from the following Packt products: Selenium WebDriver 3 Practical Guide - Second Edition by Unmesh Gundecha Selenium Framework Design in Data-Driven Testing by Carl Cocchiaro What you will learn Use different mobile and desktop browser platforms with Selenium 3 Use the Actions API for performing various keyboard and mouse actions Design the Selenium Driver Class for local, remote, and third-party grid support Build page object classes with the Selenium Page Object Model Develop data-driven test classes using the TestNG framework Encapsulate data using the JSON protocol Build a Selenium Grid for RemoteWebDriver testing Build and use utility classes in synchronization, file I/O, reporting and test listener classes Who this book is forThis Learning Path is ideal for software quality assurance/testing professionals, software project managers, or software developers interested in using Selenium for testing their applications. Professionals responsible for designing and building enterprise-based testing frameworks will also find this Learning Path useful. Prior programming experience in Java are TestNG is necessary.
Analytical instrumentation used within regulated analytical laboratories is computerized either via firmware inside the instrument or via a PC workstation with control and application software installed on it. Qualification and validation are typically considered as separate activities with little if any interaction between the two disciplines. The major problem is that you cannot validate the computer system without qualifying the instrument and vice versa. The use of separate approaches impacts the resources needed to establish regulatory compliance. An integrated approach will enable a more efficient and effective use of such resources. This book is based upon a successful two part workshop given by the authors that will address these concerns.
Model checking is a computer-assisted method for the analysis of dynamical systems that can be modeled by state-transition systems. Drawing from research traditions in mathematical logic, programming languages, hardware design, and theoretical computer science, model checking is now widely used for the verification of hardware and software in industry. The editors and authors of this handbook are among the world's leading researchers in this domain, and the 32 contributed chapters present a thorough view of the origin, theory, and application of model checking. In particular, the editors classify the advances in this domain and the chapters of the handbook in terms of two recurrent themes that have driven much of the research agenda: the algorithmic challenge, that is, designing model-checking algorithms that scale to real-life problems; and the modeling challenge, that is, extending the formalism beyond Kripke structures and temporal logic. The book will be valuable for researchers and graduate students engaged with the development of formal methods and verification tools.
In today's unforgiving business environment where customers demand zero defect software at lower costs-it is testing that provides the opportunity for software companies to separate themselves from the competition. Providing a fresh perspective on this increasingly important function, Software Testing as a Service explains, in simple language, how to use software testing to improve productivity, reduce time to market, and reduce costly errors. The book explains how the normal functions of manufacturing can be applied to commoditize the software testing service to achieve consistent quality across all software projects. This up-to-date reference reviews different software testing tools, techniques, and practices and provides succinct guidance on how to estimate costs, allocate resources, and make competitive bids. Replete with examples and case histories, this book shows software development managers, software testers, testing managers, and entrepreneurs how proper planning can lead to the creation of software that proves itself to be head and shoulders above the competition.
This book discusses automated string-analysis techniques, focusing particularly on automata-based static string analysis. It covers the following topics: automata-bases string analysis, computing pre and post-conditions of basic string operations using automata, symbolic representation of automata, forward and backward string analysis using symbolic automata representation, constraint-based string analysis, string constraint solvers, relational string analysis, vulnerability detection using string analysis, string abstractions, differential string analysis, and automated sanitization synthesis using string analysis. String manipulation is a crucial part of modern software systems; for example, it is used extensively in input validation and sanitization and in dynamic code and query generation. The goal of string-analysis techniques and this book is to determine the set of values that string expressions can take during program execution. String analysis can be used to solve many problems in modern software systems that relate to string manipulation, such as: (1) Identifying security vulnerabilities by checking if a security sensitive function can receive an input string that contains an exploit; (2) Identifying possible behaviors of a program by identifying possible values for dynamically generated code; (3) Identifying html generation errors by computing the html code generated by web applications; (4) Identifying the set of queries that are sent to back-end database by analyzing the code that generates the SQL queries; (5) Patching input validation and sanitization functions by automatically synthesizing repairs illustrated in this book. Like many other program-analysis problems, it is not possible to solve the string analysis problem precisely (i.e., it is not possible to precisely determine the set of string values that can reach a program point). However, one can compute over- or under-approximations of possible string values. If the approximations are precise enough, they can enable developers to demonstrate existence or absence of bugs in string manipulating code. String analysis has been an active research area in the last decade, resulting in a wide variety of string-analysis techniques. This book will primarily target researchers and professionals working in computer security, software verification, formal methods, software engineering and program analysis. Advanced level students or instructors teaching or studying courses in computer security, software verification or program analysis will find this book useful as a secondary text.
Software maintenance work is often considered a dauntingly rigid activity - this book proves the opposite: it demands high levels of creativity and thinking outside the box. Highlighting the creative aspects of software maintenance and combining analytical and systems thinking in a holistic manner, the book motivates readers not to blithely follow the beaten tracks of technical rationality . It delivers the content in a pragmatic fashion using case studies which are woven into long running story lines. The book is organized in four parts, which can be read in any order, except for the first chapter, which introduces software maintenance and evolution and presents a number of case studies of software failures. The Introduction to Key Concepts briefly introduces the major elements of software maintenance by highlighting various core concepts that are vital in order to see the forest for the trees. Each such concept is illustrated with a worked example. Next, the Forward Engineering part debunks the myth that being fast and successful during initial development is all that matters. To this end, two categories of forward engineering are considered: an inept initial project with a multitude of hard evolutionary phases and an effective initial project with multiple straightforward future increments. Reengineering and Reverse Engineering shows the difficulties of dealing with a typical legacy system, and tackles tasks such as retrofitting tests, documenting a system, restructuring a system to make it amenable for further improvements, etc. Lastly, the DevOps section focuses on the importance and benefits of crossing the development versus operation chasm and demonstrates how the DevOps paradigm can turn a loosely coupled design into a loosely deployable solution. The book is a valuable resource for readers familiar with the Java programming language, and with a basic understanding and/or experience of software construction and testing. Packed with examples for every elaborated concept, it offers complementary material for existing courses and is useful for students and professionals alike.
Get started with functional testing of both web apps and Windows apps using different test frameworks. This book will take you on a deep dive into integrating functional automation testing with deployment pipelines. Hands-On Functional Test Automation contains step-by-step lessons that will give you an understanding of how to do functional test automation using Selenium with C# and Python. Also, you will learn how to enhance your test automation development with third-party frameworks. You will configure test clients, run functional tests through Azure DevOps release management, and carry out performance and load-testing to gain a good understanding of how to do cloud-based load testing. Each lesson comprises an introduction to the related concepts to help you understand how things work. This will broaden your knowledge so you can implement test automation in the correct way. At the end of each lesson alternative options and other enhancement possibilities are discussed to allow you to do further exploration. You will: * Implement functional test automation of Windows and web applications * Use Visual Studio for load and performance testing * Configure and run cloud-based load testing * Integrate testing with deployment pipelines
The aim of this book is to provide a platform to academicians, practitioners, and researchers to understand current and future trends in software reliability growth modeling. Emphasis will be on qualitative work relevant to the theme with particular importance given to mathematical modeling for software reliability and various methods and applications of multi attributed decision making in governing the software performance. Presents software quality and security models Offers reliability analysis, assurance techniques for software systems Covers methodologies, tools, and practical applications of software reliability modeling and testing resources Includes robust reliability design techniques, diagnostic, and decision support Discusses stochastic modelling for software systems
Property-based testing helps you create better, more solid tests with little code. By using the PropEr framework in both Erlang and Elixir, this book teaches you how to automatically generate test cases, test stateful programs, and change how you design your software for more principled and reliable approaches. You will be able to better explore the problem space, validate the assumptions you make when coming up with program behavior, and expose unexpected weaknesses in your design. PropEr will even show you how to reproduce the bugs it found. With this book, you will be writing efficient property-based tests in no time. Most tests only demonstrate that the code behaves how the developer expected it to behave, and therefore carry the same blind spots as their authors when special conditions or edge cases show up. Learn how to see things differently with property tests written in PropEr. Start with the basics of property tests, such as writing stateless properties, and using the default generators to generate test cases automatically. More importantly, learn how to think in properties. Improve your properties, write custom data generators, and discover what your code can or cannot do. Learn when to use property tests and when to stick with example tests with real-world sample projects. Explore various testing approaches to find the one that's best for your code. Shrink failing test cases to their simpler expression to highlight exactly what breaks in your code, and generate highly relevant data through targeted properties. Uncover the trickiest bugs you can think of with nearly no code at all with two special types of properties based on state transitions and finite state machines. Write Erlang and Elixir properties that generate the most effective tests you'll see, whether they are unit tests or complex integration and system tests. What You Need Basic knowledge of Erlang, optionally Elixir For Erlang tests: Erlang/OTP >= 20.0, with Rebar >= 3.4.0 For Elixir tests: Erlang/OTP >= 20.0, Elixir >= 1.5.0