“Automated QA: Save time, use a web calendar handler!”

Number8’s very own Derick Arzu was recently published on Medium. Read the article on automated QA processes below.

Text boxes, check boxes, radio buttons, and other elements of forms are fairly simple to deal with when it comes to developing UI functional tests for a web application. But what happens when you want to write a test that verifies that the UI for a web calendar is working?

You are probably thinking that it can be easily achieved with a couple of clicks and validations, which is not only true but also the approach that led to the idea of a handler.

Before you discover how to make your automated QA team very happy, here are some reasons why writing a simple function or just a segment of code that deals with ONE specific calendar is not as scalable. Imagine you are a QA Developer at a company who is developing the websites for airlines A and B and your team is requested to create the automated test suites. Sounds quite easy, you will use the same code in both projects, nothing will need to be changed; until someone shows you the designs of the two web calendars each airline uses in their website.

Beginning with the obvious differences, airline A uses two windows while airline B uses only one; that surely represents a significant change in the code of that first approach. Another difference you might not have noticed is that airline B has a dropdown to change the year of the calendar, so that would mean a slight change in the method used to get the text of the displayed year. Those are two visual differences that will affect the way your bot interacts with the calendar and the DOM will surely surprise you with more.

Now that you are interested, the coding begins!

This handler was implemented in Node.js and uses WebdriverIO as the test framework that interacts with the browser.

You will find out that the framework has two functions ($ and $$) to fetch web elements. However, a hierarchy of classes will be created to manipulate elements, later on you will learn this is so that the handler can easily be able to cover many web calendar designs.

The main class is Element. Here is where, the method to obtain the fetch function is implemented, it has two parameters:

    1. selectorObject (required) which refers to an object with two properties; the first named selector , is a string that specifies the selector that will be used to fetch the element. The second is index, which is an integer that must be assigned to the object if the fetch result wants to be treated as a single element and not as an array of elements.
    2. additionalProperties (optional) is an object with any property that wants to be added to the fetch result. The subclasses of the hierarchy use this to manage how some data is obtained from the web elements, you will learn this later on.

Read More…

Q & A Best Practices

On top of delivering a project on time and within budget, developers must test for quality assurance upon completion to ensure stakeholders’ expectations have been met.

However, testing for quality after a product is built, usually results in far too little, too late. The agile model of software development encourages practicing quality assurance throughout every phase of the project. The agile way also prioritizes quality by making it the responsibility of every team member, not just the QA testers. As a result, the QA team coordinates efforts with the development team at each iteration, providing continuous testing.

Implementing a feedback loop is a fundamental step in the quality assurance process. In order to guarantee that the product meets all of the requirements (feature functionality, design, reliability, usability and efficiency), it can be helpful to enlist the perspectives of those with varying backgrounds. This can include those proficient in testing, business and or development.

Quality assurance testing can be both manual and automated. While both approaches are proficient at mitigating bugs, automated software testing is often more beneficial in that it is quicker and more effective at checking for code correctness. It’s important to remember that the goal of Q & A testing is to find faults within the software so that an error-free application can be delivered to the client.

The following are integral software testing methods when best practicing quality assurance:

Test Driven Development (TDD)

TDD works by building a project’s code around the QA tests. The programming team first designs and builds tests for functional code, and then creates code that will pass them. This development method helps everyone gain an understanding of the code’s purpose before development; guaranteeing the initial functionality of the code and effectively building in quality.

Behavior Driven Development (BDD)

Similar to TDD, in that the test is written before the code, BDD tests the behavior of an application under specific conditions. This is done with the end user in mind. As development progresses, BDD often proves to be more reliable than TDD. BDD is also written in English instead of code, allowing for a more streamlined feedback loop.

Acceptance Tests

Acceptance tests are simple pass or fail tests that check whether or not a feature behaves as it should. These are often automated to meet customer and business requirements.

Regression Tests

Once one feature is functional, regression tests ensure it’s stability throughout the software’s other modifications. As more features are built, these automated tests check that the others aren’t being negatively affected as a result.

Exploratory Tests

Exploratory tests are usually manual, in that a human operates the software looking for unknown unknowns. These tests are meant to identify new situations that the development or QA teams haven’t thought of.

