Testing iOS Apps with HadoopUnit

Testing iOS Apps with HadoopUnit
Author: Scott Tilley
Publisher: Springer Nature
Total Pages: 83
Release: 2022-05-31
Genre: Technology & Engineering
ISBN: 3031025482

Smartphone users have come to expect high-quality apps. This has increased the importance of software testing in mobile software development. Unfortunately, testing apps—particularly the GUI—can be very time-consuming. Exercising every user interface element and verifying transitions between different views of the app under test quickly becomes problematic. For example, execution of iOS GUI test suites using Apple’s UI Automation framework can take an hour or more if the app’s interface is complicated. The longer it takes to run a test, the less frequently the test can be run, which in turn reduces software quality. This book describes how to accelerate the testing process for iOS apps using HadoopUnit, a distributed test execution environment that leverages the parallelism inherent in the Hadoop platform. HadoopUnit was previously used to run unit and system tests in the cloud. It has been modified to perform GUI testing of iOS apps on a small-scale cluster—a modest computing infrastructure available to almost every developer. Experimental results have shown that distributed test execution with HadoopUnit can significantly outperform the test execution on a single machine, even if the size of the cluster used for the execution is as small as two nodes. This means that the approach described in this book could be adopted without a huge investment in IT resources. HadoopUnit is a cost-effective solution for reducing lengthy test execution times of system-level GUI testing of iOS apps.

Symbolic Execution and Quantitative Reasoning

Symbolic Execution and Quantitative Reasoning
Author: Corina S. Păsăreanu
Publisher: Springer Nature
Total Pages: 65
Release: 2022-05-31
Genre: Technology & Engineering
ISBN: 3031025512

This book reviews recent advances in symbolic execution and its probabilistic variant and discusses how they can be used to ensure the safety and security of software systems. Symbolic execution is a systematic program analysis technique which explores multiple program behaviors all at once by collecting and solving symbolic constraints collected from the branching conditions in the program. The obtained solutions can be used as test inputs that execute feasible program paths. Symbolic execution has found many applications in various domains, such as security, smartphone applications, operating systems, databases, and more recently deep neural networks, uncovering subtle errors and unknown vulnerabilities. We review here the technique has also been extended to reason about algorithmic complexity and resource consumption. Furthermore, symbolic execution has been recently extended with probabilistic reasoning, allowing one to reason about quantitative properties of software systems. The approach computes the conditions to reach target program events of interest and uses model counting to quantify the fraction of the input domain satisfying these conditions thus computing the probability of event occurrence. This probabilistic information can be used for example to compute the reliability of an aircraft controller under different wind conditions (modeled probabilistically) or to quantify the leakage of sensitive data in a software system, using information theory metrics such as Shannon entropy. This book is intended for students and software engineers who are interested in advanced techniques for testing and verifying software systems.

Java Software Development with Event B

Java Software Development with Event B
Author: Néstor Cataño Collazos
Publisher: Springer Nature
Total Pages: 89
Release: 2022-05-31
Genre: Technology & Engineering
ISBN: 3031025504

The cost of fixing software design flaws after the completion of a software product is so high that it is vital to come up with ways to detect software design flaws in the early stages of software development, for instance, during the software requirements, the analysis activity, or during software design, before coding starts. It is not uncommon that software requirements are ambiguous or contradict each other. Ambiguity is exacerbated by the fact that software requirements are typically written in a natural language, which is not tied to any formal semantics. A palliative to the ambiguity of software requirements is to restrict their syntax to boilerplates, textual templates with placeholders. However, as informal requirements do not enjoy any particular semantics, no essential properties about them (or about the system they attempt to describe) can be proven easily. Formal methods are an alternative to address this problem. They offer a range of mathematical techniques and mathematical tools to validate software requirements in the early stages of software development. This book is a living proof of the use of formal methods to develop software. The particular formalisms that we use are EVENT B and refinement calculus. In short: (i) software requirements as written as User Stories; (ii) they are ported to formal specifications; (iii) they are refined as desired; (iv) they are implemented in the form of a prototype; and finally (v) they are tested for inconsistencies. If some unit-test fails, then informal as well as formal specifications of the software system are revisited and evolved. This book presents a case study of software development of a chat system with EVENT B and a case study of formal proof of properties of a social network.

Model-Driven Software Engineering in Practice, Second Edition

Model-Driven Software Engineering in Practice, Second Edition
Author: Marco Brambilla
Publisher: Springer Nature
Total Pages: 191
Release: 2022-05-31
Genre: Technology & Engineering
ISBN: 3031025490

This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE). MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis. The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away. The book is organized into two main parts. The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios, and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects. The second edition of the book features: a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture complete revision of examples, figures, and text, for improving readability, understandability, and coherence better formulation of definitions, dependencies between concepts and ideas addition of a complete index of book content In addition to the contents of the book, more resources are provided on the book's website http://www.mdse-book.com, including the examples presented in the book.

Model-Driven Software Engineering in Practice

Model-Driven Software Engineering in Practice
Author: Marco Brambilla
Publisher: Morgan & Claypool Publishers
Total Pages: 209
Release: 2017-03-30
Genre: Computers
ISBN: 1627059881

This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE). MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis. The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away. The book is organized into two main parts. The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios, and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects. The second edition of the book features: a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture complete revision of examples, figures, and text, for improving readability, understandability, and coherence better formulation of definitions, dependencies between concepts and ideas addition of a complete index of book content In addition to the contents of the book, more resources are provided on the book's website http://www.mdse-book.com, including the examples presented in the book.

