Reinventing QA Processes in Agile DevOps

#Article
#Software Development
#High Tech
February 24, 2017 6 min read

When thinking about software development, there are a couple of activities which haven’t been given enough attention; these are the documentation and process of testing.

Documentation being text that gives an explanation as to the workings of a program or how one would go about using it, coupled with illustrations to help convey these instructions in pictorial form.

QA Processes

The problem is that developers regularly find out that documentation isn’t always useful. A lot of the time documentation can’t even be trusted as it doesn’t line up with the exact code being described and is often out of sync. Dynamic projects that are constantly changing are a good example of where documentation and testing don’t always work as planned.

When software testing is considered, developers can often feel it’s the job of testers to try and break the coding that has been crafted over many hours. Therefore, testing becomes undervalued as well. However, the Manifesto for Agile testing carries one broad guideline: to place greater value on working and functional software above comprehensive and coherent documentation. This actually results in testing of agile projects of DevOps to increase in value.

The concept of agile development plays out by testing first as opposed to testing upon completion of conventional development. Pretty much all DevOps situations utilize project management in an agile fashion to promote increased levels of synergy between an industry technology department and users. This helps to produce and provide software to meet a business users’ dynamic requirements, effectively constructing a continual arterial DevOps software conduit between yourself and your consumer. Get to know Innovecs’ expertise and resources in various industries that are at hand to help develop complex software solutions through software testing and outsourcing services.

Having a working and stable delivery conduit between you and your customers creates a DevOps way of cooperation between teams who are involved in the delivery of software. Other benefits of this are reduced costs, less time being taken up and the risk involved when delivering changes in software as it allows for more cumulative updates to be provided for applications under production. Ultimately this results in teams being able to produce software in shorter cycles, making sure software can be effectively released any time.

Agile Development

In agile development, testing isn’t seen to be something that is separate to coding, but more as an important part of software development. The process of going through testing and putting together coding is done cumulatively and co-actively which means features are given a chance to evolve and change depending on the requirements of your customer. Testing in an agile fashion encompasses all considered variations of testing that includes unit, load, functional and performance tests. You can consider Agile testing to have four quadrants:

– Quadrant 1 being tests of a technology-facing variety to help the development of guiding, such as API, unit, components and web services tests. These tests, regularly associated with test automation, help improve upon product design.

– Quadrant 2 includes tests in a business-facing manner which also help guide development. These tests are for functional, prototypes, story and simulations to make sure a piece of software is right for the business.

– Quadrant 3 also covers tests of a business-facing manner, but this helps to evaluate the product. These tests cover exploratory, scenario-based, usability, user acceptance and alpha or beta tests. These can come in the form of demos which have been designed to absorb feedback from real users. These tests are considered to fall under testing in a manual fashion.

– Quadrant 4 involves tests in a technology-facing fashion to also evaluate a product. These tests are load, stress, performance, scalability, security, compatibility, memory management, maintainability, infrastructure, data migration and recovery tests. Such tests are usually automated.

Agile Testing Quadrants is simply a taxonomy for teams to follow to help plan testing phases and make sure there aren’t any rules set in stone about which tests belong in which quadrant. Get to know more about our QA expertise in the case study on Search Data Platform we’ve created and tested from the ground up.

Dividing tests into four quadrants helps teams create strategies to see if appropriate skills required to conclude each type of testing are present, or if the right software/hardware/data/test environments are present. This makes workgroup communication much easier by having a tool in test management to allow teams to work side by side at all times.

DevOps teams utilize testers to influence the best practices available when considering agile testing, test-directed development, and continuous integration in order to speed up the testing QA processes. Automating tests helps in this process, i.e. GUI, integration, API and the testing of units. Agile testing experts prefer automated unit and component tests over other tests seeing as these show which present the best ROI (return on investment). Should developers do test-directed development, a unit test program which has been written is required before the writing up of application code.

However, a unit test in test-directed development is usually designed to continue failing until sufficient application code can be written to meet the prerequisites of the test. Having the test setup beforehand makes sure developers comprehend the behavior needed from the unique code in question. TDD unit tests can be easily automated as they have the ability to be kept and utilized as backsliding tests whenever required. A lot of agile DevOps teams choose to go for approaches that involve testing first as well as doing testing in a bottom-up fashion for unit and components. Such approaches mean testing can be repeated incrementally as components of software get produced.

Automating tests works by having a larger amount of tests running over and over to ensure an application doesn’t falter when changes are made. The majority of Agile DevOps teams execute the automated tests as part of a continuous assimilation process of building. Many other DevOps teams ensure the efforts in automation is simplified by relying on the test automation framework that is made from sources of test data, function libraries and other recyclable modules which can piece together like blocks when building. These building blocks ensure teams have the capability to create automated tests distinct to differing businesses. For example, a specific automation framework to help automate GUI tests might be required if the end user expects to see a speedy and intuitive user interface.

User Experience

These frameworks usually have the following factors:

– Custom Code: Such code is specific to a team’s needs. It includes abstractions for talking with view-level or page objects, checking a database, talking to web services, etc.