Once a product thoroughly meet’s it’s intended purpose and performs well under pressure, the QA testing is complete.

At Number8, we believe in developing software that is user-friendly, reliable and completely functional. As a result, we are always recruiting talented QA professionals for quality assurance jobs on our team. To learn more about how we can help you complete and successfully launch your software project, contact us at 502-890-7665. 

6 Hackathon Innovations & Startups

Hackathons are known to be breeding grounds for innovation. Often put on by an organization or university, these collaborative computer programming events are a great way to empower young entrepreneurs and thinkers alike.

What is a Hackathon?

A hackathon takes place over a set period of time, usually a weekend. During this time, teams set out to develop a solution to a problem in the form of a prototype that they will then pitch to whoever is hosting the hackathon. While primarily coders participate in these hacking marathons, people from all backgrounds including designers and marketers are encouraged to be involved during the software development process. Often many successful applications arise as a result!

Here are 6 recent hackathon innovations & startups: 

E-Farm

E-Farm is a service that was developed at Be-Bound. It is online produce market that allows consumers to purchase directly from farmers.  Shoppers can source food from multiple farms and get to know the story behind both the farmer and their farm before their order is delivered to their home.

StartTalking

StartTalking is an app that connects users with counselors, coaches and doctors. Originating out of Kansas City’s Hacking the Gigabit City event, users can send messages, video conference or participate in group sessions with their providers from anywhere anytime. The app is secure, affordable, and guarantees privacy.

PowerWells

PowerWells came out of a Techstars Startup Weekend. The service provides light and mobile phone charging from electronic waste and commercial solar panels to those in remote communities that don’t have access to electricity.

Piece of Mind

Piece of Mind is a wearable device for patients with Alzheimer or Dementia. Created during an Angelhack, the app allows caregivers to monitor a patient’s movements in real time and prevents loved ones from getting lost.

EchoLoco

EchoLoco is an app that was developed during the Urban-X Hackathon. It provides audio maps for the visually impaired; helping them to safely navigate cities with the aid of real time cues.

CropSafe

CropSafe is an online platform that was created during an Angelhack in Dublin. It works to predict impending diseases and crop contamination by surveying plots of land via satellite imagery and machine learning. The service even offers solutions to affected landowners.

Our dedicated team of software developers at Number9 are located in Louisville, Kentucky. Together, with our nearshore office in Costa Rica, we have worked to launch countless software projects successfully. Contact us today by calling 502-890-7665 to learn more about what we can do to help you complete your project.

 

The Secret Hollywood History Behind WiFi

WiFi has become essential to our professional and personal lives. It has changed the way we communicate and altered the way many of our devices work (thanks to the Internet of Things). While it’s now nearly effortless for us to install, connect to and use, how did it come to be?

While WiFi wasn’t accessible to consumers until 1997, it has a long history dating back to the 1940’s. At it’s core, WiFi uses wireless transmitters and radio signals to exchange information and connect to the internet. In the 1940’s, Hollywood starlet Hedy Lamarr and composer George Antheil developed the radio frequency hopping technology that would become the foundation for the wireless communication we all enjoy today.

The History of Radio Frequency Hopping

According to a recent documentary, ‘Bombshell: The Hedy Lamarr Story,’ the popular actress Hedy Lamarr often ran experiments in her trailer between takes. Upon meeting Antheil, who famously synchronized pianos to hop from one note to another, the pair came up with a plan that incorporated radio signals. At the time of their work together, World War 2 was in full swing and the U.S. Navy needed a way to protect their underwater missiles form Nazis detection.

Together, Lamarr and Antheil joined the war effort by inventing the concept of radio frequency hopping. Their invention used perforated rolls of paper, much like the ones in pianos, to change frequencies from one point to another via the holes in the roll. This discovery helped guide radio-controlled missiles underwater without risking enemy exposure in that both the radio transmitter and the receiver could simultaneously change from frequency to frequency.

Modern Wireless Communication Methods

Fast forward to 1985, when the Federal Communications Commission (FCC) allowed several bands of wireless spectrum to be used without a government licence, and communication via radio frequency energy became revolutionized. In order to operate on these bands, devices were required to steer around interference from other equipment. They did so using the frequency hopping technology developed by Lamarr and Antheil.

