The document discusses various whitebox testing techniques including statement coverage, branch coverage, condition coverage, path coverage, and data flow-based testing. Statement coverage requires designing test cases such that every statement in a program is executed at least once. Branch coverage requires test cases where different branch conditions are given true and false values. Path coverage requires test cases such that all linearly independent paths in a program are executed based on the program's control flow graph. Data flow-based testing focuses on connections between variable definitions and uses.
In this section of the course, we look at the way to use probability to analyze algorithms from the point of view of the worst case analysis.
In order to do this, we will look at:
1. What is the Probability of an Indicator function?
2. How to use the Indicator function to analyze a simple hiring algorithms.
3. How we can enforce the uniform probability property so algorithms based in probability can be simple and efficient.
Mapreduce examples starting from the basic WordCount to a more complex K-means algorithm. The code contained in these slides is available at https://github.com/andreaiacono/MapReduce
Seminar overview of the third article produced by Google DeepMind. This one again contains conceptual novelties: adding external memory to machine learning pipeline (using an Artificial Neural Network as a Controller, which decides how to use this memory). System is differentiable, meaning that you can give it inputs, show the outputs it should produce, define an error-function (cross-entropy in this case) and then train the whole thing using gradient descent. The amazing outcome is that the system learns not the statistical relations between the input and the output as your usual ML, but attempts to learn an algorithm, which allows it to generalize well and perform correctly on problem instances which are bigger or different from what is has been trained on.
In this section of the course, we look at the way to use probability to analyze algorithms from the point of view of the worst case analysis.
In order to do this, we will look at:
1. What is the Probability of an Indicator function?
2. How to use the Indicator function to analyze a simple hiring algorithms.
3. How we can enforce the uniform probability property so algorithms based in probability can be simple and efficient.
Mapreduce examples starting from the basic WordCount to a more complex K-means algorithm. The code contained in these slides is available at https://github.com/andreaiacono/MapReduce
Seminar overview of the third article produced by Google DeepMind. This one again contains conceptual novelties: adding external memory to machine learning pipeline (using an Artificial Neural Network as a Controller, which decides how to use this memory). System is differentiable, meaning that you can give it inputs, show the outputs it should produce, define an error-function (cross-entropy in this case) and then train the whole thing using gradient descent. The amazing outcome is that the system learns not the statistical relations between the input and the output as your usual ML, but attempts to learn an algorithm, which allows it to generalize well and perform correctly on problem instances which are bigger or different from what is has been trained on.
Selection of the optimal parameters for machine learning tasks is challenging. Some results may be bad not because the data is noisy or the used learning algorithm is weak, but due to the bad selection of the parameters values. This presentation gives a brief introduction about evolutionary algorithms (EAs) and describes genetic algorithm (GA) which is one of the simplest random-based EAs. A step-by-step example is given in addition to its implementation in Python 3.5.
---------------------------------
Read more about GA:
Yu, Xinjie, and Mitsuo Gen. Introduction to evolutionary algorithms. Springer Science & Business Media, 2010.
https://www.kdnuggets.com/2018/03/introduction-optimization-with-genetic-algorithm.html
https://www.linkedin.com/pulse/introduction-optimization-genetic-algorithm-ahmed-gad
This presentation contains:
1. Introduction
2. Central areas of TOC
3. Complexity theory
4. Computability theory
5. Automata theory
6. Related terminologies
7. Strings
8. Languages
9. Proof, Theorem, Lemma, Corollaries
Knapsack problem ==>>
Given some items, pack the knapsack to get
the maximum total value. Each item has some
weight and some value. Total weight that we can
carry is no more than some fixed number W.
So we must consider weights of items as well as
their values.
Selection of the optimal parameters for machine learning tasks is challenging. Some results may be bad not because the data is noisy or the used learning algorithm is weak, but due to the bad selection of the parameters values. This presentation gives a brief introduction about evolutionary algorithms (EAs) and describes genetic algorithm (GA) which is one of the simplest random-based EAs. A step-by-step example is given in addition to its implementation in Python 3.5.
---------------------------------
Read more about GA:
Yu, Xinjie, and Mitsuo Gen. Introduction to evolutionary algorithms. Springer Science & Business Media, 2010.
https://www.kdnuggets.com/2018/03/introduction-optimization-with-genetic-algorithm.html
https://www.linkedin.com/pulse/introduction-optimization-genetic-algorithm-ahmed-gad
This presentation contains:
1. Introduction
2. Central areas of TOC
3. Complexity theory
4. Computability theory
5. Automata theory
6. Related terminologies
7. Strings
8. Languages
9. Proof, Theorem, Lemma, Corollaries
Knapsack problem ==>>
Given some items, pack the knapsack to get
the maximum total value. Each item has some
weight and some value. Total weight that we can
carry is no more than some fixed number W.
So we must consider weights of items as well as
their values.
Metodologia PBL și ghidul de aplicare în Învățământul Profesional și Tehnic - VET PBL METHODOLOGY & E-GUIDE
Prezentare realizată de Partenerul Italian: Centro Studi Villa Montesca, Italia, tradusă/adaptată de Partenerul Român: Colegiul Tehnic “Matei Basarab”, Caracal, România, în cadrul Proiectului European
Yourvid YESdigital / 2012-1ES1-LEO05-49498
http://youyesdigital.eu/
(VET – Vocational Education and Training)
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
3. Terminology
• Error
– Represents mistakes made by people
• Fault
– Is result of error. May be categorized as
• Fault of Commission – we enter something into
representation that is incorrect
• Fault of Omission – Designer can make error of
omission, the resulting fault is that something is
missing that should have been present in the
representation
4. Cont…
• Failure
– Occurs when fault executes.
• Incident
– Behavior of fault. An incident is the
symptom(s) associated with a failure that
alerts user to the occurrence of a failure
• Test case
– Associated with program behavior. It carries
set of input and list of expected output
5. Cont…
• Verification
– Process of determining whether output of one
phase of development conforms to its
previous phase.
• Validation
– Process of determining whether a fully
developed system conforms to its SRS
document
6. Verification versus Validation
• Verification is concerned with phase
containment of errors
• Validation is concerned about the final
product to be error free
7. Relationship – program
behaviors
Program Behaviors
Specified
(expected)
Behavior
Programmed
(observed)
Fault Behavior
Of
Omission
Fault
Of
Commission
Correct portion
8. Classification of Test
• There are two levels of classification
– One distinguishes at granularity level
• Unit level
• System level
• Integration level
– Other classification (mostly for unit level) is
based on methodologies
• Black box (Functional) Testing
• White box (Structural) Testing
13. When to use what
• Few set of guidelines available
• A logical approach could be
– Prepare functional test cases as part of
specification. However they could be used
only after unit and/or system is available.
– Preparation of Structural test cases could be
part of implementation/code phase.
– Unit, Integration and System testing are
performed in order.
14. Unit testing – essence
• Applicable to modular design
– Unit testing inspects individual modules
• Locate error in smaller region
– In an integrated system, it may not be easier
to determine which module has caused fault
– Reduces debugging efforts
15. Test cases and Test suites
• Test case is a triplet [I, S, O] where
– I is input data
– S is state of system at which data will be input
– O is the expected output
• Test suite is set of all test cases
• Test cases are not randomly selected.
Instead even they need to be designed.
16. Need for designing test cases
• Almost every non-trivial system has an
extremely large input data domain thereby
making exhaustive testing impractical
• If randomly selected then test case may
loose significance since it may expose an
already detected error by some other test
case
17. Design of test cases
• Number of test cases do not determine the
effectiveness
• To detect error in following code
if(x>y) max = x; else max = x;
• {(x=3, y=2); (x=2, y=3)} will suffice
• {(x=3, y=2); (x=4, y=3); (x=5, y = 1)}
• Each test case should detect different errors
19. Statement Coverage
• Statement coverage methodology:
– design test cases so that every statement in a
program is executed at least once.
• The principal idea:
– unless a statement is executed, we have no
way of knowing if an error exists in that
statement
20. Statement coverage criterion
• Observing that a statement behaves
properly for one input value:
– no guarantee that it will behave correctly for
all input values.
21. Example
• int f1(int x, int y){
1. while (x != y){
2. if (x>y) then
3. x=x-y;
4. else y=y-x;
5. }
6. return x; }
22. Euclid's GCD computation
algorithm
• By choosing the test set
{(x=3,y=3),(x=4,y=3), (x=3,y=4)}
– all statements are executed at least once.
23. Branch Coverage
• Test cases are designed such that:
– different branch conditions is given true and
false values in turn.
• Branch testing guarantees statement
coverage:
– a stronger testing compared to the statement
coverage-based testing.
24. Example
• Test cases for branch coverage can be:
{(x=3,y=3), (x=4,y=3), (x=3,y=4)}
25. Condition Coverage
• Test cases are designed such that:
– each component of a composite conditional
expression given both true and false values.
• Example
– Consider the conditional expression
((c1.and.c2).or.c3):
– Each of c1, c2, and c3 are exercised at least
once i.e. given true and false values.
26. Branch testing
• Branch testing is the simplest condition
testing strategy
• compound conditions appearing in
different branch statements are given true
and false values. (note: the entire
condition is given true and false values,
not ALL possible sub expressions)
28. Condition coverage
• Consider a Boolean expression having n
components:
– for condition coverage we require 2n test
cases.
• practical only if n (the number of
component conditions) is small.
29. Path Coverage
• Design test cases such that:
– all linearly independent paths in the program
are executed at least once.
• Defined in terms of
– control flow graph (CFG) of a program.
30. Control flow graph (CFG)
• A control flow graph (CFG) describes:
– the sequence in which different instructions of
a program get executed.
– the way control flows through the program.
31. How to draw Control flow
graph?
• Number all the statements of a program.
• Numbered statements:
– represent nodes of the control flow graph.
• An edge from one node to another node
exists:
– if execution of the statement representing the
first node can result in transfer of control to
the other node.
32. Example
int f1(int x,int y){
1. while (x != y){
2. if (x>y) then
3. x=x-y;
4. else y=y-x;
5. }
6. return x; }
34. Path
• A path through a program:
– A node and edge sequence from the starting
node to a terminal node of the control flow
graph.
– There may be several terminal nodes for
program.
35. Independent path
• Any path through the program:
– introducing at least one new node or one new
edge that is not included in any other
independent paths.
• It may be straight forward to identify
linearly independent paths of simple
programs. However For complicated
programs it is not so easy to determine the
number of independent paths.
36. McCabe's cyclomatic metric
• An upper bound:
– for the number of linearly independent paths
of a program
• Provides a practical way of determining:
– the maximum number of linearly independent
paths in a program.
37. McCabe's cyclomatic metric
• Given a control flow graph G,
cyclomatic complexity V(G):
– V(G)= E-N+2
• N is the number of nodes in G
• E is the number of edges in G
39. Cyclomatic complexity
• The cyclomatic complexity of a program
provides:
– a lower bound on the number of test cases to
be designed to get coverage of all linearly
independent paths.
– only gives an indication of the minimum
number of test cases required.
40. Path Testing - Test Cases
• Draw control flow graph. (Loops can
cause an explosion in the number of
independent paths, so use looping values
of 0 and 1 to test loops).
• Determine V(G).
• Determine the set of linearly independent
paths.
• Prepare test cases:
– to force execution along each path
42. Derivation of Test Cases
• Number of independent paths: 4
– 1, 6 test case (x=1, y=1)
– 1, 2, 3, 5, 1, 6 test case(x=1, y=2)
– 1, 2, 4, 5, 1, 6 test case(x=2, y=1)
43. An interesting application of
cyclomatic complexity
• Relationship exists between:
– McCabe's metric
– the number of errors existing in the code,
– the time required to find and correct the
errors.
44. Cyclomatic complexity
• Cyclomatic complexity of a program:
– also indicates the psychological complexity of
a program.
– difficulty level of understanding the program.
45. Cyclomatic complexity
• From maintenance perspective,
– limit cyclomatic complexity
• of modules to some reasonable value.
– Some software development organizations:
• restrict cyclomatic complexity of functions to some
max number.
46. Data-flow-based Testing
• Basic idea: test the connections between
variable definitions (“write”) and variable uses
(“read”)
• Starting point: variation of the control flow graph
– Each node represents a single statement, not a chain
of statements
• Set DEF(n) contains variables that are defined at
node n (i.e., they are written)
• Set USE(n): variables that are read
48. Reaching Definitions
A definition of variable x at node n1
reaches node n2 if and only if there is
a path between n1 and n2 that does
not contain a definition of x
1 2 3
DEF(1) := {s}, USE(1) :=
DEF(2) := {x}, USE(2) :=
DEF(3) := , USE(3) := {x,y}
DEF(4) := {x}, USE(4) := {x}
DEF(5) := {y}, USE(5) := {y}
DEF(6) := , USE(6) := {x,y}
DEF(7) := {s}, USE(7) := {s,x,y}
DEF(8) := {s}, USE(8) := {s,x,y}
4
5
6
7 8
9
10
Reaches
nodes
2,3,4,5,6,7,8,
but not 9 and
10.
49. Def-use Pairs
• A def-use pair (DU) for variable x is a pair of
nodes (n1,n2) such that
– x is in DEF(n1)
– The definition of x at n1 reaches n2
– x is in USE(n2)
• In other words, the value that is assigned to x at
n1 is used at n2
– Since the definition reaches n2, the value is not killed
along some path n1...n2.
51. Data-flow-based Testing
• Identify all DU pairs and construct test cases
that cover these pairs
– Several variations with different “relative strength”
• All-DU-paths: For each DU pair (n1,n2) for x,
exercise all possible paths n1, n2 that are clear
of a definition of x
• All-uses: for each DU pair (n1,n2) for x,
exercise at least one path n1 n2 that is clear of
definitions of x
52. Data-flow-based Testing
• All-definitions: for each definition, cover at
least one DU pair for that definition
– i.e., if x is defined at n1, execute at least one path
n1..n2 such that x is in USE(n2) and the path is clear
of definitions of x
• Clearly, all-definitions is subsumed by all-uses
which is subsumed by all-DU-paths
• Motivation: see the effects of using the values
produced by computations
– Focuses on the data, while control-flow-based
testing focuses on the control