Archives

In a current GlobalLogic project, we are managing a 3MB database in SQLite running on Android. As a data-intensive application, SQLite has performance challenges, so we were looking for an alternative. Fortunately, a nicely crafted persistent layer allowed us to change the underlying storage mechanism. One option was to use Realm, a mobile database that is faster and easier to use. Although still under development, it is loved by many developers and users worldwide.

This is a high-level introduction to Realm.

What is Realm?

Unlike SQLite, Realm is a mobile first database (DB) engine, built from scratch using C++ core. It stores data in a universal, C++ core table-based format. Realm is an open-source, object-oriented database, built specifically for mobile devices, keeping in mind mobile device constraints (compared to desktop). The key difference between Realm and other object-oriented databases is that the objects are stored in a language-independent format. This hybrid object/table approach has an advantage over a relational database, because it allows efficient graph querying—of even deeply nested object graphs on relatively older smartphones—without impacting response times.

Performance

Benchmarks published by Realm claim, on average, up to a 10x increase in speed over raw SQLite for normal operations. Our tests have shown a huge performance gain for read operations and 20% to 50% improvement for data manipulation operations, as shown in the graphs below.

Realm_write_perofrmance_image Realm_read_perofrmance_image

Why is Realm so fast?

Traditionally object retrieval from an ORM/RDMS involves data copying and serialization/deserialization when data passes through different layers (language to database to language). Realm skips this entire process as the database file is always memory mapped. Realm accesses any offset in the file as if it were already in memory, even when it’s not, since it’s virtual memory. This is an important design decision for the core Realm file format. It allows the file to be readable in memory without having to do any deserialization. It simply calculates offsets to find data in the file and returns that value from the raw accessors on the data structure. This is much more efficient and therefore much faster.

Relationships in Realm are also extremely fast because indexes traverse a Btree-like structure to the related object. This is much faster than querying, because there is no need to perform another full query. It is simply a native pointer to the related object.

Making development easier

In addition to performance, Realm saves you from writing entire database plumbing code. As a developer, you deal with objects rather than database tables. The database operations code size is virtually zero.

Accessing Realm from a background thread looks the same as accessing Realm from the UI design services thread. There is no need to maintain multiple contexts and merge them manually, no inconsistent views, and no headaches trying to reconcile your data. The only limitation is that object instances cannot be passed across threads, meaning you cannot have one thread for fetching the data and then passing it to another thread (probably a UI thread) for further processing. Realm provides its own APIs for this asynchronous behavior. You just need to register call backs to read the data from the API.

Realm has built-in support for encryption using AES-256+SHA2. There is a small performance hit (typically less than 10%) with encrypted Realms.

Author

Sanjay Gadge

Co-authored by

Sushil Kadu
Vipendra Katre

success

In the software services industry, sometimes people become lost in the jargon (e.g. “timely” and “quality delivery”), delivering what the customer is looking for, getting new business from the customer, etc. The conversation revolves around statements like, “We have a team of 100 people working for XYZ customer” and “This customer account is very important for the organization, and we are looking for 25% growth in revenue this year.”

The conversation sometimes may show concern, but mostly from the vendor’s perspective and with an “us vs. them” mindset: “This time, yet again, the team is not able to work on the next release and instead is working on ‘business as usual (BAU)’ work. The reason being, the customer is going through a lot of restructuring yet again. It happens all the time at their end.”

I sometimes feel that the conversations should instead revolve around questions like:

  • Are we helping the customer generate more money (i.e., business value) with our software delivery? If not, how can we help the customer move towards business success and goals?
  • We may be earning millions this year from this customer account, but what about the customer? Do we care, or should we care?
  • Delivering something that the customer asks for is fine, but is it helping the customer move towards business success?

The reality sometimes remains that even when the customer is experiencing revenue loss for the last few years, the development team’s focus still remains stuck in detailed level delivery goals like improving the current product quality, test automation, or rewriting the whole application to remove technical debt. This leads to disaster for both the vendor and the customer. Eventually, the customer may be out of business, which doesn’t serve any purpose for either side.

With that, it seems logical that software delivery teams should work towards customer success. But then the counter-argument may be, “We specialize in software delivery, not helping the customer make business decisions. It could be true some years back, but unfortunately not anymore.”

