Вы находитесь на странице: 1из 12

11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT

Comparing 11 IoT Development Platforms


by Miyuru Dayarathna Feb. 04, 16 IoT Zone

Accessthesurveyresults'StateofIndustrialInternetApplicationDevelopment'tolearnaboutlatestchallenges,
trendsandopportunitieswithIndustrialIoT,broughttoyouinpartnershipwithGEDigital.

1.Abstract
This article presents a general survey of the current IoT software platform landscape based on a detailed analysis we conducted
on IoT vendors. We first create a list of key features which are important for any IoT software platform. Next, we compare the
extent to which those key features have been implemented in the current IoT software platforms. Finally, we list down the
desired features of an IoT software platform based on our observations.

2. Introduction
The Internet of Things (IoT) has undergone rapid transformation since the term was first coined in 1999 by Kevin Ashton.
Since the variety - and the number - of devices connected to the Internet has increased exponentially in recent years, IoT has
become a mainstream technology with a significant potential for advancing the lifestyle of modern societies.

In terms of the technology and engineering aspects of IoT, there currently exists a clear separation between the hardware and
software platforms, with the majority of vendors focused on the hardware. Few vendors in the industry currently offer IoT
software platforms: for example, out of the top 100 IoT startups ranked by Mattermark (based on the total funding they
received), only about 13 startups provide IoT software platforms [5].

The aim of this article is to make a general survey of the current IoT software platform landscape based on a detailed analysis
we conducted on IoT vendors. Shortlisting the IoT vendors for this article was based purely on the criteria whether the vendors
provide software solutions that allow for processing information from IoT devices/sensors. Note that while we try to be as
comprehensive as possible, the article may not reflect some of the latest improvements made to the listed IoT software
platforms.

3.Important Features Expected from an IoT Software Platform


Based on several recent surveys, [2][7], weve selected the following features as being crucial for an IoT software platform:
device management, integration, security, protocols for data collection, types of analytics, and support for visualizations as
example features for comparison. In the next half of this article we give a brief introduction to these characteristics.

3.1Device Management and Integration Support


Device management is one of the most important features expected from any IoT software platform. The IoT platform should
maintain a list of devices connected to it and track their operation status; it should be able to handle configuration, firmware
(or any other software) updates and provide device level error reporting and error handling [2]. At the end of the day, users of
the devices should be able to get individual device level statistics.

Support for integration is another important feature expected from an IoT software platform. The API should provide access to
the important operations and data that needs to be exposed from the IoT platform. Its common to use REST APIs to achieve
this aim.

3.2Information Security
The information security measures required to operate an IoT software platform are much higher than general software
https://dzone.com/articles/iot-software-platform-comparison 1/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
The information security measures required to operate an IoT software platform are much higher than general software
applications and services. Millions of devices being connected with an IoT platform means we need to anticipate a proportional
number of vulnerabilities [3]. Generally, the network connection between the IoT devices and the IoT software platform would
need to be encrypted with a strong encryption mechanism to avoid potential eavesdropping.

However, most of the low-cost, low-powered devices involved in modern IoT software platforms cannot support such advanced
access control measures [3]. Therefore the IoT software platform itself needs to implement alternative measures to handle such
device level issues. For example, separation of IoT traffic into private networks, strong information security at the cloud
application level [3], requiring regular password updates and supporting updateable firmware by way of authentication, signed
software updates [4], and so on can be followed to enhance the level of security present in an IoT software platform.

3.3Data Collection Protocols


Another important aspect which needs attention is the types of protocols used for data communication between the
components of an IoT software platform. An IoT platform may need to be scaled to millions or even billions of devices (nodes).
Lightweight communication protocols should be used to enable low energy use as well as low network bandwidth functionality.

Note that while (in this article) we use protocols as a blanket term, the protocols used for data collection can be categorized
under several categories - such as application, payload container, messaging, and legacy protocols [2].

