Complete Guide to Test Automation
Rely on this robust and thorough guide to build and maintain successful test automation. As the software industry shifts from traditional waterfall paradigms into more agile ones, test automation becomes a highly important tool that allows your development teams to deliver software at an ever-increasing pace without compromising quality.
Even though it may seem trivial to automate the repetitive tester's work, using test automation efficiently and properly is not trivial. Many test automation endeavors end up in the "graveyard" of software projects. There are many things that affect the value of test automation, and also its costs. This book aims to cover all of these aspects in great detail so you can make decisions to create the best test automation solution that will not only help your test automation project to succeed, but also allow the entire software project to thrive.
One of the most important details that affects the success of the test autom ...
CMake is cross-platform, open-source software for managing the build process in a portable fashion. This book features a collection of recipes and building blocks with tips and techniques for working with CMake, CTest, CPack, and CDash.
CMake Cookbook includes real-world examples in the form of recipes that cover different ways to structure, configure, build, and test small- to large-scale code projects. You will learn to use CMake's command-line tools and master modern CMake practices for configuring, building, and testing binaries and libraries. With this book, you will be able to work with external libraries and structure your own projects in a modular and reusable way. You will be well-equipped to generate native build scripts for Linux, MacOS, and Windows, simplify and refactor projects using CMake, and port projects to CMake. ...
Software Architecture with Spring 5.0
Spring 5 and its ecosystem can be used to build robust architectures effectively. Software architecture is the underlying piece that helps us accomplish our business goals whilst supporting the features that a product demands. This book explains in detail how to choose the right architecture and apply best practices during your software development cycle to avoid technical debt and support every business requirement. Choosing the right architecture model to support your business requirements is one of the key decisions you need to take when a new product is being created from scratch or is being refactored to support new business demands. This book gives you insights into the most common architectural models and guides you when and where they can be used. During this journey, you'll see cutting-edge technologies surrounding the Spring products, and understand how to use agile techniques such as DevOps and continuous delivery to take your software to production effe ...
How Open Source Ate Software
Learn how free software became open source and how you can sell open source software. This book provides a historical context of how open source has thoroughly transformed how we write software how we cooperate, how we communicate, how we organize, and, ultimately, how we think about business values.
You'll look at project and community examples including Linux, BSD, Apache, and Kubernetes, understand the open source development model, and how open source has influenced approaches more broadly, even proprietary software such as open betas. You'll also examine the flipside, the "Second Machine Age," and the challenges of open source-based business models.
Today, open source serves as shorthand for much broader trends and behaviors. It's not just about a free (in all senses of the word) alternative to commercial software. It increasingly is the new commercial software. How Open Source Ate Software reveals how open source has much in common, and is often ...
Mastering Python Design Patterns, 2nd Edition
Python is an object-oriented scripting language that is used in a wide range of categories. In software engineering, a design pattern is an elected solution for solving software design problems. Although they have been around for a while, design patterns remain one of the top topics in software engineering, and are a ready source for software developers to solve the problems they face on a regular basis. This book takes you through a variety of design patterns and explains them with real-world examples. You will get to grips with low-level details and concepts that show you how to write Python code, without focusing on common solutions as enabled in Java and C++. You'll also fnd sections on corrections, best practices, system architecture, and its designing aspects. This book will help you learn the core concepts of design patterns and the way they can be used to resolve software design problems. You'll focus on most of the Gang of Four (GoF) design p ...
Hands-On Agile Software Development with JIRA
As teams scale in size, project management can get very complicated. One of the best tools to deal with this kind of problem is JIRA.
This book will start by organizing your project requirements and the principles of Agile development to get you started. You will then be introduced to set up a JIRA account and the JIRA ecosystem to help you implement a dashboard for your team's work and issues. You will learn how to manage any issues and bugs that might emerge in the development stage. Going ahead, the book will help you build reports and use them to plan the releases based on the study of the reports. Towards the end, you will come across working with the gathered data and create a dashboard that helps you track the project's development. ...
Hands-On Concurrency with Rust
Most programming languages can really complicate things, especially with regard to unsafe memory access. The burden on you, the programmer, lies across two domains: understanding the modern machine and your language's pain-points. This book will teach you to how to manage program performance on modern machines and build fast, memory-safe, and concurrent software in Rust. It starts with the fundamentals of Rust and discusses machine architecture concepts. You will be taken through ways to measure and improve the performance of Rust code systematically and how to write collections with confidence. You will learn about the Sync and Send traits applied to threads, and coordinate thread execution with locks, atomic primitives, data-parallelism, and more.
The book will show you how to efficiently embed Rust in C++ code and explore the functionalities of various crates for multithreaded applications. It explores implementations in depth. You will know how a mutex works and build sev ...
Practical Free Alternatives to Commercial Software
Get all the things done you're used to doing with pricey software at a fraction of the cost. There are hundreds of free programs out there that work just as well as the commercial programs people pay hundreds of dollars for. This book tells you how to find and use the most popular and useful of these.
The Open Source movement is a system where programmers can share code and collectively improve programs. As a result they can produce programs that are just as good, if not better than their commercial alternatives. For example, LibreOffice comes with a database, Microsoft Office does not.
This book shows you where to get and how to use the best Open Source programs giving you not only access to high quality software but saving you money as well. Add Practical Free Alternatives to Commercial Software to your library today.
Use the free spreadsheet program Libreoffice-calc to balance your checkbook, do an expense account, and other tasks; Perform presentation ...
Design Patterns in Modern C++
Apply modern C++17 to the implementations of classic design patterns. As well as covering traditional design patterns, this book fleshes out new patterns and approaches that will be useful to C++ developers. The author presents concepts as a fun investigation of how problems can be solved in different ways, along the way using varying degrees of technical sophistication and explaining different sorts of trade-offs.
Design Patterns in Modern C++ also provides a technology demo for modern C++, showcasing how some of its latest features (e.g., coroutines) make difficult problems a lot easier to solve. The examples in this book are all suitable for putting into production, with only a few simplifications made in order to aid readability.
Apply design patterns to modern C++ programming; Use creational patterns of builder, factories, prototype and singleton; Implement structural patterns such as adapter, bridge, decorator, facade and more; Work with the behavioral patterns such as chai ...
VMware Cross-Cloud Architecture
Over the past two decades, VMware vSphere has been known as the most trusted and reliable virtualization platform. VMware Cross-Cloud Architecture shows you how to design and configure Cross Cloud Architecture by using VMware Cloud Foundation and vRealize Suite with various use cases across private, public, and hybrid Cloud. This book takes you through everything from a basic understanding of virtualization to advanced aspects of storage and network virtualization, clustering, automation, and management.
This book will be your guide to designing all aspects of Cloud.
We start with the challenges faced by a traditional data center, define problem statements for you, and then brief you on respective solutions. Moving on, all kinds of virtualization and Cloud offerings from AWS and IBM Soft Layer are introduced and discussed in detail. Then, you'll learn how to design IT infrastructures for new and existing applications with a combination of Cloud Foundation, vRealize Suite, and vSp ...
Domain Modeling Made Functional
Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming—all the techniques you need will be introduced and explained.
Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation—ensuring that the code and design never get out of sync. Encode business rules in the design so that you have “compile-time unit tests,” and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small, testable functions into a complete use case, and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to service-oriented ...