With Lean Startup’s arrival on the horizon, development teams have started working with a mindset of “discovering and building products and services that people love using disciplined, scientific and capital efficient methods.” Recently, GlobalLogic started taking a Lean Startup approach to software projects, as well. Agile from a delivery perspective and Lean Startup techniques from a business success point of view complement each other very well. Here are some examples:

  • Instead of looking at revamping the product with new technology and architectures -- and in the process keeping the product roadmap stagnant for a year, which of course may be a great business opportunity for the team -- the team instead asks, “Is this the right thing to do from a business point-of-view? If not what could be the right balance?”
  • Instead of building a big feature right away after spending 2-3 months on it, teams use a “Fake Door” UX pattern (i.e., only building the important bits, faking the rest, and testing on real users). This approach helps teams identify if end users really want a certain feature or not, helping them understand whether to build it with very minimal costs instead of learning what users want when it's too late.

door

Summary

It’s not about the tool box or techniques (i.e. Lean Startup), but about the mindset that makes development teams partner in customer success or failure. In a startup world, customer success has already been proven to be the best kept secret of the hyper-growth of those startups. A similar mindset is required in services industry, as well: customer success is your success.

 

The dilemma is new, the parameters are not.

to-app-or-not-to-app

As a business owner, it’s difficult to decide where to invest your money and heart when it comes to technology solutions. Do you create a fancy app for your business in place of your mobile site? Or, to make things more complicated, in addition to your mobile site to take it to the next level? To be honest, I don’t have the answer, but I can bring things out into the open so you have a better understanding of your options.

Quite a few major enterprises are moving towards using apps today. Why?

Simply put, because it is cool and convenient -- to the customer, that is. It’s a boutique product done “just for you” and your device. People who are used to an iPhone or Android “feel” will be able to work with your app just like they would with any other feature of an iPhone. The swipes, the menu, the icons - all are custom made for their device.

This makes the app sticky. Because of the convenience the user finds on your app, s/he would keep clicking the icon rather than going to the website of your competition.

In the eCommerce world, for example, some players started going “app only” so that they could reduce scenarios where users bargain hunt across multiple sites loaded on multiple tabs on their phone browsers -- similar to looking at multiple stalls on a street corner. By going app only and investing in your app being addictive through gamification and other engagement tactics, you make it more inconvenient for the user to go out and hop -- like driving to a standalone boutique store.

You have more chances of converting the deal through an app, and you can also use a lot of the user’s phone features (e.g., using the camera to photography how an outfit looks on the user, using geolocation to provide relevant location-based offers, accessing a user’s bluetooth and contacts to do more things). This is similar to a boutique shop investing in enhancers like a cafe or gift corner to boost sales and margins rather than just “doing the thing.”

So why aren’t all businesses taking the same route?

The problems are many. You have multiple OSes (e.g., iOS, Android, Windows), form factors (e.g., mobiles, tablets, phablets), and variations within them (e.g., iPhone 5 is a different size than 6, which is different from 6+). Also, different OS and phone versions are not always backwards compatible. If you code for each of them, how many code versions must you maintain? And if you make compromises, you make your users unhappy and dilute the wow factor that was your basic premise.

Then there are other considerations. Apps take space on the phone. They crowd the phone real estate, meaning users tend to have a limited number of apps on their phones. Your app may not be lucky or compelling enough to stick around on the phone, which will compel you to maintain a mobile site in addition to the app, adding yet another layer of complexity. And even though you have so many different versions of code, you will be expected to maintain a consistent look and feel (and features) across the different versions.

There is always a third solution, isn’t there?

Some choose to build hybrid apps using platforms like PhoneGap, Appcelerator, or plain HTML5. These apps are actually mobile web sites but mimic the look and feel (and idiosyncrasies) of a mobile device. You can customise the solution to a specific device to the extent you wish, or even start with a generic solution and progressively make it specific based on user response. Hybrid apps tend to bring out the best of the both worlds -- albeit, in a limited sense.

As I stated earlier, this article does not provide you with specific answers, only some options and points that you should consider based on my discussions with executives at some of the top eCommerce players in India, the US and the UK. Your final solution will obviously depend on the money you have, the team you can afford, and your particular business’ unique needs. For example, if you are an eCommerce solution, you should probably develop apps; if you are a media site, you may decide based on the depth of your pockets!

Piyush Jha is AVP of Product Engineering for GlobalLogic India. He heads the delivery of the Retail and ECommerce vertical for GlobalLogic globally. He specializes in eCommerce, mobility, IoT and experience design. His interests include reading and travelling the globe to imbibe different cultures. Follow him on LinkedIn.