3.4Data Analytics
The data collected from the sensors connected to an IoT platform needs to be analysed in an intelligent manner in order to
obtain meaningful insights.

There are four main types of analytics which can be conducted on IoT data: real-time, batch, predictive, and interactive
analytics [6]. Real-time analytics conduct online (on-the-fly) analysis of the streaming data. Example operations include
window based aggregations, filtering, transformation and so on.

Batch analytics runs operations on an accumulated set of data. Thus, batch operations run at scheduled time periods and may
last for several hours or days. Predictive analytics is focused on making predictions based on various statistical and machine
learning techniques. Interactive analytics runs multiple exploratory analysis on both streaming and batch data. The last is real-
time analytics, which weighs heavier on any IoT software platform.

4.Current IoT Software Platforms


A careful investigation into the current IoT software platform landscape reveals that each of the above mentioned features have
been implemented to different extents. Weve listed the relevant platforms below, with a summarized feature comparison:

IoT Protocols
Device Supportfor
Software Integration Security fordata Typesofanalytics
management? visualizations?
Platform collection

2lemetry - Salesforce,
Link Encryption (SSL),
IoT Heroku, MQTT,CoAP, Real-time analytics
Yes Standards ( ISO 27001, No
Analytics ThingWorx STOMP,M3DA (Apache Storm)
SAS70 Type II audit)
Platform** APIs

Link Encryption (SSL, Real-time analytics Yes (Titanium UI


Appcelerator No REST API MQTT, HTTP
IPsec, AES-256) (Titanium [1]) Dashboard)

Real-time analytics
Link Encryption
AWS IoT MQTT, (Rules Engine, Yes (AWS IoT
Yes REST API (TLS),Authentication
platform HTTP1.1 Amazon Kinesis, Dashboard)
(SigV4, X.509)
AWS Lambda)

https://dzone.com/articles/iot-software-platform-comparison 2/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
Bosch IoT Yes (User
MQTT,CoAP,
Suite - MDM Yes REST API *Unknown *Unknown Interface
AMQP,STOMP
IoT Platform Integrator)

Ericsson
Device
Connection Link Encryption
Platform Yes REST API (SSL/TSL),Authentication CoAP *Unknown No
(DCP) - (SIM based)
MDM IoT
Platform

EVRYTHNG
- IoT Smart MQTT,CoAP, Real-time analytics Yes (EVRYTHNG
No REST API Link Encryption (SSL)
Products WebSockets (Rules Engine) IoT Dashboard)
Platform

IBM IoT Link Encryption ( TLS),


REST and Real-time analytics
Foundation Authentication (IBM
Yes Real-time MQTT,HTTPS (IBM IoT Real-Time Yes (Web portal)
Device Cloud SSO), Identity
APIs Insights)
Cloud management (LDAP)

ParStream -
Real-time analytics, Yes (ParStream
IoT
No R, UDX API *Unknown MQTT Batch analytics Management
Analytics
(ParStream DB) Console)
Platform***

Yes
PLAT.ONE - (Management
end-to-end Console for
Link Encryption (SSL),
IoT and application
Yes REST API Identity Management MQTT, SNMP *Unknown
M2M enablement, data
(LDAP)
application management,
platform and device
management)

Predictive
MQTT, AMQP,
ThingWorx - Standards (ISO 27001), analytics(ThingWorx
XMPP, CoAP, Yes (ThingWorx
MDM IoT Yes REST API Identity Management Machine Learning),
DDS, SQUEAL)
Platform (LDAP) Real-time analytics
WebSockets
(ParStream DB)

HTTP, HTTPS,
Xively- PaaS Yes
Link Encryption Sockets/
enterprise No REST API *Unknown (Management
(SSL/TSL) Websocket,
IoT platform console)
MQTT

*ThecellsmarkedwithUnknownindicatesthattherelevantinformationcouldnotbefoundfromtheavailable
documentation.

**2lemetryhasbeenacquiredbyAWSIoT

***ParStreamhasbeenacquiredbyCisco