While the duo were granted US Patent No. 2,292,387  in 1942, they signed it over to the Navy during the war. It wasn’t until 1997 that they were recognized for their frequency hopping technology by the Electronic Frontier Foundation. It is no doubt that WiFi’s many applications, including gps and bluetooth wouldn’t be possible without Lamarr’s and Antheil’s invention. As the technological wonder continues to evolve and become faster and more reliable, we can take more than our fair share of inspiration from it’s unlikely source..

How To Overcome 7 Common Software Development Obstacles

Launching a newly developed software is as challenging as it is rewarding. Developing software from the ground up is no easy feat. It takes a lot of planning, time management, and knowledge of the ins and outs of information technology. When the launch of a software development project goes off without a hitch, it’s an IT miracle. It’s known that with software development, as with most IT projects, there can be some obstacles to overcome. More often than not, things go wrong within the coding or through a development process that must be fixed. Sometimes developers even have to go back to square one and start the entire project over. However, that is not always the case. Developers prepared to overcome obstacles are often successful in doing so. The key is knowing how to overcome common software development obstacles. This way you can ensure that the launch of your software goes smoothly.

You may be asking yourself if every software development project is different, what are common software development obstacles? And that’s what we’re here to help you with today. Follow along to learn how to overcome 7 common software development obstacles before starting your next project.

7 Common Software Development Obstacles You Can Overcome

1. Poor Time Management Sets Unrealistic Expectations

Mismanaged timelines and missed launch dates are common obstacles that people overcome during a software development project. Whether it’s due to unforeseen roadblocks or issues that were expected to come up, there’s not much worse for a project than an extended delay. One of the best ways to avoid missed deadlines is to brainstorm with your team before starting the project. What could go wrong? Which pieces are expected to break? Where do you foresee there being delays? Being prepared for the inevitable bumps in the road is the best way to get over them smoothly and without too much delay. When a problem does come up that threatens the timely delivery of a project, stay calm, get the team together, and work as a group to find the best way forward.

2. Issues with Integration

Compatibility can be an issue with any project. When developing new software from the ground up, how do you ensure it pairs with all the tools the client already uses? One of the best ways to go about integration is through the use of application programming interfaces (APIs). Another option is to partner with the other tech brands that the client is prone to use. Find ways to work together with already utilized tools and teams of developers experienced with said tools.

3. Breakdowns in Communication

No software development program was launched alone. Depending on the size of the software development project, the team working on it can be as small as 5 people or as large as 20. When a communication breakdown occurs, it can have disastrous effects that could put the entire project in jeopardy. One of the best ways to avoid a communication breakdown is by hiring an effective project manager. Someone who can divide tasks among the team then ensure each of them is done and any changes which may affect the entire development outcome are communicated effectively is imperative to a successful project.

4. Overloading the Software with Features

While some features are necessary, others can be downright frivolous and simply load a software down. There is such a thing as too much and, when it comes to software, the line between just enough and too much is very thin. One of the best ways to circumvent overloading your software is to focus on features that truly embellish the core goal of the program. Less is always more in software and features that help the software rise above other programs are useful, but the goal of the software is to solve a problem, not create more, so keep features slim.

5. Not Understanding Exactly What the Software is For

One of the best ways to succeed in software development is to have a clear vision of what success looks like. Being able to completely understand how your software should work if it is working well will make it much easier to get to that finished point. Determine the “why” of the software before beginning the development process. Once you start, do not waiver from that why without good reason.

6. Not Realizing the Importance of Quality Assurance

Customer satisfaction is dependent on extensive quality assurance. Sending a software development project out into the world without assuring it is working as well as it possibly can is IT suicide. In order to achieve a high-performance product, the quality of the coding needs to be reviewed and tested continuously throughout development. Consider hiring a tester from a third-party source or create your own quality assurance checklist, in-house, and employ it repetitively.

7. Not Having a Target Audience Defined

While you, and your team, may think that your new software project is the best thing since sliced bread, not everyone will. Defining a target audience can help to avoid wasting time and money once the project is launched. Outline the demographics of the ideal user of your software. Then build a marketing plan that will appeal to that demographic. There are third-party companies available to complete market research, including focus groups, which can help identify the perfect consumer and what rings true with them in regards to marketing.