E-commerce is undergoing a major technological disruption. As the lifestyle of the consumer is becoming more adaptive to online shopping, it is becoming all the more important for the key players of the retail industry to keep their customers satisfied and engaged with respect to experience and quality of delivery.

Many say that IoT (e.g., automation, personalization in apps and websites, etc.) will enhance the customer experience, but before adopting iot technology, digital retailers first need to identify their problem areas and technology options. Although there are many different solutions available in the IoT space -- from RFIDs to beacons to BLEs -- there is no “one size fits all” solution. Even similar problems may need to be treated uniquely due to different constraints, environments, audiences, and constructs.

In this blog series, I’ll take a look at the different areas of the E-commerce industry that are evolving through the use of IoT Technology , and how businesses can identify the right technologies to use in each situation. First let’s focus on one of the most important aspects of the digital retail workflow: supply chain management.

Identifying Problem Areas

If we asked domain experts and market analysts what is troubling the Ecommerce platforms industry the most, one of the top concerns would be the timely and high-quality delivery of products to customers. Businesses are looking for ways to work smarter and faster in a high-volume order environment by asking the following questions:

  • How can we make orders reach the customer in the shortest possible time after the order is placed online?
  • How can we reduce the possibility of incorrect deliveries and increase quality metrics during the shipment leg -- thereby decreasing returns?

Customers are raising the bar with respect to satisfaction and experience, and competition in the space is also setting a benchmark that is quite high. If we try and address the above stated problems, the first step towards improving the system is to identify how the order is processed:

  • How soon does an order request reach a warehouse?
  • How is the warehouse maintaining inventory levels?
  • What is the inventory management process?
  • How long does it take to run through receiving to put-away to stock updates?
  • What is the average time taken from pick-up to manifest against an order?

Now comes the tricky part. After you pinpoint the areas for improvement and identify which processes should be automated through IoT, you need to decide which IoT mechanism will be the most efficient and economical. Should you use RFID technology, or beacons, or BLEs -- or a combination of all three?

One approach is to create a comparison metric in order to weigh each option on feasibility, cost, and logistics. Metrics similar to the below chart may help you reach the conclusion that although RFID may be a good option for receiving, packaging, and manifesting, it’s not the best solution for pick-up and put-away in terms of cost, feasibility, and logistics in relation to one’s specific environment.

iot-metrics

Choosing the Right Solution

Let’s look at a specific scenario where you identify that the pick-up process in a warehouse is the area that needs the most attention, as it is taking the maximum time calculated to move from placing an order to manifesting and shipping it to the customer. The reason for the issue is that the picker follows a manual process to (1) locate the aisle and zone where the product is being stored, (2) locate the exact product on the rack, (3) retrieve his/her scanner as a separate device, and (4) scan the product and add it to the bag.

To streamline the process, you would like to automate it using an IoT-based solution that helps the picker (1) quickly navigate to the product’s aisle, zone, and shelf location, (2) scan the product seamlessly without having to switch on a separate device, and (3) update the inventory system in near real-time. It would be a bonus if the solution could notify the picker when he/she selects the wrong product, thereby eliminating incorrect deliveries and bringing down the rate of returns.

In order to decide which mechanism you should deploy, you need to analyze the pros and cons of each solution. For example, although an RFID may be a good solution, it may not economical. To deploy RFIDs across the warehouse, you would need to develop a triangulation algorithm to help the picker navigate to the right zone and aisle, and you would also need to stick RFID tags on each product to help the picker select the right product. Would your suppliers support you with these logistics? How many RFID readers would you need to cover an entire warehouse? Could beacons be a cheaper solution to obtain the same results? What about using an Arduino board with a BLE chip at each shelf that is programmed to identify the shelf location that the picker is searching for?

This is the kind of thinking that developers must utilize when helping Ecommerce solutions/ industry players add real value to their warehousing systems. At GlobalLogic, we are continuously testing the limits of our expertise and creativity to address constraints and potential problem areas in order to come up with the best solution for our customers.

Conclusion

The bottomline is that there is no one solution to all problem statements; while one solution may be capable of addressing problems, it may not be economical. For example, although RFID may be one of the best solutions for receiving a shipment in a warehouse, beacons can aid in building and navigating a warehouse indoor map, and BLEs can help workers locate a product’s shelf location. We may need to use a combination of many IoT-based solutions within the warehouse to create a complete solution. We cannot rely on one mechanism if we aim to build an effective and economical solution and want to add meaningful value to the industry.