– Framework: Robot and Cucumber are a couple of frameworks that can be used to help teams write code to focus on a problem that’s being tested. Sometimes this helps the test to be recycled across different apps, web browsers, etc.

– Driver: A driver can speak with an application’s UI. For example, Selenium WebDriver contains different drivers that can individually manipulate different web browsers such as Chrome, Microsoft Edge, and Mozilla Firefox among others.

– Application: Or in other words, the UI technology itself being tested. For instance, a native Windows or iOS desktop application, web browser, etc. 2016 showed a bulk of projects were being executed in an Agile way and nearly a third of those used a customized Agile version. This also helped show that a number of organizations didn’t have the right amount of automated tests or perhaps that they ran out of the time needed to run all required tests.

YOU MAY ALSO LIKE:
October 22, 2021
Svetlana Rumyantseva, Project Manager: “I want to see happiness around. And it is usually in small things”
Who did you dream of becoming as a child? I dreamed of becoming a lawyer and defending people’s rights. The most challenging question for me has always been whether I could defend the guilty. I haven’t come up with an answer, even after graduation. Back in the day, I wanted to be a lawyer to uphold justice. How important is family support in becoming an individual and a professional? Were you supported in choosing a career path? Support is critical. Its impact is difficult to overestimate. I realized this, probably at the age of 27. Since I wanted to be a lawyer, I went to study at the law academy. At the end of the fifth year, I realized that I would not be a lawyer. Politics and public administration seemed more interesting to me. My family didn’t stop me; it was me who thought, “Why did I study at all?”. Then I continued my studies, and after graduate school, I did a degree in a completely different specialty — political science. Obviously, I am not a political scientist now. However, during my postgraduate studies, I began to study management not only in the state but also in the project type, which I really liked. Now I want to thank my family, who did not reproach me about the time spent, telling me something like: “You’ve wasted ten years, both specialties are no longer needed, and you are in the middle of nowhere.” Therefore, support is vital. And even if support is not active but passive — being able not to interfere with the development of others. What qualities do you think are most important in your profession? It’s sociability and everything that no one reads in the classic “proper” resume. Stress resistance, purposefulness — these are the qualities. On the one hand, this is a pun, but in fact, a lot is built on those features. Also, I would point out multitasking and the ability to react quickly to circumstances. If something is already out of control, you must first respond to the problem, and only then be afraid that something may not work out. I adore myself for being optimistic. I vote for giggling once more than falling into depression, which no one needs. Practice shows that it is difficult to get angry, despair, and give up when someone smiles and supports you. So is this your superpower that helps you, the team, and inspires other people? Maybe. It’s always good to have someone around who can say with a smile, “It’s no big deal. We’ll figure it out together.” If I can be this person for my surroundings, that’s great. What does your typical workday look like? Sometimes it seems that all working days are the same, but it is nothing like that in reality. Every day is about communicating with numerous people, solving problems, questions, planning for the future, and monitoring what went wrong. Of course, all this is mixed with letters, reports, processing and writing documentation, maintaining contact with all stakeholders. In other words, each of my days is very different and very similar to the previous ones at the same time. What challenges do you encounter in your daily work? As a rule, the most difficult is the challenge of the communication type: to agree, encourage, persuade, approve. Negotiation issues are the most difficult, as they often lie in different areas, for example, the team or the customers. It is imperative to understand everyone and reach a win-win condition. Generally speaking, what is the most difficult thing in your work? Having time and choosing a quality solution in specific conditions. The main task of the manager and me, in particular, is to create the most productive working conditions so that everything is done under the agreement. Sometimes it is necessary to do it before a specific time, on a certain date, or to ease the team’s workload, giving up everything and paying attention to a particular issue. In addition, I have to call everyone, discuss everything, help, and so on. Therefore, the most difficult thing is to squeeze in 24 hours. What helps you in this? It’s the priority system: first, we do the important thing, then comes another important thing, but the one that can wait a bit. Often, tasks that directly affect customers are automatically prioritized. Likewise, the same pertains to controversial issues within the team. I try to plan the day in a way that I deal with work blockages by noon and then do the rest. Therefore, prioritization is our everything. And what is most interesting in your work? Each challenge is exciting in its own way. The most remarkable people constantly surround me; thus, communication is the most complex and exciting. Daily contact with the team and stakeholders always encourages self-development because I learn a lot from them. I am driven by challenges, the process of solving them, and reaching the result. And how do you feel when you see the result? This is the feeling of Zen. We move toward it every day, solving some problems along the way. I rejoice when I see the results of my work and manage to help the team and clients; when the team flaunts its achievements, I see the clients’ positive emotions caused by us. Every little victory is very inspiring. How do you assess the cohesion of your team? How does this affect the result and quality of the task performed? We have a very friendly team, and I think that’s crucial. There are managers supporting work processes in the team purely, but I favor the atmosphere in the team that is family-like and friendly. When you work in cohesion, everyone has a common goal, vision, and one desired result. Unity means you understand each other right away. Everyone knows each other’s thoughts, who does what, what one enjoys and wants. And this motivates me to get things done, help instead of blocking or setting someone up. I like that we have such an atmosphere throughout the gaming division, regardless of the project. Is there a practice in your team where everyone can freely speak their minds? Sure, but certain filtering must be considered, of course — turning information into positive. If it is critical feedback, then it should be constructive. Everyone is mindful of politeness and diplomacy. We focus not only on the result and teamwork but also on personal growth, so everyone is happy to receive constructive feedback on the work. In your opinion, how will technology change your profession in the future? Hopefully, for the better. Developing new games, in any case, will require constant communication and creativity, so it would be nice to see technology help engage the team. Lack of communication can be particularly acute in the distributed and remote teams. I hope that in the future, thanks to technology, we will see: An opportunity to invest less time in the development of new content and have more time for learning, self-development, and family; Technologies becoming lighter and more intuitive for use by both developers and non-technicians; Remote mode getting more smooth and convenient. I totally would like to see positive changes in the remote mode, not only maintaining but also improving the team’s engagement regardless of location. I’d be interested in seeing what it would look like in 5-10 years. But I am positive that communication will remain in the foreground. How should one start learning your profession? I would advise being curious and trying to stay like that all the time. It is essential to read, listen, communicate with people in this field as much as possible. This is how theory is developed as a basis for the practical use of skills. For example, I started my journey as a project coordinator in website development, and in my free time, I practiced making prototypes and mockups. First, I recreated popular services and then came up with my own schemes. Therefore, there are three pillars: curiosity, theory, and practice. What are you studying now, and what would you like to learn in the future? Today I learn everything from my team. Since I am not a technical person, I have an open field of new knowledge and skills in front of me, and I am happy to learn how everything works. In addition, project tasks encourage me to deal with a variety of tools. I have a lot of interesting work ahead that is related to the marketing and analytics of the product we are working on. I have to learn a lot of new things. But this is awesome. In fact, there are a million areas where you can (and in a certain period of time — should) develop. That is, the novelty does not scare you? It is very unreasonable to think that one can know everything. On the contrary, it is essential to be clear about how little you know because that is what motivates you to develop and constantly grow your value. Is there a work/life balance and clear boundaries between work and life outside it? I have no clear borderline between work and life. I can even say that I’ve never had one. Furthermore, I often think about work at home, on weekends, and during vacation. It isn’t easy to let it go because I also plan everything at home. Work and private life always intersect, and so far, I can’t say that it bothers me very much. I may want to draw the line someday, but now it seems difficult to do so for a managerial position. Sometimes a reaction to external or internal issues is required at a very unexpected moment. Do you have new hobbies/hobbies/activities since joining Innovecs? Probably not. However, I assume that the Innovecs’ environment encouraged me to move from dream to action. Thanks partly to my colleagues, I decided to buy a motorcycle. We took trips with our Moto Community, and it was incredible. It seems that if it were not for this motivation from the Community, I would not have dared to buy a motorcycle this moto-season. Innovecs is great no matter what you do and what you would like to do. A variety of Communities constantly is a call to action. You can’t be inert. What inspires you? I’m looking for inspiration in the results. They motivate me to move on to new achievements. I can’t stand still, and I feel bad if nothing happens for half a day. In general, I am very grateful to my colleagues because if I seem to give up at a certain point, the team comes with results and achievements and invigorates me. It’s a kind of perpetual motion machine. What motivates you to stay at Innovecs? People and growth. At Innovecs, our gaming division is hugely passionate. I want to come here, and I don’t want to leave. Which of Innovecs’ corporate culture do you like the most? Innovecs culture is based on people. Our SPECIFIC DNA perfectly reflects a focus on the people we are looking for in teams. Working at Innovecs, I feel that the team, colleagues, and I are treated as individuals with their own interests in the first place, but not as a resource that can be replaced (although business is business). For me, this attitude is important, because we spend most of our time at work. What makes you a happy person? A little of this and that, and everything that does not kill. I love life. I have great friends, a work environment, a family, and I have a hobby — all this inspires and makes me happy. What do you dream about today? Right now, I dream of going to the ocean for the New Year’s celebration. In general, I dream of always being able to fulfill my desires. And I want to see happiness around. And it is usually in small things.  
Interview

Another interesting point about 2016 is that more than 70% of customers utilize automation tools. Using a number of automation tools meant some set plans, test scripts, etc. resulted in efforts in test automation being negatively affected causing serious maintenance problems. When a test automation is accurately designed and built, agile teams find it easier to use only one instead of some them to find and fix test cases.

Manual testers are still required in agile DevOps projects so as to partake in exploratory tests while the automated test runs. As well as looking over and fine-tuning an automated test, exploratory testers are of utmost importance on projects of DevOps because developers, as well as other members of the team, can often become complacent when following an already set-out process.

A speedy consensus amongst self-organizing Agile teams is often desired. Exploratory testing helps combat the potential devolution of team collaboration by letting a single team member ask difficult “what if” style questions. Automated testing can always run alongside exploratory testing because of its adaptable nature. This results in DevOps projects that strive to deliver software rapidly, not having to be slowed down.

4.98 5.0
17 Reviews
LET’S TALK