Its clear from the IoT startups listed above that not many have fully fledged device management capabilities. This is a
significant void which needs to be addressed by the IoT software platform vendors.
https://dzone.com/articles/iot-software-platform-comparison 3/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
significant void which needs to be addressed by the IoT software platform vendors.

Furthermore, theres relatively little support for analyzing the generated IoT data in terms of both computation and
visualization. Most of them support real-time analytics - a must-have feature in any IoT framework. However, only few IoT
software platforms provide support for other three types of analytics. In terms of the visual interfaces, most of them are focused
on the simple patterns of a web portal. These dashboards allow for management of IoT ecosystems, but very few provide the
capabilities of visual data analytics.

A few more features commonly observed across different IoT software platforms include REST API based integration, support
for MQTT protocol as a means of data collection, and link encryption using SSL. While not mentioned in the Table 1, only
ParStream has reported a 3-4 million
rows/second throughput in its documentation. This indicates that most of the IoT software platforms are designed without
much consideration for the system performance aspects of an IoT deployment critical in the real world operation.

5. Features to improve on
Its clear that there exist several venues in which improvements are needed. In this section we first provide a list of features for
improvement. Some of these items have already been implemented by IoT software platform vendors; there are several new
features that are not. Next, we provide a list of such new features which have not been addressed by any IoT software platform
vendor currently.

5.1 Existing Features


Data Analytics
Most of the current IoT software platforms support real time analytics, but batch and interactive data analytics may be just as
important.

One may argue on this point saying that such types of analytics are available in other well known data processing platforms,
and that it is simply a matter of configuring such software systems for the analysis scenario. However, thats easier said than
done; famous data processing systems for real-time (Storm, Samza, etc.), batch (Hadoop, Spark, etc.), predictive (Spark
MLLIB, etc.), and interactive (Apache Drill and so on) cannot be applied directly as they are to IoT use cases.

Benchmarks
The IoT software platforms need to be scalable and should encompass facilities to characterize and evaluate the system
performance. Well defined performance metrics need to be devised to model and measure the performance of IoT systems,
taking into account network characteristics, energy consumption characteristics, system throughput, computational resource
consumption, and other operational characteristics.

Edge Analytics
Measures need to be taken to reduce the huge network bandwidth consumption possible between the sensor devices and the
IoT server. Use of lightweight communication protocols is one solution. The other approach is edge analytics, which can reduce
the amount of raw data transmitted to the IoT server. Edge analytics could be implemented even in simple hardware embedded
systems, such as an Arduino.

Other Issues
It should be noted that there are multiple other ethical, moral, and legal concerns associated with IoT software platforms which
we have not covered in this article. While important, addressing such issues is out of the scope of this article.

5.2Features to add
Handling out-of-order processing
An out-of-order event arrival is possible in any IoT application; a disorder of tuples within an event stream emitted by an IoT
sensor may be caused by network latency, clock drift, and more. Order-less IoT event processing may result in a system failure.
Handling the disorder consists of a trade-off between result accuracy and result latency.
https://dzone.com/articles/iot-software-platform-comparison 4/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
Handling the disorder consists of a trade-off between result accuracy and result latency.

There are four main techniques of disorder handling: Buffer-based, Punctuation-based, Speculation-based, and
Approximation-based techniques. IoT solutions should implement one or more of these in order to handle out-of-order events.

Support for IoT context


Context is primarily made out of the location of an individual, their stated preferences, or their past behaviors. For example, in
the case of a mobile phone, we have access to rich context information because of various different types of sensors present in
the current mobile phones. IoT analytics should be able take these contextual data into consideration.

6. Conclusion
The rapid growth of the IoT paradigm needs powerful IoT software platforms which addresses the needs presented by the IoT
use cases. In this article we have investigated the features of the current state-of-the-art IoT software platforms. The
investigation focused on aspects such as device management, integration, security, protocols for data collection, types of
analytics, support for visualizations. From this study it was clear that areas such as device management, IoT data analytics, and
IoT software system scalability and performance characteristics need special attention from IoT software platform community.