Generation-next in this space is definitely on a revolution spree; however, we need to act judiciously and not get overwhelmed with the many and fascinating options available in the market.

The term “blob” is commonly understood to mean “Binary Large OBject.” Many of us are familiar with this term from its usage in a database, where “blob data” might be data stored in our database that does not conform to an established data type as defined by the database. Such data is usually persisted as plain binary data. Windows Azure Blob storage offers a way to store content and make it available across the web. It’s like a storage drive on the cloud that is used to store large amounts of data.

This white paper demonstrates how to create or set up a storage account on Windows Azure, and it provides code samples for performing different operations on Windows Azure Storage for binary large objects (“blobs”), including creating, deleting, copying, listing, setting access control, adding properties, adding metadata, etc.

Distributed Agile development services / teams are the reality these days. For sure, there are overheads. But it’s all about the trade-off between “distributed Agile overheads” versus the combination of availability of talent at any given time, scaling teams at will, and lower costs.

Communication overheads are mitigated through phone/Skype/hangout calls with screen-share, and it’s common for people to do remote pair programming. However, many times, collaboration still fails. Distributed members/stakeholders may not be available at the same time. The product owner is busy all the time, and getting a hold of her becomes a difficult task. Work that should be finished within hours can take days/weeks of cycle time because of this to-and-fro communication.

How can a team mitigate these challenges?

While working with customers on opposite time-zones (10-12 hours), GlobalLogic figured out that it would be almost impossible to collaborate if we didn’t define a common overlap time. Some teams moved their working days in order to accommodate the overlap hours (e.g., shifting their work day from 9AM to 11AM) while on the other end, the US team also started early. That way, they could find an overlap of 2-3 hours.

overlap

Some teams didn’t move their working hours but still defined an overlap time and scheduled their meetings during that time. For unscheduled meetings, the team members would inform their counterpart in another location during their day time. During the overlap time, they made themselves available to talk.

Here are common threads in both types of teams mentioned:

  • During the overlap time, the involved team members don’t book any local meetings, ensuring that the product owner will always be available during the overlap time to answer your questions.
  • All distributed meetings happen during the overlap time.

Overlap time is essential if you are collaborating as distributed teams. Some teams do remote pair programming on a regular basis when time-zone difference is not significant. But for teams working across opposite time zones, overlap time is still useful for close collaboration on a daily basis.

Recently, I learned that the first internet-connected refrigerator was introduced in 2000. Of course, there was no internet in the appliance itself--crafty Whirlpool engineers fixed a tablet on the freezer door to go online and to order food from online shops. After that, there were many experiments with domestic appliances to plug in different digital devices. However, truly “smart” refrigerators entered the market only in the past five years. Such IoT fridges can track the availability and shelf life of items, as well as make shopping lists based on items that have run out.

Do you still think this is science fiction? Get ready, because smart domestic appliances will be a more integral part of our life very soon. In this blog, I’ll provide an overview of development in the Internet of Things (IoT) and also discuss how Ukraine is contributing to many of these exciting new innovations.

Everything Is Going To Be Online

Gartner analytics report that the number of internet-connected devices will increase to 6.4 billion by the end of 2016, which is a 30% increase from 2015. There will be 5.5 million new devices connecting to the internet every day—a number equaling the population of Finland! Most IoT devices fall in the consumer class, in particular electronically-equipped cars and the infrastructure elements of smart homes, businesses, and entire cities. Various sensors can help establish the optimal microclimate in the house, set up logistics within a businesses, and handle traffic flow through a city.

A decrease in value of key technologies over the last ten years is one of the secrets to the success of IoT. In that time, the price of sensors decreased from $1.3 to $0.6, and the cost of internet connection services decreased by 40 times while storage and processing prices decreased by 60 times. According to McKinsey, the IoT market may grow from $3.9T to $ 11.1T in the next five years.

Who's Who in the IoT Market

Despite the fact that this market seems complicated and confusing, it has its own distinct segments and niches. I like the chart created by Matt Tark, Director of FirstMark Capital. He provided not only the IoT market segmentation, but also gave the names of the most significant players in each of the segments. Data transmission technologies (e.g., Wi-Fi, LTE, NFC, Bluetooth, etc.), as well as equipment for data collection and transmission (e.g., microcomputers Arduino, Raspberry, Intel Edison) are the basis of IoT. The Internet of Things is present in different markets such as finance, medicine, and distribution. In general, all devices and solutions can be divided into five big categories.

