Tuesday, 11 February 2014

Agile, Agile and one more time Agile!

What should everyone working in Agile environment realize when in the process of developing product? And particularly what role plays QA in the Scrum.


Why Agile? It is simply keeping everyone in team on track to deliver quality product in the set time-frame. Flexibility is the primary characteristic of this method. It is so nice not to have to change routine, but reality check says that we have to be flexible. There are so many benefits from having this quality. Let’s talk about it.


Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen tight interactions throughout the development cycle. (Wikipedia)


In a nutshell – having this dynamic method implemented in the process of developing software lets teams stay focused on delivering the product while responding and adapting to business changes throughout the process. As a result of practicing Agile methodology during production the associated risks were effectively reduced and the software systems have much better addressed the business and customer needs.


Thereafter, everyone who involved in the project including QA needs to adapt to this style of workflow and mindset in order to achieve better results. Let’s see how Agile and Quality Assurance really fit together.


Traditionally, QA role was only involved at the end of the project once all coding was complete. Typically, QA would be given a requirements document against which they wrote and executed test cases. However, in Agile QA’s responsibilities go further beyond just executing test cases and reporting bugs.


Agile Quality Assurance involves the whole team. They bridge the gap between users and developers. Quality Assurance should be fluid and agile themselves, focusing on techniques to optimizing a new strategy to testing. Everyone is responsible for quality. Team collaboration can best understand and discuss new requirements,


The following facts show how the QA role carrying through agile testing:



  • Take part in estimating stories;

  • Collaborate with customers and developers;

  • Help keep vision and goals in sight;

  • Provide feedback quickly;

  • Study user requirements;

  • Help defining status done;

  • Plan testing accordingly testing strategies;

  • Tester and Analyst roles merging;

  • Automate regression testing.


QA is an important part of the team and is involved in the project right from the very beginning. While QAs still write tests and report bugs, they also support many other roles and responsibilities on the team. They are an important part of the team and are involved in the project right from the very beginning.


It was proven that the most efficient way of developing product is when everyone in team collaborates remaining focused on the same goal. The mechanism of this development style succeeded and it is important for the sake of the customer satisfaction consider it.


Agile methodology is seeing increasingly wide-spread adoption. There are solid reasons for it. So, go Agile!



Agile, Agile and one more time Agile!

Saturday, 8 February 2014

What Does Software Quality Assurance Mean?

Quality Assurance (QA) focuses on ‘prevention’. It covers all software development processes. This includes monitoring and improving the process, ensuring that standards and procedures are followed, and that problems are identified and resolved. QA encompasses processes such as code reviews and release management. It is the processes followed by people within the project, Project Managers, Analysts, Developers, Testers, etc. to prevent problems and assure quality. A subset of Quality Assurance is Software testing. Software testing focuses on ‘detection’. Testing is one process that helps ensure software quality. It is the process of examining software components in order to find errors.


To understand the concept of Software Quality Assurance in Software Development step by step, consider the following 5 steps: Design, Coding, Testing, Deployment, and Post-Release Maintenance. These are the 5 main steps of the development of the software.  The first step will be the “Design” of the software. The designing should being with the client’s need make sure everything is there before you start the next step. There are two design deliverables are usually required, the external design and the internal design. “Coding” is the longest phase of the software development life cycle is implementation as this is when code is produced based on the deliverables of the design phase. For a developer, this is the main focus of the life cycle because code is produced. Implementation may overlap with both the design and testing phases. Then comes the “Testing” when the requirements are validated by ensuring the code produced in implementation is actually addressing the gathered needs. Next is “Deployment” which is also called release of the software. And this is when software delivers to the customers and gets installed. At last “Post-Release Maintenance” that only takes place if any error takes place after the software has been released and installed. The Post-Release Maintenance should be avoided since the cost of post-release maintenance’s cost is 67% of the total cost.


Software Quality Assurance is comprised of the following three activities:



  • Verification Testing

  • Validation Testing

  • Establishing and Enforcing Test Procedures


Verification Testing focuses on the testing of ‘ideas’ and does not involve executing the code. The first four QA activities in the chart are verification activities. Verification is a process of examination or review of the work product at the beginning of the SDLC.


Validation Testing is the assurance that a product, service, or system meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external customers.


There are two main testing techniques that are used which are following Black box testing and White box testing. The Black box testing technique is where you treat the application as a black box by inputting data and observing the output results. Black box testing is not based on any knowledge of internal design or code. This testing is performed by Black Box testers. Another name for black box technique is Specification Based technique since tests are based on external requirements and functionality. The White box testing technique is based on knowledge of the internal logic of an application’s code. Another name for white box technique is Structure Based technique.



What Does Software Quality Assurance Mean?