References
[1]Appcelerator, Inc. (2015), AppceleratorOpenSource, http://www.appcelerator.org/

[2]Gazis, V.; Gortz, M.; Huber, M.; Leonardi, A.; Mathioudakis, K.; Wiesmaier, A.; Zeiger, F.;
Vasilomanolakis, E. (2015), Asurveyoftechnologiesfortheinternetofthings, in Wireless
Communications and Mobile Computing Conference (IWCMC), 2015 International , vol., no.,
pp.1090-1095, 24-28 Aug. 2015 doi: 10.1109/IWCMC.2015.7289234

[3]Jasper (2014), AchievingEndtoEndSecurityintheInternetofThings,


http://pages.jasper.com/White-Paper-Cellular-IoT-Security_Cellular-IoT-Security.html

[4]LogMeIn (2015), AGuideToDesigningResilientProductsfortheInternetofThings,


LogMeIn

[5]Louis Columbus (2015), MattermarkListsTheTop100InternetOfThingsStartupsFor


2015, http://www.forbes.com/sites/louiscolumbus/2015/10/25/the-top-100-internet-of-
things-startups-of-2015/

[6]Perera, S. (2015), IoTAnalytics:UsingBigDatatoArchitectIoTSolutions, WSO2 White


Paper, http://wso2.com/whitepapers/iot-analytics-using-big-data-to-architect-iot-solutions/

[7]Progress (2015), StateofIoT, https://www.progress.com/docs/default-source/default-


document-library/progress/documents/papers/iot_surveyreport.pdf

[8]WSO2, Inc. (2015), WSO2UnveilsOpenSourceWSO2DataAnalyticsServer3.0, Delivering


Comprehensive Analysis Optimized for The Internet of Things ,
http://wso2.com/about/news/wso2-unveils-open-source-wso2-data-analytics-server-3.0-
delivering-comprehensive-analysis-optimized-for-iot/

[9]WSO2, Inc. (2015), OpenPlatformforInternetofThings,


http://wso2.com/landing/internet-of-things/

[10]Wijewantha, D.(2014), DemonstrationonArchitectureofInternetofThingsAnAnalysis,


WSO2LibraryArticle, http://wso2.com/library/articles/2014/09/demonstration-on-
https://dzone.com/articles/iot-software-platform-comparison 5/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
WSO2LibraryArticle, http://wso2.com/library/articles/2014/09/demonstration-on-
architecture-of-internet-of-things-an-analysis/

Disclaimer
Note that the content of this article is up-to-date as of 23rd December, 2015. The article will not be updated to reflect any
changes made to the IoT software platforms since then. If you need any clarifications or need to make any changes to the
articles content please get in touch with the author via miyurud at wso2 dot com.

TheIoTZoneisbroughttoyouinpartnershipwithGEDigital.DiscoverhowIoTdevelopersareusingPredix
todisrupttraditionalindustrialdevelopmentmodels.

Topics: IOT DEVELOPMENT, IOT APP DEVELOPMENT, IOT PROTOCOLS, EDGE ANALYTICS, DATA ANALYTICS

Get the best of IoT in your inbox.


Stay updated with DZone's bi-weekly IoT Newsletter. SEE AN EXAMPLE

SUBSCRIBE

Five Steps to Make IoT Great Again


by Aaron Allsbrook Nov 16, 16 IoT Zone

The Internet of Things (IoT) is the next great wave of change in our technology and society. Any world leader or business
executive should be heavily focused on making IoT great for their constituents and customers. Whether you are Donald Trump
with a presidential bid or youre a developer at a promising startup when youre ready, here are the fundamental steps to get
your solutions started.

MaybesomeonewhowillcareaboutmakingIoTgreat...