Vitalii-1

Figure 1. Segments and major players in IoT according to Matt Tark, Director of FirstMark Capital

Personal devices
These are portable devices such as smart watches and fitness bracelets that monitor the state of your health / physical activity and deliver all the necessary information to your smartphone. Another example is FiLIP, a watch for children that has a geolocation feature and can receive calls from their parents. 

Lifestyle
This category includes devices for relaxation, different hobbies, pet care, food storage and preparation, and more. In Ukraine, the most well-known example in this category is Petcube, which was created by Ukrainian developers. It is a small box with a webcam and a laser pointer, allowing users to not only watch their pets, but to also talk to and even play with their pets remotely. Petcube is controlled through a special application, and it can take pictures and record video. After a successful entry into the US market, Petcube has launched sales in other countries as well.

Vitalii-2

Figure 2. Petcube, a way to remotely connect with your pet

Solutions for smart homes are expected to become even more popular as Google and Apple popularize their operating systems, Google Brillo and Apple HomeKit.

Brillo is designed to connect compatible devices such as washing machines or lighting into a single network with Google technology support. It is an extension to the Android operating system. It should be noted that 80% of all smartphones in the world use Android as their operating systems. Similarly, Apple HomeKit allows you to use your iOS device to control any compatible accessories. There are several dozen such devices currently available, making the iPhone, iPad, or Apple TV a remote home control.

Vitalii-3

Figure 3. Apple HomeKit

Industries & Industrial Internet
Retail, medicine, automotive, smart buildings, and agriculture industries can also benefit from IoT. For example, IoT is already used for precise control over cars. Many cars are equipped with positioning devices that allow you to track their location in real time, calculate the best route, and avoid traffic jams. In case someone attempts to steal a smart car, it can inform the police of the situation and can also detect. It can even report potential failures on-the-go.

In the future, smart vehicles may be connected with smart city infrastructure elements (e.g., smart traffic lights, road signs) to provide advance warning of traffic jams and possible ways of avoiding them. Smart cars can even automatically update their software, eliminating the need for the car owner to spend time at the service station. With every firmware update, Tesla cars receive new features and updated capabilities. In October 2015, Tesla released a software update with an autopilot feature. Certain Tesla models can now drive on high-speed highways, change lanes, and match driving speed to the flow of traffic -- all by themselves. To calculate the route, the autopilot feature uses cameras, radar, ultrasonic sensors and navigation maps. Upon arrival at the destination, the car can independently find a parking spot, and even park.

Vitalii-4

Figure 4. Tesla autopilot

A few years ago, Google was granted a license for fully unmanned vehicles to travel on public roads. Since that time, Google’s self-driving cars have driven over half a million kilometers.

Vitalii-5

Figure 5. Google self-driving car

The agriculture industry needs new technologies to provide food to a rapidly growing world population. According to forecasts, the world population will grow from 7.3 billion people to 9.7 billion by 2050. To make agriculture more efficient and profitable, it is necessary to leverage solutions that can help us control irrigation, the physical conditions and behaviors of domestic animals, fertilization, and more.

Vitalii-6

Figure 6. IoT for agriculture

Made in Ukraine?

The good news is that countries around the world are actively creating IoT solutions. Ukraine is now not only a place of active implementation of the Internet of Things, but also a development hub for many advanced IoT technologies. The majority of Ukrainian companies provide R&D services for customers in the USA and Europe. According to Gartner, Ukraine is among the top 30 countries for R&D. Ukrainian engineers are involved in the development of many products for world famous brands, and companies like GlobalLogic employ engineers who have implemented dozens of projects in IoT (e.g., fitness, retail, automotive industry, smart home, medicine). Ukrainian engineers are also actively developing infotainment systems for leading automotive manufacturers, such as internet-enabled systems that make it possible to remotely diagnose and transfer information about bugs directly to the manufacturer.

Even better news is that it’s not just big companies that are involved in developing IoT solutions. Small start-ups and lone enthusiasts are also involved in development and innovation. For example, in 2015, Microsoft Ukraine launched the Internet of Things Laboratory (IoT Lab). From all the participants, the jury selected 10 projects whose teams got equipment, space in the laboratory, and the opportunity to study and develop their ideas over six months. Some Ukrainian projects have already received foreign investments, including Petcube and the environmental project Ecois.me. Recently, local investment funds have become interested in IoT developments, as well. The smart home project Ajax Systems attracted an investment of $1 million from the Ukrainian investment fund SMRK. This is just the beginning.

