Download presentation
Presentation is loading. Please wait.
Published byLindsey Octavia Cunningham Modified over 7 years ago
1
False Positives & Managing G11n in Sync with Development
Processes and technology have changed. Must be executed by people Human processes have concerns, efficiencies and if course conflicting situations From Lingoport: Adam Asnes Michael Asnes May 10, 2016
2
Agenda False positives background Static Analysis vs. Testing
Intro to Lingoport & Products Continuous Globalization Handling False Positives Demo Code scanning, filtering and false positives management What’s learned Q&A, Follow-up Resources
3
False Positives Test result which incorrectly indicates that a particular condition or attribute is present Distracts from real issues Can overwhelm results and usefulness Source of friction when measuring a process for improvements #1 Objection!!! Coverity VS. False Negative
4
Why False Positives Software is complex
When you are measuring complex conditions that in some cases might be a problem and others not, you should expect false positives results The degree to which you can control and manage false positives will have a strong effect on measurement usability
5
Example False Positive
SimpleDateFormat formatter =new SimpleDateFormat("MM/dd/yy"); String dateString = formatter.format(new Date()); Using the default Java rule sets, this code will raise i18n issues. If the dateString variable is user facing, this code is indeed an issue to be fixed (for more information, check your rule set help pages). However, if the dateString variable is used for internal purposes, such as a in a support log file, it should not be modified and is a false positive. Let's look at a couple of lines of Java code which creates a date string based on a hard coded date format using SimpleDateFormat: SimpleDateFormat formatter =new SimpleDateFormat("MM/dd/yy"); String dateString = formatter.format(new Date()); Using the default Java rule sets, this code will raise i18n issues. If the dateString variable is user facing, this code is indeed an issue to be fixed (for more information, check your rule set help pages). However, if the dateString variable is used for internal purposes, such as a in a support log file, it should not be modified and is a false positive.
6
False Positives vs Issues
Example False Positive: Here, the string “message” is sent only to a log file. It won’t be user facing, and does not need to be internationalized. if (!file.exists()) { String message = "Cannot open resource. It's not a valid file or URL."; Util.getLogger().log(Level.SEVERE, message); } Example Issue: Here the string “msg” is first sent to a log file, then displayed to the user. It will need to be externalized for translation. catch (XMLStreamException e) { String msg = "Error retrieving servers capabilities " + serverURI; Util.getLogger().log(Level.SEVERE, msg, e); controller.showErrorDialog(e, msg);
7
Static Analysis Measuring conditions in source code, rather than having to actively test Code scanning, looking for specific conditions: Bugs Security I18n L10n Changes to the resource files in the code repository(s)
8
Defect costs per stage When most i18n & L10n issues are addressed
Use static Analysis For i18n & L10n Traditional approach to SW Development in a well defined process
9
Static Analysis vs. Testing
Do both! Testing requires that you hit all conditions to be measured Testing is by its nature an iterative loop Code, test, fix, verify Can take more time, more to manage, more manual processes More human error or omission
10
I18n Products and Services – Not a Localization company
Since 2001 Got started delivering i18n services with early forms of product Products expanded and gained enterprise clientele
11
Lingoport Suite Systems, automation & measurement to facilitate ongoing software internationalization and localization. Globalyzer: Find and fix internationalization (i18n) issues that inhibit localization and global user experience during development. Catch up on i18n technical debt. Dashboard: The hub of our suite. See it all, drill down, create notifications and manage the process. Bridge gaps between localization & development. Increase visibility and track globalization metrics. LRM: Make localization proactive. Detect & manage changes to resource files in your source code. Streamline translation jobs. Automate localization updates between development and translation.
12
Lingoport Dashboard G11n visibility over multiple products and projects Drill down & Planning
13
Globalyzer Server: Customize and store Rules (no source access)
Workbench: Big i18n jobs, Configure rules, i18n focus Lite: i18n check from developer IDE or automated check-in Command Line: Automate i18n measurement from the repo Globalyzer finds and helps fix i18n issues like: Embedded strings Concatenations Locale sensitive methods/functions and classes Programming patterns Static files
14
Resource Manager See what’s new in resource bundles Automate Prep Kits
Automate file validation Automate sending files for Localization Via TMS or L10n Vendor Portal Track it Validate it when it comes back Automatically insert it back in the repo if it passes notifications as well as dashboard instrumentation Automated Pseudo Localization
15
Continuous Globalization
i18n & L10n in Every Sprint and Release
16
Continuous G11n Some people will be focused on L10n some on i18n.
Both are important! There is a validation measurement and process gate to each function Nobody has to remember to run a script or perform something manual Nothing is in excel The logical flow is to make sure i18n is in line to support L10n Translation can be very integrated: i.e. client who integrates with WorldServer Can also integrate with your L10n Vendor’s portals, other translation systems like LingoTEK You can have L10n changes as small as one word, but they are automatically managed in and out of the repository No developers need to be involved with L10n Back in to build with file quality checks. Gives you more time for staging QA.
17
Continuous G11n in the Enterprise
Automation Visibility Metrics Many small iterations among many teams. To support i18n and L10n systems support the churn. It’s got to work without somebody remembering to make it work Its elements have to be visible to enterprise constituents. If data lives on somebody’s hard drive, it’s dead to the organization You’ve got to measure to improve across the enterprise These concepts should not be new to software quality
18
Minimizing False Positives
Globalyzer Scope (test directory, external library files?) Filtering Strings Locale-sensitive methods, functions, classes Programming Patterns Static Files Ignores Commenting In the dashboard
19
False Positive Filtering
Demo!
20
Rules vs Line Ignores
21
Lessons for the Enterprise
Your development teams are moving fast Make i18n & L10n a measured & visible part of every sprint Tune your processes to gain valuable measurements and insight, while cutting out false positives
22
Questions & Answers: Contact Resources
Adam Asnes Michael Asnes Lingoport Suite Extensive Services Training – training.lingoport.com lingoport.com/blog lingoport.com/resources wiki.lingoport.com
23
Question #1 What programming languages have the most issues?
24
Question #2 How much will I have to filter?
I like LingoTek as they have many connectors to content managers, including AEM. We of course connect to source code repositories, which are different. Connecting from our system to translation systems and portals is pretty versatile and easy and described in our Wiki. Happy to discuss with you in detail outside the webinar.
25
Question #3 Do I have to have a person dedicated to rules? How do I manage upkeep? Top 3 – Clear business case expressed and understood across the company clear and scalable i18n/l10n requirements & development process, Connection to their global customers for feedback, Yes, but they don’t always get a localization specialist. The L10n manager should be managing, not messing with files. Representing on some scrum teams or overseeing that L10n is part of the feature set for development and testing.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.