by Larry Van Sickle, Senior Software Engineer
Protractor is a useful tool for end-to-end tests for AngularJS applications using nodejs and Jasmine. Any suite of end-to-end tests will have to be maintained and enhanced as the application being tested changes. The tests can require as much maintenance as the application itself. Best practices in structuring the test code can simplify test maintenance and reduce maintenance costs. A key idea for structuring end-to-end tests is the page object.
by Larry Van Sickle, Senior Software Engineer
Protractor is used to write end-to-end tests for AngularJS applications. Protractor is a nodejs application that runs an application in a browser and interacts with the application using Selenium and WebDriverJS. Protractor is easily installed.
By Brenda Hall CEO, Bridge360
Hiring managers in Austin know how hard it is to find local talent to fill our technical job openings. In fact, the past couple of hires at Bridge360 were recruited from out-of-state, adding time and cost to our hiring process. This challenge led the management team at Bridge360 to create and implement the ground breaking program:
By Chris Durand CTO, Bridge360
Want a guaranteed way to reduce your spend on software development? Do less. Really. Testing too expensive? Test less! Development too expensive? Develop less! Does this sound too good to be true? The good news is that most teams can benefit tremendously from this approach. The trick is to identify what to do less of.
By Chris McIntosh, Senior Software Developer
We have all seen the various studies of software development and the causes of failures to deliver on time and cost overruns. The original Chaos report stated that a mere 16.2% of projects finished on time and budget. There have also been numerous studies surrounding the cost of defects and how it varies depending on when in the lifecycle they are discovered. The consensus, first reported on by Barry Boehm in the 80’s, is that the later in the software process a defect is discovered, the more expensive it becomes. There is some debate as to whether or not this is a hard and fast rule, but suffice to say, defects are rarely free to fix. Agile has cropped up to try and address some of these issues. It has certainly helped. A more recent report on software project failures puts it at 50% – 70% of projects are finishing on time and budget, with the projects using more agile techniques in the upper end of the spectrum. Agile practices are successful in reducing the failure rate by, in part, making the team test the development more frequently and elicit requirements more often. This is wholly dependent on your team’s ability to gather, record, and test requirements efficiently.
Here are some simple techniques that you can slowly introduce to decrease the defect rate due to poor requirements.
By John Cavazos, Senior Performance Test Engineer
If you recently installed a new OS onto your brand new high-performance server for production or even just for performance testing and are not seeing the results in your application you were expecting, there is likely a good explanation. If you have not tuned your server from the default setting, you are likely hitting some of the default limits of the OS. Regardless of what OS you have installed, it is still necessary to tune the server to get the best performance out of your machine.
Typically, this job is performed by a system’s administrator. However, in smaller companies or start-ups that may not have such a support role, the task may fall to others. If that’s you, and you’re looking for a little guidance in getting it done, keep reading. By no means is this an exhaustive set of tuning that can be done, but more a general guide to the most common settings that we typically tune for performance testing. This article will also be limited to Linux systems for space and time considerations, saving Solaris and Windows for later discussions to come.
by Rema Sreedharakurup, Senior Quality Assurance Engineer
It seems today that no discussion about software development is done until someone brings up ‘Agile.’ And for good reason, as Agile is all about agility – an Incremental and iterative delivery model which focuses on business value, encourages flexibility and rapid adoption to change. It’s based on collaborative efforts to achieve common goals.
The agile principles & values are very short and sweet, but in the real world, Agile is not that simple. Remember, it’s a collaborative effort that requires people – Developers, Testers, all the folks involved in the product development who are trying to perform their best in this transforming phase and get things DONE… all the while trying to get accustomed to new processes that get introduced to improve delivery, and where output is expected quickly. Though, as Albert Einstein once said, “in middle of difficulty lies opportunity.” Hence for me as a Test Engineer, this transition to Agile opened up a wide array of opportunity where I could wear many hats – as a developer, as a tester, a customer advocate, a constant learner, and much more.
Here’s how I see each of these hats fitting my head, and perhaps yours, too. Read more
by Benjamin Frech, Senior Software Engineer
Increasing a team’s productivity is a ubiquitous goal. But, how do you achieve that goal?
To many, it may be tempting to use velocity as a measure of productivity, but the value of a story point can vary significantly over time. Once you get past counterproductive answers like, “let’s inflate all our story points by 50%,” you’re left with options that can actually increase your team’s productivity or, at least, facilitate collaboration between team members.
In my experience, the top two methods of truly increasing productivity involve creating a comfortable work environment, and addressing technical debt and developer concerns. Read more
by Troy Rudolph, Senior Software Engineer
The market certainly offers many test automation tools for testing in a variety of environments, but there is a relatively new one I particularly like for automated testing in web applications. While Codeception is intended primarily for testing PHP applications, the UI testing tools may also be used to easily create automated tests for web applications, as well.
In Codeception, these tests are referred to as acceptance tests. These tests are based on the notion of Behavior Driven Development (BDD). Essentially, BDD states that tests should be specified in terms of desired behavior. In the case of BDD, the behavior described is that of a user (or tester). To learn more about BDD, I would encourage reading the inventor’s article at http://dannorth.net/introducing-bdd.
A simple test might look like… Read more
by Chris Durand, CTO
Are you looking for new way to solve pressing technical problems? Well, I’ve found one, and I recommend it for anyone looking for a fast way to start a problem-solving process. I call it the “straw man” technique, and it’s pretty straightforward:
- Think of the simplest possible solution or partial solution for a problem. This is the “straw man.”
- Discuss with your team reasons why you think the solution will work or not. My favorite question to ask is, “Why won’t this work?”
- Modify the straw man accordingly and repeat until you have a useful solution.
That’s it! I find myself using the straw man technique often; you can, too. Imagine you and your team are looking for answers on how to solve a challenging problem or implement what appears to be a complex feature. Think of a super simple solution that addresses at least 50-60% of the problem and ask the team why it won’t work. Then iterate from there until you reveal an acceptable solution. Read more