I do not know when we are going to create a smart refrigerator or self-driving vehicle under a Ukrainian brand, but I am sure that Ukrainian specialists can not only assist in the creation of high-quality solutions for other companies, but also make their own. We are ready!

People move to Agile, go through the required training, and start working on projects. After a period of time, if you ask any team member, “What exactly is Agile?” he or she will start talking about Scrum ceremonies, embracing change, shorter feedback cycles, etc. Even after implementing all these aspects, you’ll find issues in that project.

Why?

One of the most basic issue remains – people still continue to work in silos, even in Agile teams. You may find close collaboration within the developer or tester community, but if you ask how exactly developers and testers are collaborating together, you may find that people are clueless.

Some teams still work in a mini-waterfall fashion and term it Agile. For example, consider a typical team whose members follow all the Scrum practices. However, the developers work during the first part of the week on the user-stories and then hand them over to the testers by end of week. From Monday onwards, the testers perform testing while the developers wait for bugs and fix them as and when they are raised.

If you check all these anti-patterns, one thing is obviously common – team is not collaborating together for Sprint success. They still work in a siloed fashion and have a “developer vs. testers” mindset.

I personally feel very strongly against it. Irrespective of the ceremonies followed or the flavour of Agile, more than half the battle is won if a team believes in the idea of “How can I help you?” and then help each other in reaching a Sprint goal.

You may say, “This is good in theory, but in practice, how can team members really collaborate?”

Here are some ways in which testers and developers can help each other:

  • The most basic way that developers can help testers is by writing tests. Any application without automated tests is an application with lots of technical debt. Then those regression tests have to be manual, which compounds the workload of testers.
  • A developer and tester should pair up to define the test cases for the user-story together. While discussing those test cases, it’s important to focus on the basic idea of test pyramid (i.e., 80% of tests should be covered with unit and integration tests). Only 10% of tests should be covered with functional tests, and the remaining 10% of tests can be manual.
  • At this time of pairing, developers can suggest what all test cases can be implemented through automated unit and integration tests. The remaining 10% of tests can be automated functional tests.
  • A developer should perform the checking part of testing (i.e., developed user-story meets the functional acceptance criteria). So when the developer says “I am done developing the functionality,” it should mean that the developed functionality meets all the test cases discussed at the beginning. The tester can then focus on the exploratory part of testing.
  • While doing that task, the developer should write the required automated tests as well.
  • When a developer says, “I am done with the development of the user-story,” the tester can log onto the developer’s machine and check if there are any glaring mistakes or bugs in the functionality. If there are bugs, then the developer can go back and start fixing those issues instead of getting into a cycle full of waste (i.e., developer pushes the code to repository, then CI build runs, which creates executable and deploys it on the test environment; the tester does the required data setup, identify bugs, logs bugs into bug tracking system; then repeat over and over again as and when the developer fixes the defects)

Developers can help the testers technically by setting up the required testing frameworks and infrastructure.

These are some of the fundamental ways in which developers and testers can help each other. But again, it’s just a small list. If you believe in the philosophy of “How can I help you,” then you’ll find ways to help each other.

I find that collaboration and helping each other is the basic mantra of success for any Agile team. Obviously there are other ways in which Agile teams can be successful, but this one is implicit. This is fundamental tenet of working in Agile.

The emerging Internet of Things (IoT) market is introducing new concerns around cybersecurity. Now that hackers can access connected devices in addition to pure data, they are affecting the physical world and breaching user privacy in brand new ways. Although internet of things companies is revolutionizing the way companies do business and the way people live their lives, it is crucial to secure all the various “things” in an IoT ecosystem. In this white paper, we will identify current IoT security challenges and address how they can be resolved.

The universal market has significantly evolved over the past decade, with nearly every enterprise serving customers around the globe. To increase international market share, there is a growing consensus to migrate the monolingual applications from legacy character sets to Unicode and to extend support for multilingual data, formats, and user interfaces. As such, i18n testing has become an integral part of software testing.

However, i18n testing can be challenging because an application’s content and UI can be multilingual in terms of text, currencies, date, time, and number formats. To address such complexities, testers must select test data that encompass all aspects of i18n testing. This white paper will identify how testers can choose the right test data to effectively and thoroughly test software intended for global markets.

  • URL copied!