Secure Connectivity
Before any sensor can send data to a cloud it must first be connected. The connection from that sensor must bounce along
multiple protocols (from ZigBee to MQTT to REST). The sensor must authenticate itself and then be granted permissions only
https://dzone.com/articles/iot-software-platform-comparison 6/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
multiple protocols (from ZigBee to MQTT to REST). The sensor must authenticate itself and then be granted permissions only
for valid activities. Finally, the device must be managed and maintained so that it continues to provide valuable information
rather than slowly becoming insecure and a point of frustration for our users. Failure to implement secure connectivity results
in data breaches, unsatisfied users, and wasted investments.

Real-Time Processing
Once devices are connected and able to communicate securely, the next challenge of real-time processing jumps to the
foreground. IoT will see demand greater for volumes of information and higher speeds than any of the previous systems of the
past. To simply digest the ingress, parse the data payloads, execute rules and provide responses, IoT solution creators will have
to work in new ways. This includes the ability to create horizontally scalable infrastructure, optimized data transfers, and
flexible deployment models which is not currently standard in our architectures. Before data can be processed we must first
simply make the connected devices become actionable in real-time.

Dynamic Data Routing


Only at step three do we begin to engage our data needs. With the ability to process the fire hose of connected device data, we
now need to flow and enrich that data into valuable locations. There are many unique data stores that will provide different
value, from highly available caches to legacy relational databases to domain specific Hadoop clusters, each will most likely exist
in your IoT solution. At this point simply routing the data into the correct locations for future access and processing is required.

Deep Analysis
Only once our IoT data resides in the correct place can we begin to do analysis. Before many AI engines can begin to answer
questions they must be trained. This training is done via vast amounts of softly correlated event data or with experts seeding
the systems. Here we can leverage intelligence engines provided by IBM Watson, Google Big Query, and Microsoft AI.

Cognitive Decisions
Finally, we can mature our IoT solutions to the last phase of implementation by introducing our intelligent networks back into
our IoT real-time processing. This means that rather than a simple rule checking for temperature greater than 120 that issues
an alert, we can pass in an array of sensor values that include ambient temp, machine humidity, vibration, weather forecast,
upcoming procurement outline, project sales demands all with a high percentage of certainty to select an ideal maintenance
window in our factories.

The future with IoT is very bright as we make our societies safer, efficient and aware. As you and your enterprise explore
leveraging IoT, make sure to consider the true path and costs of achieving your first steps before jumping to the final result.

A final note the good news is that the big data, AI, neural networks, and expert engines are all in their infancy. Solving the
core issues of connectivity and real time processing first means that you will be ready when those tools finally mature.

Topics: CONNECTIVITY, IOT, DECISION MAKING, IOT PROTOCOLS

Published at DZone with permission of Aaron Allsbrook, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.

Industrial IoT and the Age of Predictive


Maintenance
by Adi Gaskell Nov 16, 16 IoT Zone

Accessthesurveyresults'StateofIndustrialInternetApplicationDevelopment'tolearnaboutlatestchallenges,
trendsandopportunitieswithIndustrialIoT,broughttoyouinpartnershipwithGEDigital.
https://dzone.com/articles/iot-software-platform-comparison 7/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
trendsandopportunitieswithIndustrialIoT,broughttoyouinpartnershipwithGEDigital.

Back in 2014 an Accenture report predicted that investment in the Industrial Internet of Things would
reach $500 billion by 2020. A combination of cheap sensors, powerful data processing, and machine
learning has enabled companies to make their industrial processes significantly smarter and more
efficient.

Nowhere is this more so than the rail industry, which is one of the most asset-intensive industries in the
world. Whereas traditionally rail operators would only be able to fix something that had visibly broken,
with repair conducted according to static schedules, the realm of predictive maintenance promises to allow companies to spot
and repair problems before they require services to be halted.

Its increasingly common for all manner of physical assets to generate data that allows companies to tap into this growing
capability, with machine learning providing companies with the ability to detect minute changes in data and accurately predict
future performance issues.

Smart Maintenance
This has manifested itself in a number of fascinating early case studies of the use of data to make management of networks
smarter.

