This is my attempt to compose a brief and cursory introduction to concepts in Java programming language. I call it Java Quicky.
I plan to extend and enhance it over time.
This presentation describes key concepts in Java. I call it The Java Quicky.
This is part of a series of presentations to cover the Java programming language and its new offerings and versions in depth.
This PPT has the basic instroduction of the Throwable class. it contains it's contructor and methods with explanations and example. i hope it may help you.
This is my attempt to compose a brief and cursory introduction to concepts in Java programming language. I call it Java Quicky.
I plan to extend and enhance it over time.
This presentation describes key concepts in Java. I call it The Java Quicky.
This is part of a series of presentations to cover the Java programming language and its new offerings and versions in depth.
This PPT has the basic instroduction of the Throwable class. it contains it's contructor and methods with explanations and example. i hope it may help you.
Core java training in Bangalore is one the best Training in Entire bangalore, Where you can learn Java in Shorter time. TIB Academy is the platform where you gain all you confidence back.
Chapter 02: Classes Objects and Methods Java by Tushar B KuteTushar B Kute
The lecture was condcuted by Tushar B Kute at YCMOU, Nashik through VLC orgnanized by MSBTE. The contents can be found in book "Core Java Programming - A Practical Approach' by Laxmi Publications.
Core java training in Bangalore is one the best Training in Entire bangalore, Where you can learn Java in Shorter time. TIB Academy is the platform where you gain all you confidence back.
Chapter 02: Classes Objects and Methods Java by Tushar B KuteTushar B Kute
The lecture was condcuted by Tushar B Kute at YCMOU, Nashik through VLC orgnanized by MSBTE. The contents can be found in book "Core Java Programming - A Practical Approach' by Laxmi Publications.
This presentation describes the some of the major functionality of JUnit4 and TestNG .Each topic contains example so that a viewer can understand the usage and apply them in their code.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
1. COMP23420 Sem 2 week 7
Unit testing and JUnit
John Sargeant
johns@cs.man.ac.uk
REMINDER: PLEASE ENSURE YOUR PHONE IS
SWITCHED OFF DURING LECTURES
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
2. Overview
• Introduction
• Java features for Junit 4
• JUnit 4
• Example unit tests
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
3. Introduction
• Reminder: unit testing is testing one unit (class) at a
time – although most classes depend on other
classes
• Can be black-box (based on the javadoc) or white
box (based on the code).
• In most cases black-box is better.
• JUnit is a Java framework for unit testing
• JUnit 4 is a big improvement on previous versions,
but requires some Java features you may not know.
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
4. Static import
Added in Java 1.5. Reminder: a normal import, e.g.
import java.util.Calendar;
Allows us to refer just to Calendar rather than having to
say java.util.Calendar; every time.
Similarly a static import.e.g.
import static java.util.Calendar;
Allows us to refer to all the static features of the
Calendar class by their short names, e.g.
DAY_OF_WEEK rather than Calendar.DAY_OF_WEEK
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
5. Annotations
• Also added in Java 1.5. Ignored by the compiler, but
intended to be used by other tools.
• E.g. suppose you have a tool which reminds you of
programming tasks you need to do:
@Remind(period=weekly)
public Driver pickOptimumDriver() {
return null; // Not yet implemented
}
Annotation applies to the immediately following class or
method.
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
6. Reflection
• The ability to represent programming language
constructs such as classes and methods within the
language itself.
• “Not a first year topic” – JTL.
• Instances of the class called Class represent classes.
• Can be obtained with .class, e.g. Calendar.class
gives an object representing the Calendar class.
• Can get mind-bending, e.g. Class.class is an
instance of class Class which represents the class
Class.
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
7. Example code to test
public class Sorter {
private int[] _numbers;
public Sorter(int[] numbers) {
_numbers = numbers;
}
public int[] getNumbers() {
return _numbers;
}
public void sort() {
// Not implemented yet
}
}om VictoriathUenive rs ity os fof U M ISeTs te r
C
Th e
b ining s tre ngth
M anch
and
8. Test class (1)
import org.junit.*;
import static org.junit.Assert.*;
public class TestSorter {
private static Sorter _sorter;
private static boolean isSorted(int[] array) { …. }
@Before
public void setUp() {
_sorter = new Sorter(new int[] { 3, 7, 1, 4, 6 })
}
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
9. Test class (2)
@Test
public void testUnsorted() {
assertFalse(isSorted(_sorter.getNumbers()));
}
@Test
public void testSorted() {
_sorter.sort();
assertTrue(isSorted(_sorter.getNumbers()));
}
}
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
10. What happens
The first test succeeds, the second fails, giving an
AssertionError.
Now if we actually implement sorting:
public void sort() {
Arrays.sort(_numbers);
}
Both tests should succeed.
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
11. @Before and @BeforeClass
• Code run before or after a test to set things up to tidy
up afterwards is called a Fixture.
• @Before indicates a fixture to be run before every
test. The setup method which follows must not be
static.
• @BeforeClass indicates a fixture to be run just once.
The setup method must be static.
• @After and @AfterClass are the same for code run
afterwards.
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
12. Running tests
The test class has no main() so how do we run it?
Either from the command line, with the JUnit Jar file on
the CLASSPATH:
java org.junit.runner.JUnitCore TestClass
Or from within an IDE, e.g. in Netbeans, right click on
the Java file, select Tools -> JUnit (make sure you
select JUnit 4).
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
13. Test suites
• Often we want to run a bunch of tests together – a
test suite. This is done with the @RunWith annotation
and the test classes to use listed using reflection:
@Runwith(Suite.class)
@SuiteClasses(DepartureTimesTest.class,
RosterOrderingTest.class,
DriverAllocationTest.class)
public class RosterTest() {
}
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
14. Other things you can do
JUnit 4 allows you to other good things such as:
• Parameterise tests so you can run the same test
many times with different parameters
• Test the exception handling behaviour of your code.
More information at JUnit,org and there are many
tutorials on the web (make sure it’s JUnit 4, not 3).
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
15. Black box vs. White Box
• JUnit test classes are separate from the classes they
are testing, so can only use the public interface
• If you have access to the private stuff, you could
make use of that knowledge..
• E.g. an amount of Money represented as an int –
won’t work for large numbers
• But generally Black Box testing is preferable – also
helps to clarify requirements.
• E.g. testing for large amounts is an obvious thing to
do anyway.
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
16. General testing hints
• Real-world data (e.g. 358 timetable) is messy – check
that you’ve covered all the cases.
• Test small parts before assembling them into bigger
parts – make sure the easy tests get done.
• Make sure known bugs and things not yet
implemented are documented using e.g. Bugzilla.
• When doing system testing, use a variety of real
users – people will use it in ways you don’t expect.
• Don’t assume – check!
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r
17. Weeks 8-11 (Provisional)
• Weeks 8 - 10 Software Architecture design (LZ)
• Week 11 review of second semester (JS/LZ)
• ~ 1 week before the exam: exam revision session
(JS/LZ). Mock online exam will also be available.
C om b ining th e s tre ngth s of U M IS T and
Th e Victoria U nive rs ity o f M anch e s te r