The document discusses identifying bug-introducing changes by analyzing version control histories and fix changes. It presents the SZZ algorithm which uses commit annotations to identify the revision that likely introduced a bug based on the revision that fixed it. The algorithm can identify bug-introducing changes but has limitations as annotations may be insufficient and not all modifications are fixes, leading to false positives and negatives.
I gave a talk in coscup 2011. My topic is about using openframeworks in mobile application. :)
You can download the demo code from github. https://github.com/janetyc/CosBird
I gave a talk in coscup 2011. My topic is about using openframeworks in mobile application. :)
You can download the demo code from github. https://github.com/janetyc/CosBird
I am the 100% [*] by Chris Evans & Natalie SilvanovichShakacon
Ā
For a certain class of attacker, the reliability of an exploit is very important. In this talk, we will consider what types of memory corruption vulnerabilities lead to the ability to construct very reliable exploits. We will show two examples of perfectly[*] reliable exploits, and their construction and limitations. We will also discuss the factors that impact the ability to write a reliable exploit.
A preview of the MSR 2013 conference, May 18-19, 2013, in San Francisco, CA. REGISTER NOW! Early registration discounts until April 14. http://msrconf.org
Empirical Software Engineering at Microsoft ResearchThomas Zimmermann
Ā
An invited talk that I gave in Tokyo. Very special thanks to Shuji Morisaki who was my translator during the session. Many thanks to Chris Bird, Nachi Nagappan, Rahul Premraj, and Sascha Just who provided slides for this talk.
I am the 100% [*] by Chris Evans & Natalie SilvanovichShakacon
Ā
For a certain class of attacker, the reliability of an exploit is very important. In this talk, we will consider what types of memory corruption vulnerabilities lead to the ability to construct very reliable exploits. We will show two examples of perfectly[*] reliable exploits, and their construction and limitations. We will also discuss the factors that impact the ability to write a reliable exploit.
A preview of the MSR 2013 conference, May 18-19, 2013, in San Francisco, CA. REGISTER NOW! Early registration discounts until April 14. http://msrconf.org
Empirical Software Engineering at Microsoft ResearchThomas Zimmermann
Ā
An invited talk that I gave in Tokyo. Very special thanks to Shuji Morisaki who was my translator during the session. Many thanks to Chris Bird, Nachi Nagappan, Rahul Premraj, and Sascha Just who provided slides for this talk.
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.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Ā
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navyās DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATOās (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
Ā
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
Ā
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
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
Enhancing Performance with Globus and the Science DMZGlobus
Ā
ESnet has led the way in helping national facilitiesāand many other institutions in the research communityāconfigure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
Ā
In this second installment of our Essentials of Automations webinar series, weāll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
Weāll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether youāre tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Letās turn complexity into clarity and make your workspaces work wonders!
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
Ā
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Ā
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Ā
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
Ā
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. Whatās changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Ā
Automatic Identification of Bug-Introducing Changes
1. Automatic Identiļ¬cation of
Bug-Introducing Changes
Sunghun Kim
Kai Pan
E. James Whitehead, Jr.
University of California, Santa Cruz, USA
Tom Zimmermann
Saarland University, SaarbrĆ¼cken, Germany
8. So far: Focus on ļ¬xes
teicher 2003-10-29 16:11:01
ļ¬xes issues mentioned in bug 45635: [hovering] rollover hovers
- mouse exit detection is safer and should not allow for
loopholes any more, except for shell deactiviation
- hovers behave like normal ones:
- tooltips pop up below the control
- they move with subjectArea
- once a popup is showing, they will show up instantly
9. So far: Focus on ļ¬xes
teicher 2003-10-29 16:11:01
ļ¬xes issues mentioned in bug 45635: [hovering] rollover hovers
- mouse exit detection is safer and should not allow for
loopholes any more, except for shell deactiviation
- hovers behave like normal ones:
- tooltips pop up below the control
- they move with subjectArea
- once a popup is showing, they will show up instantly
Fixes give only the location of a defect,
not when it was introduced.
12. Bug-introducing changes
BUG-INTRODUCING FIX
... ...
later ļ¬xed
if (foo==null) { if (foo!=null) {
foo.bar(); foo.bar();
... ...
Bug-introducing changes are changes that
lead to problems as indicated by later ļ¬xes.
15. Life-cycle of a ābugā
BUG REPORT
ļ¬xes issues mentioned in bug 45635: [hovering] rollover hovers
- mouse exit detection is safer and should not allow for
loopholes any more, except for shell deactiviation
- hovers behave like normal ones:
- tooltips pop up below the control
- they move with subjectArea
- once a popup is showing, they will show up instantly
BUG-INTRODUCING
CHANGE
16. Life-cycle of a ābugā
BUG REPORT
ļ¬xes issues mentioned in bug 45635: [hovering] rollover hovers
- mouse exit detection is safer and should not allow for
loopholes any more, except for shell deactiviation
- hovers behave like normal ones:
- tooltips pop up below the control
- they move with subjectArea
- once a popup is showing, they will show up instantly
BUG-INTRODUCING FIX
CHANGE CHANGE
25. The SZZ algorithm
submitted closed
BUG REPORT
ļ¬xes issues mentioned in bug 45635: [hovering] rollover hovers
- mouse exit detection is safer and should not allow for
loopholes any more, except for shell deactiviation
- hovers behave like normal ones:
- tooltips pop up below the control
- they move with subjectArea
- once a popup is showing, they will show up instantly
1.11 1.14 1.16 1.18
BUG BUG BUG FIXED BUG
INTRO INTRO INTRO 42233
26. The SZZ algorithm
submitted closed
BUG REPORT
ļ¬xes issues mentioned in bug 45635: [hovering] rollover hovers
- mouse exit detection is safer and should not allow for
loopholes any more, except for shell deactiviation
- hovers behave like normal ones:
- tooltips pop up below the control
- they move with subjectArea
- once a popup is showing, they will show up instantly
1.11 1.14 1.16 1.18
BUGREMOVE
BUG BUG FIXED BUG
INTRO INTRO POSITIVES
INTRO 42233
FALSE
27. Drawbacks of SZZ
Annotation by SCMs is insufļ¬cient.
(line number in bug-introducing revision is missing)
28. Drawbacks of SZZ
Annotation by SCMs is insufļ¬cient.
(line number in bug-introducing revision is missing)
Not all modiļ¬cations are ļ¬xes.
(blank lines, comments, etc.)
31. An example
BUG-INTRODUCING BUG FIX
void bar() { void foo() { void foo() {
if (val==null) { // print val // print value
println(val); if (val==null) if (val!=null)
} { {
... println(val); println(val);
} }
... ...
Revision 7: tom Revision 23: jim Revision 42: kim
- introduces the defects - inserts a comment - changes comment
- reformats if statement - corrects defect
32. An example
BUG-INTRODUCING BUG FIX
void bar() { void foo() { void foo() {
if (val==null) { // print val // print valueval
println(val); if (val==null) if (val!=null)
} { {
... println(val); println(val);
} }
... ...
Revision 7: tom Revision 23: jim Revision 42: kim
- introduces the defects - inserts a comment - changes comment
- reformats if statement - corrects defect
33. An example
BUG-INTRODUCING BUG FIX
void bar() { void foo() { void foo() {
if (val==null) { // print val // print valueval
println(val); if (val==null) if (val!=null)
} { {
... println(val); println(val);
} }
... ...
Revision 7: tom Revision 23: jim Revision 42: kim
- introduces the defects - inserts a comment - changes comment
- reformats if statement - corrects defect
34. An example
BUG-INTRODUCING BUG FIX
void bar() { void foo() { void foo() {
if (val==null) { // print val // print valueval
println(val); if (val==null) if (val!=null)
} { {
... println(val); println(val);
} }
... ...
Revision 7: tom Revision 23: jim Revision 42: kim
- introduces the defects - inserts a comment - changes comment
- reformats if statement - corrects defect
The originial SZZ algorithm has too many false
positives (rev 23) and false negatives (rev 7).
35. Our study
COLUMBA ECLIPSE (jdt.core)
Project
Software type Email client IDE
Investigated period 11/2002-06/2003 06/2001-03/2002
Number of revisions 500 1000
Number of ļ¬xes 143 (29%) 158 (16%)
Average LOC 48,135 111,059
41. Annotation graphs
bar()
bar() renamed
to foo()
foo()
ļ¬xed
revisions
SZZ reports a bug-introducing change for foo
(false positive) but not for bar (false negative).
42. Annotation graphs
bar()
bar() renamed
to foo()
foo()
ļ¬xed
revisions
Using annotation graphs we can remove 2% as
false positives and identiļ¬es further 1%~4%.
43. Comments & blank lines
public void notifySourceElementRequestor() {
-
+ if (reportReferenceInfo) {
+ notifyAllUnknownReferences();
+}
// collect the top level ast nodes
int length = 0;
44. Comments & blank lines
public void notifySourceElementRequestor() {
-
+ if (reportReferenceInfo) {
+ notifyAllUnknownReferences();
+}
// collect the top level ast nodes
int length = 0;
Ignoring comments and blank lines
removes 14%~20% as false positives.
48. Format changes
BUG-INTRODUCING BUG FIX
if ( a==true ) return; if (a==true) if (a==false)
return; return;
FALSE FALSE
NEGATIVE POSITIVE
49. Format changes
BUG-INTRODUCING BUG FIX
if ( a==true ) return; if (a==true) if (a==false)
return; return;
FALSE FALSE
NEGATIVE POSITIVE
Ignoring format changes removes 18%~25% as
false positives and identiļ¬es further 13%~14%.
50. Fixes that affect many ļ¬les
Most large ļ¬xes are refactoring
- public boolean visit(TypeDeclaration
- typeDeclaration, BlockScope scope){
+ public boolean visit(LocalTypeDeclaration
+ typeDeclaration, BlockScope scope){
51. Fixes that affect many ļ¬les
Most large ļ¬xes are refactoring
- public boolean visit(TypeDeclaration
- typeDeclaration, BlockScope scope){
+ public boolean visit(LocalTypeDeclaration
+ typeDeclaration, BlockScope scope){
Ignoring ļ¬xes that affect many ļ¬les
(=more than ļ¬ve times the median)
removes 7%~16% as false positives
52.
53. Manual inspection of ļ¬xes
Two judges check whether a ļ¬x is actually a ļ¬x.
deleteResources(actualNonJavaResources,fForce);
- IResource[] remaingFiles;
+ IResource[] remainingFiles;Ā
try {
- remaingFiles=((IFolder)res).members();
+ remainingFiles=((IFolder)res).members();
}
54. Manual inspection of ļ¬xes
Two judges check whether a ļ¬x is actually a ļ¬x.
deleteResources(actualNonJavaResources,fForce);
- IResource[] remaingFiles;
+ IResource[] remainingFiles;Ā
try {
- remaingFiles=((IFolder)res).members();
+ remainingFiles=((IFolder)res).members();
}
Manual inspection of ļ¬xes removes
only 4%~5% as false positives.
57. Putting it together
False negatives
of SZZ: 14%
False positives
of SZZ: 38%~51%
ASE
SZZ
BUGS
58. Putting it together
False negatives
of SZZ: 14%
False positives
of SZZ: 38%~51%
ASE
SZZ
Automatically we can
remove 36%~48% as
BUGS
false positive.
70. Conclusions
ā¢ Bug-introducing changes tell when a defect
was introduced, not only its location.
ā¢ We can automatically identify
ā 36%~48% of SZZ as false positives and
ā further 14% of missed bug-introductions.
71. Conclusions
ā¢ Bug-introducing changes tell when a defect
was introduced, not only its location.
ā¢ We can automatically identify
ā 36%~48% of SZZ as false positives and
ā further 14% of missed bug-introductions.
ā¢ Bug-introducing changes are useful for
defect prediction and software evolution.
72. More
minin
g @A
Frida SE:
y mo
Conclusions rning
.
ā¢ Bug-introducing changes tell when a defect
was introduced, not only its location.
ā¢ We can automatically identify
ā 36%~48% of SZZ as false positives and
ā further 14% of missed bug-introductions.
ā¢ Bug-introducing changes are useful for
defect prediction and software evolution.