For instance, Finnish company Sharper Shape have been using drones to map utility networks. They use machine learning to
identify trees that are at risk of falling onto power lines.

When I spoke to CEO Tero Heinonen recently, he told me that using drones to perform this task rather than humans can cut
those costs by around 30%. Not only is it more cost effective though, its also considerably faster, with daily assessments
possible as opposed to the weekly or even monthly assessments that are currently the case.

Or you have the European Train Control System, which is aiming to introduce a single, harmonized signaling system
throughout Europe to replace the often incompatible systems deployed in individual nations.

Equally interesting is the University of Huddersfield-led project to use sensor technology to automatically operate the level
crossings that are dotted throughout the rail network. An interesting aspect of the project is that the sensors derive their energy
from the vibrations of the track as trains travel along it.

These vibrations are being put to similarly useful ends by a German startup called KONUX, who deploy sensors on the track,
with algorithms then monitoring the vibrations sent as trains zoom past to determine the health of the track.

The team behind the venture believe they can reduce rail maintenance costs by up to 25%, which when these costs typically run
into billions of dollars per year is not to be sniffed at.

Smarter Transportation
Its clear that capturing and analyzing big data can provide companies with a host of advantages, and French rail provider
SNCF are the latest large company to test the waters.

They are undertaking a range of projects that aim to capitalize on big data to do a number of things, including:

improving visibility of asset health


reduce instances of unscheduled maintenance
predict maintenance requirements more accurately
integrate data from across the organization

I spoke recently with Hlose Nonne, Head of Data Science at SNCF, ahead of her presentation at the upcoming AI Europe
event in London. She explained the growing importance of data to the operations of the company.

SNCFs top direction made digital technologies a key component of the groups transformation. In 2014, Direction Digital
https://dzone.com/articles/iot-software-platform-comparison 8/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT
SNCFs top direction made digital technologies a key component of the groups transformation. In 2014, Direction Digital
was founded, a department dedicated to digital technologies and the associated change management. Since then, 5 expertise
centers, the Fabs have been created: Big Data, IoT, Design, Open Innovation and Agile Transformation. In all of their projects
with SNCF departments, the Fabs receive support from SNCF top management. Many projects have been successful and the
Fabs now act as accelerators for digital innovation, Nonne revealed.

Maintaining consistent service is crucial for most industries, but certainly so for the rail industry. The media typically has no
shortage of stories of commuter anguish as trains are delayed or canceled unexpectedly, so operators simply cannot afford
unprepared equipment downtime any longer.

With the kind of monitoring and maintenance programs mentioned in this post, the expectation has to be that such network
faults will become a thing of the past as networks utilize assets in which they are confident that it will perform when its
required.

TheIoTZoneisbroughttoyouinpartnershipwithGEDigital.DiscoverhowIoTdevelopersareusingPredix
todisrupttraditionalindustrialdevelopmentmodels.

Topics: INDUSTRIAL IOT, IOT, MACHINE LEARNING, PREDICTIVE MAINTENANCE

Published at DZone with permission of Adi Gaskell, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.

The Importance of Software Quality When it


Comes to Cars
by John Paliotta Nov 16, 16 IoT Zone

Vehicles have already evolved from mechanical devices into complex integrated technology platforms with embedded software
powering all major systems including: engine control, power train, braking, driver assistance, and infotainment. Studies now
predict that by 2017, four out of five new cars will have an Internet connection. This always-on connectivity will result in new
challenges as the line between consumer-grade software for infotainment and safety-critical software gets blurred.

For example, the telematics system provides features such as in-vehicle voice control applications as well as interaction with the
GPS system for navigation and traffic features. As we move into the era of increasingly connected and autonomous cars,
features such auto SOS, which summons help in the event of a crash, will be built on top of this existing telematics
architecture.