There are a lot of dos and don’ts to consider when developing new software. These are some of the software development obstacles our team has learned to avoid.

The more dos you can accomplish and don’ts you can avoid, the more likely your project will launch smoothly. All in all, the more planning you can put into your project prior to starting, the better. The tips above will help you to avoid a variety of issues, but there are always unforeseen circumstances.

If you are in the middle of a software development project and have hit a roadblock, Number8 can help. Our dedicated team of software developers located in Louisville, Kentucky and at our nearshore office in Costa Rica has worked together to launch countless software projects successfully. Contact us today by calling 502-890-7665 to learn more about what we can do to help you wrap up your project.

How to Develop the Digital Skills Necessary for Remote Work

Remote work can offer an employee the flexibility needed to be a caregiver, world traveler or student; making it an ideal form of work for most of the population. For an older employee however, the idea of working from home can seem overwhelming and fraught with technological difficulties.

Luckily, many of the skills needed to succeed in the office translate quite easily to working from home. Time management, self-sufficiency, communication and teamwork for example are all key remote work skills. And chances are, anyone whose had office experience, is familiar with a computer. However, there is a level of tech savviness required to operate out of the office full time.

For those looking to make the transition to remote work for the first time, but are afraid of getting left behind in this new digital age, here are some of the most popular web applications to get up to speed on before you apply for the job.

It’s worth noting that many of these applications have free tutorials, videos, and training available as well as free versions to help you get your feet wet.

File Storage & Sharing Platforms

When you’re working on the go, you can’t be tied down to your desktop. Instead it’s common for remote workers to operate exclusively from online or cloud based platforms such as Google Drive, Dropbox or Apple iCloud. These make it easy to access your work files no matter where you are or what device you’re on. As long as you have the app downloaded, you can work from anywhere.

Long gone are the days of losing your work because your computer crashed. These applications automatically save and sync everything as you go. Not to mention, you can effortlessly share files with others by giving them access via a link or email address. Google even offers a full suite of applications including word documents, slide shows and spreadsheets well suited for every field of work.

Video Conferencing

Unfortunately, even remote workers can’t escape meetings. Zoom and Skype are popular video conferencing options for meeting outside of the office.  Zoom offers free video calls with up to 50 people as long as you don’t talk for more than 40 minutes and Skype is free as long as both parties are using the app. Both of these applications (and many others) offer chat options, screen sharing and recorded calls. Just make sure you’re well equipped with the right headset for the job.

Collaborative Applications

While email is everyone’s go to in-office communication platform, remote workers often utilize project management software to stay in touch virtually. Both Trello and Slack are excellent examples and offer many collaborative features for working with a team remotely. These shared applications make it easy to generate a task list and delegate the workload. They also show each member’s progress as well as what stage any given project is in and give the option to offer feedback to one another. Additionally shared calendars ensure everyone is on the same page when it comes to meetings and out of office time periods.

At Number8, we provide high quality technical talent to businesses of all sizes and sectors. We specialize in application development, custom software, website development, mobile solutions, database design, client/server, web application development and Q/A testing. Learn more about what we do and how to get started with Number8 by calling 502-890-7665 today!

Reviewing Some In Demand Tech Jobs That Don’t Require Coding

It can be hard for someone who wants to get into the field of information technology to do so without any coding experience. Coding is a huge money-maker in the world of business right now as more and more companies go digital. With the increased prevalence of smartphones, portable computers, and the like, companies have to be online to remain relevant. In order to do that, companies are pouring their funds into their IT department. They’re doing this to improve their online presence and their user’s online experiences. For this reason, most job descriptions that are related to IT work require some sort of coding experience; however, there are some fields out there that are offering in-demand tech jobs that don’t require coding experience.

Most jobs in technology fall into one of three categories: developer, designer, or manager. While almost all developer job opportunities require coding, often designer or manager positions are available without any coding knowledge. This is what we’re going to be discussing today. Follow along to learn more about five in-demand tech jobs that don’t require coding experience.