Systems Analysis and Design

Systems Analysis and Design
Author: Gary B. Shelly
Publisher:
Total Pages: 731
Release: 2011
Genre: System analysis
ISBN: 9780538479882

Systems Analysis and Design,Video Enganced International Edition offers a practical, visually appealing approach to information systems development.

Explore It!

Explore It!
Author: Elisabeth Hendrickson
Publisher: Pragmatic Bookshelf
Total Pages: 245
Release: 2013-02-21
Genre: Computers
ISBN: 1680503502

Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts. Software is full of surprises. No matter how careful or skilled you are, when you create software it can behave differently than you intended. Exploratory testing mitigates those risks. Part 1 introduces the core, essential skills of a master explorer. You'll learn to craft charters to guide your exploration, to observe what's really happening (hint: it's harder than it sounds), to identify interesting variations, and to determine what expected behavior should be when exercising software in unexpected ways. Part 2 builds on that foundation. You'll learn how to explore by varying interactions, sequences, data, timing, and configurations. Along the way you'll see how to incorporate analysis techniques like state modeling, data modeling, and defining context diagrams into your explorer's arsenal. Part 3 brings the techniques back into the context of a software project. You'll apply the skills and techniques in a variety of contexts and integrate exploration into the development cycle from the very beginning. You can apply the techniques in this book to any kind of software. Whether you work on embedded systems, Web applications, desktop applications, APIs, or something else, you'll find this book contains a wealth of concrete and practical advice about exploring your software to discover its capabilities, limitations, and risks.

Distributed GUI Testing of IOS Applications with HadoopUnit

Distributed GUI Testing of IOS Applications with HadoopUnit
Author: Krissada Dechokul
Publisher:
Total Pages: 196
Release: 2014
Genre:
ISBN:

Smartphones have become an important medium of communication for millions of people. They have come to expect high-quality mobile applications, which have increased the importance of software testing in modern software development. While software testing can ensure the quality of a system under test (SUT), it has suffered from lengthy execution time, especially for system-level GUI testing. In general, system-level GUI testing can be time-consuming because it requires walking through every user interface element and every possible variation that users could experience through the GUI of the application. In addition, this type of testing exercises the SUT from the outside of the applications, meaning that it has to constantly wait for the drawing of UI components, delays in transitions between different views and animations throughout the test execution. Currently with UI Automation, a popular testing framework from Apple for iOS applications, test execution of iOS GUl test suites can take an hour or more to execute if the GUI of the application is complicated. This amount of time is significant if the testing needs to be performed frequently throughout the software development life cycle. More time means less frequent testing, which in tum reduces software quality. In this thesis, the test process is accelerated by migrating the current test execution environment to a distributed execution environment called HadoopUnit. HadoopUnit has been adopted to perform GUI testing of iOS applications on a small-scale Hadoop cluster. Experimental results have shown that distributed test execution with HadoopUnit can significantly outperform the test execution on a single machine, even if the size of the cluster used for the execution is as small as two nodes. This means that the work of this thesis could be adopted without a huge investment in IT resources, making HadoopUnit a cost-effective solution for reducing lengthy test execution time of system-level GUI testing.

Advanced Accountancy Volume-I, 11th Edition

Advanced Accountancy Volume-I, 11th Edition
Author: Maheshwari S.N. & Maheshwari S.K.
Publisher: Vikas Publishing House
Total Pages: 1357
Release:
Genre: Business & Economics
ISBN: 9325980673

Over the years Advanced Accountancy has emerged as the definitive and comprehensive textbook on accountancy as it completely meets the requirements of students preparing for BCom, MCom, MBA, BBA and professional examinations conducted by different institutions, such as the Institute of Chartered Accountants of India, the Indian Institute of Bankers, the Institute of Company Secretaries of India, and the Institute of Cost Accountants of India. New in this Edition • Basic features of the 32 Accounting Standards of India issued by the Institute of Chartered Accountants of India and 40 Indian Accounting Standards (Ind AS) notified by the Ministry of Corporate Affairs. • Updation and convergence of Indian accounting standards with international financial reporting standards. • Strengthening and updating of the text material in the light of new accounting standards. • Latest questions and problems from examinations conducted by different professional bodies and universities.

A Textbook of Cost and Management Accounting, 11th Edition

A Textbook of Cost and Management Accounting, 11th Edition
Author: Arora M.N.
Publisher: Vikas Publishing House
Total Pages:
Release:
Genre:
ISBN: 9390470501

A Textbook of Cost and Management Accounting provides the students with thorough grounding in cost concepts, cost behaviour and methods, and techniques of cost and management accounting with an understanding of the uses and limitations of cost and financial data for managerial operations. The text of the subject matter has been presented in a student-friendly, simple and intelligible manner. Every discussion involving conceptual complexity is immediately illustrated by a numerical example. In addition, the book contains a liberal sprinkling of charts and diagrams so as to make the subject easily understandable and highlight its finer points. The subject matter has been organized on 'first things first' basis for its logical presentation that sustains interest. The approach of the book is examination oriented. Thus, a good number of problems and solutions have been included in its chapters. Theoretical and numerical questions have been mostly selected from various examinations. Objective type questions have been given to serve as self-test by students. This is an ideal book for self-study. An all-inclusive, ideal book for self-study, both for the students of Cost and Management Accounting as well as working professionals.