The news earlier this year of the agreement between major automakers and the U.S. National Highway Traffic Safety
Administration to implement automatic emergency braking (AEB) as standard equipment on most vehicles by 2022 signifies
another example of this shift from consumer-grade to safety-critical. The AEB systems are controlled by software that powers
cameras, radar, proximity sensors and more that all need to operate flawlessly in order to safely stop a vehicle if a driver is slow
to respond. This also means that an embedded camera that was previously used for driver assistance (parking for example) will
now be part of a safety-critical system.

https://dzone.com/articles/iot-software-platform-comparison 9/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT

Figure1:Softwarepowersallmajorsystemsinthemodernconnectedcareincludingenginecontrol,powertrain,braking,
driverassistance,andinfotainment.

Insurmountable Quality Issues


Most new software applications are built on legacy code bases. Because a substantial investment of money and time has gone
into developing existing applications, there is naturally an interest in leveraging this investment.

The problem with the reuse of existing code is that legacy applications often carry an enormous amount of technicaldebt(a
metaphor for shortcuts taken during the initial design and development of a system). This debt is often caused by the
continual development of software without the correct quality control processes in place, typically due to the tremendous
business pressure to release new versions. The accumulated liability of the technical debt created eventually makes software
difficult to maintain.

The key to reducing technical debt and improving quality is to refactor components (the process of restructuring application
components without changing its external behavior/API), but developers are often hesitant to do so for fear of breaking existing
functionality. One of the biggest impediments to refactoring is the lack of sufficient tests which formalize the existing correct
behavior of an application.

Without sufficient tests, it is difficult to refactor an application and not cause regressions in functionality or performance.
According to a Gartner study, "a lack of repeatable test cases limits an organizations ability to demonstrate functional
equivalence in an objective, measurable way." This lack of sufficient tests ultimately means that a software application cannot
be easily modified to support new features.

Paying O Technical Debt


Baseline testing, also known as characterization testing, is useful for legacy code bases that have inadequate testing. It is
unlikely that developers of an already deployed application will go back and implement all of the low-level tests that should be
generated. They rightly feel that the deployed application is working fine so why should they spend months of time
retesting?

A better option, in this case, is to use automatic test case generation to quickly provide a baseline set of tests that capture and
characterize existing application behavior. While these tests do not prove correctness, they do formalize what the application
does today, which is very powerful because it allows future changes to be validated to ensure that they do not break existing
functionality.

https://dzone.com/articles/iot-software-platform-comparison 10/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT

Figure2:Baselinetestingformalizeswhatanapplicationdoestoday,whichallowsfuturechangestobevalidatedtoensure
thatexistingfunctionalityisnotbroken.Changebasedtestingcanbeusedtorunonlytheminimumsetoftestcasesneeded
toshowtheeffectofchanges.

Another benefit of having a complete set of baseline tests is that change-based testing (CBT) can be used to reduce total test
cycle times. It is not uncommon for complete application testing to take one to two weeks. With change-based testing, small
changes can be tested in minutes. Change-based testing computes the minimum set of test cases needed for each code change
and runs only those tests.

As a result, developers are able to make incremental changes to the code and ensure that those changes are not breaking the
existing behavior of the software. They are also able to do further analysis if something is broken to work out if a bug has been
introduced, a capability has been removed that actually should be there, or if there is a bug that should be addressed because it
may have other ramifications.

Conclusion
In the Internet of Things-enabled world, a great amount of legacy code bases will find its way onto critical paths in new
applications. Without proper software quality methods in place to ensure the integrity of this legacy code, the overall safety of
the system could be compromised.

Baseline testing can help reduce technical debt in existing code bases, allow developers to refactor and enhance those code
bases with confidence, and ultimately allow the owners of these legacy applications to extract more value.

Topics: TECHNICAL DEBT, EMBEDDED DEVELOPMENT, LEGACY CODE, IOT

https://dzone.com/articles/iot-software-platform-comparison 11/12
11/17/2016 Comparing 11 IoT Development Platforms - DZone IoT

https://dzone.com/articles/iot-software-platform-comparison 12/12

Вам также может понравиться