Five In-Demand Tech Jobs That Don’t Require Coding Experience

1. Designer for User Interface (UI)

If you have an eye for design, and experience in programs like Photoshop, there may be an opportunity for you in UI design. While the popular UX reference to User Experience, UI refers to User Interface. User Interface is how the software looks and feels more so than how it functions. UI Designers often brainstorm and engineer the visual design of a new program or software. Then they work with a team of UI Developers to make their wireframes, storyboards, sitemaps, and user flows come to life.

2. Software Quality Assurance Tester

Before software is made available to the public, it goes through numerous rounds of testing from software quality assurance testers. This job, which requires no coding experience, requires an employee that can put an upcoming software through various rounds of different user experiences and applications with the main goal of breaking the software. By putting new software through stressful scenarios that push the software’s limits in regards to functionality and scalability, software quality assurance testers ensure that the software is at its strongest and capable of any user experience before it goes to market.

3. Search Engine Optimization (SEO) Specialist

Any company looking to launch itself into the 21st century must employ at least one Search Engine Optimization Specialist. A job opportunity as an SEO Specialist is perfect for those with a knack for analysis, research, and general knowledge of how Google works. SEO Specialists often work with a team of developers and designers to make sure that websites are using the best SEO practices they can while also researching search terms, creating keyword-rich content, optimizing web page copy, and analyzing the data collected through analytics and advertising campaigns.

4. Software Sales Associate

Any information technology or marketing company that’s creating its own software needs people to sell it. If you’re interested in learning more about information technology and have experience in sales, you may be in luck. Oftentimes there are companies out there looking for software sales associates. While entry-level pay is usually lower, with commission based bonuses incorporating big chunks of sales associate’s paychecks, the payoff can be highly rewarding for those with a knack for sales. For those who perform well in high-pressure and high-stakes situations, have the ability to learn the ins and outs of a software then translate that into why potential customers need this software for their own benefit, and can deal well with stressful situations, the position of a software sales associate may be the perfect step into the information technology field.

5. Technical Support Specialist

While there are some technical support positions that require a degree, there are others where having a college degree, or experience coding, is not an issue. There are a lot of benefits that come with being a technical support specialist. The ability to learn on the job is one while the often flexible hours offered for support specialists is another. Those who have an interest in customer service and the ability to be familiar with a variety of software and technical programs will excel in the role of a technical support specialist. Communication skills, patience, and understanding are all critical skills, but coding is not.

The information technology field may seem off-limits to those who don’t know how to code, but this is not the case. There are plenty of in-demand tech jobs that don’t require coding experience at all. And one of the best things about the IT field is that someone who may not have coding experience but has an interest in coding will have the opportunity to learn on the job. The world of information technology is always changing and growing. This expansion clears the path for employees to have internal growth within their company. Finding an entry-level job in information technology can open up doors of opportunity for those with or without coding experience.

At Number8, we employ a high number of software developers who have coding experience. But we also have job opportunities available for those with no experience in coding. Learn more about what we do and how to get started with Number8 by calling 502-890-7665 today!

The Best Cybersecurity Practices for Remote Employees

While some companies are becoming more and more open to the idea of remote employees, a lot of corporate companies still have reservations. When a company opens up to the idea of remote employees, a few things happen. People who are efficient in-house workers become interested in moving their work to a home office. And corporate starts to worry about data breaches on their remote employees’ computers. A study done by the popular company Shred-It showed that over 85% of C-Level executives thought that the risk of getting company data breached was more prevalent when employees were stationed at home. And these executives aren’t worried without cause. Data breaches affected an entire third of remote workers in the United Kingdom over the last year which has put companies at risk left and right. 

However, data breaches should not deter all companies from allowing workers to work remotely. The benefits of remote employees far outweigh the downfalls. When a company chooses to allow employees to work from home they not only open up brick and mortar space but also widen their search area when looking for qualified employees to hire. And there are ways to practice safe cybersecurity and prevent data breaches from affecting remote employees. This is what we’re talking about on our blog today, so follow along to learn more about the best safe cybersecurity practices for remote employees.

5 Essential Cybersecurity Practices Remote Employees Should Follow

