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!
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 the why and when of using them, with practical examples and code snippets. How and why the techniques can be combined is covered, as are automated test design methods. Tips and exercises are included throughout the book, allowing you to test your knowledge as you progress.
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
This book constitutes the refereed proceedings of the 20th International Conference on Verification, Model Checking, and Abstract Interpretation, VMCAI 2019, held in Cascais, Portugal, in January 2019.The 27 full papers presented together with the abstracts of 3 invited keynote talks were carefully reviewed and selected from 62 submissions. VMCAI provides topics including: program verification, model checking, abstract interpretation, program synthesis, static analysis, type systems, deductive methods, program certification, decision procedures, theorem proving, program certification, debugging techniques, program transformation, optimization, and hybrid and cyber-physical systems.
Despite the advances that have been made in programming, there is still a lack of sufficient methods for quality control. While code standards try to force programmers to follow a specific set of rules, few tools exist that really deal with automatic refactoring of this code, and evaluation of the coverage of these tests is still a challenge. Code Generation, Analysis Tools, and Testing for Quality is an essential reference source that discusses the generation and writing of computer programming and methods of quality control such as analysis and testing. Featuring research on topics such as programming languages, quality assessment, and automated development, this book is ideally designed for academicians, practitioners, computer science teachers, enterprise developers, and researchers seeking coverage on code auditing strategies and methods.
This book focuses on software fault detection and correction processes, presenting 5 different paired models introduced over the last decade and discussing their applications, in particular to determining software release time. The first work incorporates the testing effort function and the fault introduction process into the paired fault detection and fault correction models. The second work incorporates fault dependency, while the third adopts a Markov approach for studying fault detection and correction processes. The fourth work considers the multi-release property of various software, and models fault detection and correction processes. The last work classifies faults into four types and models the fault-detection and correction processes. Enabling readers to familiarize themselves with how software reliability can be modeled when different factors need to be considered, and how the approaches can be used to analyze other systems, the book is important reference guide for researchers in the field of software reliability engineering and practitioners working on software projects. To gain the most from the book, readers should have a firm grasp of the fundamentals of the stochastic process.