Like many of my colleagues at Shockoe, I began writing computer code in a high school classroom. However, in my case, the school was particularly advanced for its time in offering such a course, and our “computer” was a keyboard, dot-matrix printer, and a modem connection to the University of Virginia, where the actual computer occupied an entire floor of a large building. And while most of those colleagues went on a path that brought them relatively quickly to Shockoe, I spent two decades working as an attorney in New York, Seoul, and Virginia.
Now in my third year of software development I have felt particularly happy to be at Shockoe because I believe it addresses needs that I often saw during my time working as an attorney, needs that I am certain are shared by many industries.
In my experience, the following was typical of the manner in which law firms implement technology. First, the decisions are made by senior partners who, being busy with the representation of clients, have little time to keep up-to-date with what is available or most desirable in technology. This leads either to an “if it ain’t broke, don’t fix it” mentality, or an attempt to take care of the problem in one fell swoop with a package solution that may or may not fit comfortably with the way they have set up their practice. In the latter case, the acquired technology may go unused, or used only to the extent required by the firm. For example, if a time-tracking application is difficult to use, an attorney may keep track of his time on post-it notes as she always did before, then have her secretary type it all into the application at the end of the week.
In either case, what then happens is that employees begin finding their own solutions. Each attorney and his or her assistants devise their own system, piecing together hardware and applications as they see fit. Depending on their level of technological sophistication, they may, or may not, arrive at a solution that works well for them. However, this approach drastically reduces the potential for collaboration, and creates a host of potential problems, as the less technologically-adept might adopt solutions that introduce security vulnerabilities or other problems.
Although so often noted as to sound trite, an average employee today with a typical mobile device is comparable to an employee with superpowers two or three decades ago. To make the most of those powers, however, requires sophisticated solutions. This includes, of course, a focus on the possible pitfalls of any new technology. A device that allows employees to watch training videos at convenient times may also allow them to spend the working day watching Netflix. Large collections of data become valuable, and thus must be protected, not only from hackers in foreign locales, but from disgruntled or former employees. Yet while minimizing risk demands much attention, it is just as important to make certain that new technology is used to its full potential. Making one’s workforce five times more efficient is simply not good enough in a competitive business environment if the competition makes their workforce eight times more efficient.
This is what excites me about working at Shockoe, being able to use my skills to allow our clients to make the greatest possible use of the technology available to them. Apps created now increase employee productivity, streamline task performance and ensure employees have real-time data access they need for day to day exchange opposed to the opposite stagnant mentality. If this sounds familiar to you, check out our work for Financial Services Mobile Technology and contact us for any innovative ideas to help your team tackle your digital transformation with a great mobile strategy.
Last week I had the pleasure of attending Node Summit 2016 in San Francisco. I am eager to share some of the new cool technologies and concepts I learned about while I was there.
The one hardware workshop at the conference proved to be perfect office hackathon fodder. Particle.io is a platform for interacting with internet of things devices, and using node and their Photon microcontroller we were able to program a row of lights to act as a scoreboard for a game of tic-tac-toe. As someone who deals strictly with software, it was a welcome diversion to play around with breadboards and resistors for a few hours.
One of the most insightful and fun presentations I attended during my time at Node Summit was on security. This talk featured a lot of great examples of trying to hack into or disrupt a locally hosted web application. Of course, the main thrust wasn’t to teach people how to hack–though I can’t say I didn’t learn a thing or two–but to show how out-of-date node modules can bring security vulnerabilities to your codebase. The presentation concluded with a stern warning that actual hacking was illegal and an insight into a current company for those in need of a fix:”bugcrowd” a platform that lets companies pay bounties to hackers to break into their systems so that they can close any security gaps.
The main buzzword at the conference was micro-services. Every sponsor from NASA to Netflix gave talks on how they have transformed their entire systems over to use this architecture concept.
Micro-services are not specific to node, but node’s flexibility means that it lends itself well to the concept. The micro-service pattern refers to breaking out all of the functionality of your product into independent pieces, instead of housing them within a single unit–known as a “monolith”. This way, when you make changes to your app, you don’t have to redeploy your entire codebase. Instead you’re deploying just the parts of the app that were affected by changes. This works especially well in node because you to pull in only the modules you need for each individual micro-service, and there are tons of node modules out there designed with communication between micro-services in mind.
Looking back at the conference as a whole, I was inundated with the vastness of node itself. Every year for the past four years the numbers of new node users has doubled, and there are 300+ new modules published every day. This has inspired me to try them all out and bring cool new technologies back to Shockoe.
At Shockoe, application testing is a strategic component in our business offerings that provides our clients with a competitive advantage.
Traditionally, testing is a tactically intensive process. By its hands-on nature, human resources required to perform tests consume budgets and starve strategic resources needed to define, conduct, and analyze quality testing objectives.
Today’s mobile apps require exhaustive levels of effort and resources to conduct comprehensive, confident, bullet-proof testing. The sheer number of device types, makes, models, operating system versions, original equipment manufacturer modifications, and carrier alterations strangle resources required for testing, drive-up development costs, delay deployment, and often limits tests to key app areas and select devices.
So, how is Shockoe able to focus on strategic solutions without being bogged down by the nearly endless tactical resources required to ensure proper app testing? … By using SOASTA TouchTest© to automate the testing process.
So, what is TouchTest and what strategic advantages does it deliver?
Shockoe employs TouchTest to execute the majority of testing tasks traditionally performed by humans. As such, our efforts can be focused on developing strategic test objectives for real-world scenarios, using real-world data, on actual devices.
Fundamentally, TouchTest records user interactions with an app. These recordings can be played back on a single device or simultaneously on multiple devices. Playbacks can be incorporated into continuous integration environments and automatically performed as part of an app build process. During play back, app and device information is collected for analysis. Using TouchTest to carry-out test objectives enables Shockoe to expand test planning, conduct tests on more devices, shorten product cycles and increases reliability as human error is removed from the hands on, tactical testing processes.
Strategic test objective planning is the first step in Shockoe’s process. Complex tests, such as full regression, are broken down into many smaller unit tests. Identifying edge cases where the unit test is pushed to extremes by data values, user interaction, and system demands, are crucial for solid testing.
After test objectives are defined, a human Shockoe tester conducts each unit test on a TouchTest enabled app and device. TouchTest records each gesture, event, and invoked user interface element as an “app action.”
App actions provide validations, condition matching waits, and access to property sets. Additional elements can be inserted before and after app actions. These elements include checkpoints, time delays, controls, waits, composition launchers, and comments.
If-then-else and switch conditional elements can also be added to control the flow of a test. These conditional statements can evaluate properties associated with app actions, device, and data provided as part of the test environment. Results from embedded or linked scripts can also be used by conditional statements. The ability to verify app action behavior and change the course of testing based on conditions is a powerful, strategic advantage of TouchTest.
Determining what input data will yield the desired results is another strategic aspect in defining solid test objectives. Should the test pass? Should the test fail? What data best exposes edge tests? TouchTest allows “seed data” from databases and/or .csv files to be injected into the test playback process at the app action level. While TouchTest allows for manually entered data during tests, seed data provides fully automated testing and ensures exact data use.
App actions and elements can produce output for recording test execution detail. Screen shots, app action object properties such class name and text, as well as device information can be saved for post test analysis. Strategic data capturing greatly reduces time required for analyzing results, decreases the time to identify faulty code, and can be used to further refine tests.
App actions and any inserted elements comprise a test “clip.” Typically, a clip defines a single unit test case, for example, actions required to perform a login.
Clips are assigned to a “track” in a “composition.” As its name implies, a composition allows many parts to become a whole. Playing back a composition comprised in many clips provides the ability to perform any test scenario – from unit to full regression testing. A composition track is assigned to a physical device. Multiple tracks can be added to a single composition allowing a single test composition playback to be performed simultaneously on multiple devices
During playback, TouchTest records key metrics from both the app and device. These statistics are accessed in the TouchTest Dashboard. The ability to maintain test results and drill down into details enables Shockoe to devote resources towards strategic analysis of defects, determining defect cause and effect, and efficiently identifying and making corrective actions.
Shockoe’s use of TouchTest dramatically reduces the hands-on tactical resources required for testing, allowing efforts to be directed towards strategic test development, deployment, and analysis.
TouchTest directly benefits our clients by shortening product cycles as tests and corrective actions are implemented through out the development cycle, ensuring device platform reliability as tests are performed simultaneously on multiple devices, improving app performance as emphasis is focused on analysis, and cost reductions as more tests can be conducted with fewer human resources and in less time.
Contact us to learn how TouchTest can benefit your existing or future app.
For additional information on SOASTA TouchTest, visit here.
The Richmond region is home to a diverse and vibrant community. Every day, in our garages and laboratories, studios and galleries around town, the RVA Creative Class creates impactful, creative and innovative solutions across all disciplines. i.e.* is a galvanizing initiative to launch Richmond into the limelight and over time, put us on the map for innovative excellence.
On April 16th, 2013, at Richmond CenterStage, 14 finalist will compete for a chance to win a $10,000 , six months of free office space at New Richmond Ventures, $3,500 worth of IT strategy and implementation services from Imagine Simplicity, and mentoring from 804RVA.
In support of the competition Shockoe (for the second year in a row) has developed a voting system, hitting the big three this year with an native iPhone, native Android, and Web application, for the competition. The mobile app features full descriptions of each finalist, and real-time in app voting, on-site (CenterStage) the night of April 16th. Also, the mobile app will aid in determining the winner of the People Choice Award, as well as prize the $2,500 prize, courtesy of First Capital Bank! We hope to see you at CenterStage on VOTE night!
Check out i.e.* for iPhoneCheck out i.e.* for AndroidCheck out i.e.* for the Web