When it comes down to it, once an employee is working remotely there isn’t much the company can do to protect their devices and data from being hacked. However, there are plenty of safe cybersecurity practices that employees can apply to their work routine to keep themselves, their equipment, and the company’s data secure.

1. Keep Track and Control Of All Devices

One of the main reasons that data breaches occur is because an employee loses their device that holds their work-related information. Across airports in the United States, a laptop is stolen every minute and the majority of those stolen objects are never reunited with their owners. As a remote employee, it is crucial to understand that hackers, and other cybercriminals, are keeping an eye out for the opportune moment to knick a laptop or tablet in hopes it has sensitive information on it. Therefore it is critical to keep track and have control over all your devices when in public. There are multiple ways to do this including:

  • Use the highest level of security to lock and unlock your devices. Touch IDs, 6-digit passcodes, and double factor authentication should be activated.
  • Enable the “Find My Device” feature, so if your computer, laptop, or phone is lost then it may be easier to find if it is lost or stolen.
  • Keep your phone, tablet, or computer with you at all times with no exceptions.

2. Be Careful Using Public WiFi

It can be tempting to take advantage of free WiFi in cafes, restaurants, book stores, and the like; however, it is not always a safe option. Public computers and WiFi connections are easily hackable and, if cracked, hackers can gain access to all files and stored credentials you accessed while on the computer. It is better to avoid public computers and password-free WiFi connections altogether, but if you absolutely must use it then be sure to remember the following:

  • Obscure the view of your screen as best as possible. In an ideal situation, you are able to have your back facing a wall and limited space to your sides.
  • Do not go to any websites that store sensitive information in regards to your job. This includes usernames, passwords, client information, etc.
  • Manually clear all documents you downloaded while using a public computer. This is so others cannot see what files you downloaded and access them, as well.
  • Make sure that the computer is not storing any of your login credentials permanently and restart the device after you are done using it to remove temporary files.

3. Setup and Use Encrypted Email

If you’re in a position that requires you to send sensitive information through email then email encryption is a must. 90% of email is sent as plain text which is not secure in any way and susceptible to spies and hackers. However, with email encryption, any information sent over email is scrambled. This way it is only able to be read when the recipient receives the email and decrypts it.

If you’re working from home and it’s been approved by your employer, they should be able to install email encryption software onto your remote work technology. It will ensure that your computer, tablet, and phone are more secure and their information is safe.

4. Do Not Use USBs That Have Not Been Proven Safe

It’s not uncommon for remote employees to use USB drives. Whether they are needing something from the office or need to send something to the office, USB drives help. However, USB drives from unknown sources can contain malicious software. It’s important to remember to never insert an unverified USB into your remote work computer. This even includes USB drives that you may pick up at work-related events. Risking a security breach is not worth waiting to verify the USB or get the files another way (Dropbox, Google Drive, etc.)

If you want to go further into safe cybersecurity practices, it’s also important to not let other users plug their USB drives into your computer. There is no way to know what is on their USB drives. They may or may not be aware of a malicious file. Even if you know the person, do not allow it.

5. If Any Issues Arise, Get Your Company’s IT Team Involved

If you fear that the device you use for work has been compromised, notify your company’s IT team immediately. It is so important to be aware of what a breach looks like:

  • Increasing amounts of pop-up ads and spam while you’re browsing or using programs.
  • Slowing down of the computer despite it not running a lot of programs.
  • More and more error messages when trying to perform simple tasks.
  • A change to your homepage, search engine, or browsing settings.

While the company’s IT team may not be able to save your computer, they need to know that data has been breached. This way they can take the necessary steps to further protect the company’s data and servers. It is best practice to tell your IT team everything you can about the breach. Try to remember when exactly it could have occurred, how, and why.

There are a lot of benefits to companies having remote workers. However, concerns of a cybersecurity breach can deter executives from taking the leap. By being aware of ways to prevent cybersecurity breaches through common practices, workers can further prove remote work is safe.

At Number8, we have offices in Louisville, Kentucky and Costa Rica where we employee remote workers. With the proper training, awareness, and precautions, we are able to employ remote workers without any trouble. To learn more about what we do at Number8, visit our About page. If you’re interested in learning more about Number8 and how we can help your business, contact us today.