Archive

Monthly Archives: May 2018

What are the extreme programming advantages and disadvantages?

Books

Images

My Rating

Extreme Programming Explained (Click for reviews on Amazon)

Extreme Programming (Click for reviews on Amazon)

What is Extreme Programming (XP)?

Extreme programming is basically software development procedures designed and created to improve software quality as well as the ability it has to adapt to the ever-changing needs of users of that particular software.

The first to develop the Extreme Programming Methodology was Ken Beck around the mid and even late nineties. At the time, software used to manage the payrolls in large organizations known as Chrysler Comprehensive Compensation Systems is what he was working on. 

"Extreme Programming Explained" (Click to see reviews on Amazon) is a book he published in October 1999 and the book explains the entire methodology to others.

Extreme Programming and Agile processes of development have a few similar characteristics. One of them is that they both aim at producing frequent and iterative small releases during the course of the project. 

This allows both the clients and team members to review and examine the software project's progress during the entire process.

This type of programming prescribes a set of daily practices that developers and managers should adhere to. The main objective of these practices is to encourage and embody some particular values.

Experts believe when you when you exercise these practices, they will inevitably lead to development procedures that are much more responsive to client needs while still creating and designing software that is of better or similar quality.

The 5 Core Values of Extreme Programming

Here are the five core values:

  1. Communication

    Software development is more or less a team sport and no team can function effectively without proper communication.

    Team members need proper communication to be able to transfer knowledge effectively between one another. Extreme Programming stresses the importance of proper kinds of communication.
  2. Simplicity
    XP is all about using the simple things that have proved to work. Why simplicity is a major factor to avoid wastage so as to only do the things that are absolutely necessary.

    An example of the simple things XP stresses over is keeping software designs as simple as you can which makes maintenance, support and revision so much easier.
  3. Feedback
    Constant feedback concerning the previous efforts of the team allows the team to clearly identify the areas that need revision as well as improvement.

    Constant feedback also greatly supports simple designs. Your team builds what they need to build, gathers constructive feedback on implementation and design, and then make adjustments to your software product as you move forward.
  4. Courage
    Kent Beck in his book "Extreme Programming Explained" defines courage as the preference of action based principles whereby the results are not harmful to your team.

    For one to raise organizational issues that involve the effectiveness of the team. For you to stop doing the things that don't work you'll need the courage to try something else. Finally, you'll also need courage when accepting and acting on feedback especially when it's negative.
  5. Respect
    If your team members want to communicate with each other effectively, accept as well as provide constructive feedback and work with each other properly, and cohesively work together, then they'll need to learn how to respect each other as a whole.

Advantages of Extreme Programming

Here are the advantages of Extreme Programming:

  • Robustness: The fact that the power of simplicity is leveraged is a big advantage. The way developers take their time on small iterations and software pieces resembles completing jigsaw puzzles.

    This approach creates software that works faster as well as one that lacks many defects. Bug detection is guaranteed when regular testing is done during the development stage.

  • Resilience: When requirements remain static then the traditional means of programming are advised.

    However, that's not how the real world operates. Things like new business opportunities completely change requirement dynamics.

    This type of programming accommodates requirement changes by getting and storing the user stories from the start and also from the constant feedback during the course of iterations.

  • Cost Saving: XP helps in trimming unproductive activities in order to reduce frustration and cost. Needless paperwork is avoided in order to allow developers and programmers to concentrate on coding instead of needles time wasting.

    The fact that changes are made based on client feedback during development stages keeps overall costs low.

  • Employee Satisfaction: The fact that XP reduces the importance of individuals during the development process helps increase employee retention and satisfaction.

    This type of programming is all about value-driven approaches which set fixed work schedules without concentrating on overtime.

Disadvantages of Extreme Programming

Here are the disadvantages of Extreme Programming:

  • Difficulty: This is technically a tough software practice so convincing developers and programmers to adopt it won't be easy. It requires customer devotion as well as lots and lots of team discipline.

    Its life cycle has very many different changes which mean that those who manage this type of software projects are bound to be faced with numerous difficulties.
  • XP Relies on Very Many Factors: This is basically a minimalist process. Its lack of vigor is made up by the number of practices involved.

    The project has a high risk of failure if something goes wrong. This happens to be a very big disadvantage when it comes to this type of software development. The fact of the matter is that extreme programming is a highly risky endeavour.

  • Code Centric: This type of programming methodology is code-centric rather than design-centric. This can prove to be very tiring when larger software projects are involved.

    XP is also very time consuming and has a lot of refactoring involved in its procedures. Test coding is also quite difficult in this programming process. This is largely due to defects that have not been documented well and codes that haven't been structured well enough.

Conclusion

External Programming has made a very big contribution to the software development world. Many teams involved in agile projects use very many different types of tactics and helpful methodologies.

This is one procedure that is highly useful for all the software developers and programmers in the agile realm. The fact that it focuses on practice excellence makes this procedure one of a kind and if you're involved in this type of software development then you should definitely try out this procedure, You won't regret it. And now you know.



Difference between a Waterfall Iron Triangle & Agile Triangle?

What Is The Traditional Iron Triangle?

What is the difference between the Waterfall Iron Triangle and the AgileTriangle? Let's start by defining what the traditional iron triangle really is. We all know that software projects in agile always have goals.

These goals include; what the project is expected to produce, the project's delivery deadline and the budget of the entire process. Managing these three components can prove to be quite difficult sometimes.

In 1969, Dr. Martin Barnes proposed the original iron triangle. In this approach product development is done using a waterfall approach which means that time and resources are variable while the scope is fixed.

Software teams using this approach will have to determine the project's scope by defining product requirements before they are able to start the project.

The schedule and resources are variable and are determined based on the fixed scope, The iron triangle's main objective is to provide software product teams with appropriate information in order to allow them to help the business by making effective trade-off decisions. 

An example is when teams are halfway through the project and they come to the conclusion that they might not hit the release date while using a fixed scope, the only options they have available to them when in this scenario is;

  1. Time (accepting a later release date) ​
  2. Resources (an addition of other workers to the project).

What Is The Agile Triangle?

The Agile Triangle is basically somewhat of an extension of what the traditional Iron Triangle is.

Jim Highsmith, the Agile luminary is originally the one that conceived this idea, where he claimed that the dilemma many agile teams are usually caught up with is that on one side they're being told to be adaptable, flexible and agile while on the other side they're being told to conform to Iron Triangle's pre-planned framework of cost, schedule and scope. Essentially they're advised to being as flexible as they can be.

Teams in the Agile realm are made to concentrate on the project's release rather than letting the Iron Triangle principles restrain them. So, using Jim Highsmith's school of thought, the Agile teams' main objective is to release the product. Everything else comes second to that, especially when it comes to Iron Triangle constraints.

The Agile Triangle collapses the Iron Triangle's three end points into one vertex The rest of the end points left such as value and quality will be the ultimate goals' definition, mainly because they need the most attention due to the fact that stakeholders usually feel that they're the most important. The Agile Triangle is trying to bring the traditional Iron Triangle way of thinking into the future.

Why The Need For The Agile Triangle?

The need and importance of the Agile Triangle are best described by Jim Highsmith when he stated that agility is all about being flexible when delivering customer value, which means that measuring performance using the traditional Iron Triangle principles of scope, schedule and scope can't possibly be effective if that's what you want to achieve.

If you want to be the most flexible you can be then focusing on quality, value and constraints, which is essentially the Agile Triangle, is what you'll need to conform to.

The difference when Agile Triangle methodology is practiced can be seen as follows:

  1. Scope Versus Value
    The scope of the project is important. It defines as well as outlines your project. One would think that if you are in Agile management your project scope should also include value, wouldn't you? In fact, your project value includes the scope at different levels and not just at the definition. Even though agile management can offer a lot of flexibility, too much of it isn't always the best thing.

  2. Schedule Versus Constraints
    Project schedules are usually fast and hard rules that you'll need to stick to, however, change will always occur. Defining constraints will help you with schedules and timelines within that particular project. The Agile triangle strategy concentrates on redefining scheduling rather than utilizing constraints.

  3. Cost Versus Quality
    Is the project's quality really represented by how much the project costs? The agile triangle school of thought is that quality should not be the project's end and only result. You should rather be concentrating on producing your desired quality and effect using flexible overall cost structures. Simple as that, so to speak, however, it's usually never easier said than done.

Is The Agile Version Better Than the Conventional Method?

As alluded in the previous sections of this article, the project requirement in traditional projects is determined upfront with a precise level of detail. Fixing a particular scope, time and cost help in setting your project up for failure.

This is due to the fact that when your timeline begins to approach its end or the budget looks to be running out you'll inevitably be forced to have to de-scope something which means leaving inventory behind and delivering less than what was originally specified upfront.

The principles that the Agile framework uses turns all this upside down, by avoiding to concentrate on specified upfront details which usually cause the unexpected end results or products that deliver less than what they were supposed to. 

The main objectives here is producing a vision that is well defined, decomposition of that vision into themes and then elaborating more specific feature details based on those themes' priorities.

Finally, the features with the highest priorities turned into stories while the stories with the highest priority turned into technical designs which all this then helps in the production of properly working software. 

This is the major reason why most IT professionals in Agile software development think that this technique is the better option.

Conclusion

When it comes down to it, Agile triangle edges out the Iron Triangle as being the better and more effective management and working approach in today's software development world. However, if you can fully understand both the approaches then the better for you for that will only help to make you a more efficient worker. Hopefully, this article has opened your eyes to something you may not have realized just yet.

What is Most Important According to the Agile Manifesto?

Introduction

In February 2001, a group of renegade software developers met in the mountains of Utah and came up with the Agile Manifesto, a set of rules and principles that would go on to revolutionise how software is developed at the world’s leading technology companies.

Today, Silicon Valley’s influence is pervasive, and a lot of the success is easily attributed to the wide-scale adoption of the Agile Manifesto.

Agile is no longer just for tech geeks, and we, lay people, can no longer afford to be ignorant about it. Agile principles are creeping into wider use in all other industries, for example they have recently been adopted at companies like Walmart and Verizon.

What is the Agile Manifesto? 

In the time before agile, software development was a very formulaic and step by step process.

When someone decided that they wanted a new software created, they developed a very clear specification of what they hoped to see. Developers then worked backwards from that list come up with the necessary steps in the development process.

They then set about the process of creating the software. This process was largely stifling and slowed the pace of innovation. Critically, it had a high failure rate!

Recognising that something needed to change, leading developers organised a three day retreat in 2001 to brainstorm ideas on how to improve the software development process.

The Agile Manifesto is what came out of that retreat. It was signed by everyone who attended and codified the four values and 12 principles that would inform the new way of developing software in the future.

What are the 4 values of the Agile Manifesto? 

The Agile Manifesto begins by outlining four value statements that indicate relative priorities for agile developer.

Each value is two sided statement, on the left of each statement are the things that are more valuable, on the right are the things that are regarded as less important to achieve.

These values are:

  • Individual & interactions, over process & tools
  • Working-software, over comprehensive-document
  • Client-collaboration, over contract-negotiation
  • Response to change, over following of a plan

No one value statement is described as being more important than the other. All the statements are underlaid by the same aspiration, to prioritise output over process in developing software.

The values in the Agile-Manifesto are designed to create a software development process that optimises functionality for the end user rather than having a perfectly laid out and compliant development process.

For example, the fourth value makes it very clear that if there is a pre agreed plan and events outside of this plan happen, you have to ditch the plan and continue developing the software based on the unplanned events.

What are the 12 Agile Manifesto Principles?

The most important part of the Agile Manifesto are the value statements. The twelve principles were written as logical conclusions that follow from those values. 

They provide you as the agile developer, additional clarification on how the prioritisation defined in the value statements works in practice. Each of the 12 principles speaks to a different stage in the project-management cycle. You cannot help but be impressed by the precision and simplicity of the principles.

One principle is: Working software is the primary measure of progress.

All the other principles are equally brief and unambiguous. If you are working in an agile team, the principles give clear directives on how success is measured, the acceptable means and frequency of communication (in person and daily), and the pace of work. Crucially an agile, project is never done, and the pace of work should stay high.

What is agile SAFe? 

One obvious limitation of Agile, is the principle we referenced at the end of the last section: Agile processes promote sustainable development.

The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

Working in indefinite high calibre process is a very tough ask. it would be impossible for any human team to work indefinitely and to a high standard without quitting or dying! It is for this reason that The Scaled Agile Framework or agile SAFe was developed.

You can think of agile SAFe as the version of Agile that people can actually do! It is a framework for delivering excellent outputs quickly and sustainably. It is agile, but with a reasonable bound on the time and effort expected.

It is the adaptation of the Agile Manifesto to creating agile SAFe that has enabled the increasing popularity of agile in mainstream business environments.

This is because agile SAFe is written in the language of business and can be time and budget bound. Crucial factors for evaluating the success of a commercial project.

What are the core values of SAFe?

There are four core SAFe agile values:

  • Alignment
  • Built in quality
  • Transparency
  • Program execution

SAFe is more of a project manager’s interpretation of agile. Perhaps unsurprisingly then, while you can list the four values as four short words and phrases, the explanation behind each value runs into a few paragraphs in length.

The essence of the SAFe agile core values is that there must be alignment of strategy and operations for any SAFe project to succeed.

Everyone must be on the same page. Regarding quality, all inputs should be of high quality. This makes sense, you cannot design high calibre products with bad inputs, hence built in quality.

The third value of transparency is about having frank and open communication on the project team, and maintaining visibility.

Finally, the fourth value of program executions, means that SAFe teams should retain a focus on doing.

Conclusion

We hope you enjoyed learning more about the Agile Manifesto and the core elements driving the approach. Agile is increasingly the working method across several businesses, including in non-tech teams.

This means it was really important to write this as an entry point for the average reader who might soon be working in an agile environment, or studying Agile topics, like the Agile Triangle, and many others.

Let us know your thoughts on the Agile Manifesto in the comments section. Do you think agile is effective as a general project management tool, or do you think it works best when restricted to software development projects? If you enjoyed this article, we ask you to please share it widely.

Need Certified Agile Tester Exam Sample Questions?

Where can I find Certified Agile Tester (CAT) Exam sample questions? 

Might this be a question you've been asking yourself lately? Well then, you're in luck, for you happen to be at just the right place.

This article will effectively answer that question and much more. The Certified Agile Tester Course is organized by the International Software Quality Institute (ISQI) of Germany.

Unlike most of the Testing Certifications such as ISTQB and the like whereby the course material is normally prepared by the training institutions involved, with the Certified Agile Tester, the material is prepared by the ISQI itself. 

This, in turn, means that no matter where you're sitting the exam, the course material will be the same for all the course takers.

The course material the International Software Quality Institute will provide you with will have everything you need, from the Agile Methodology Manifesto introduction to sample questions.

However, if you are looking for more sample papers, than are provided on the course itself, the selection of sample papers are quite limited, when compared to other qualification like the ISTQB Agile Extension, however, you can contact exam providers, like SQS, and request some sample papers.

What is the ISQI Certified Agile Testing Certification (CAT)?

Agile Testing slightly deviates from the more traditional regimented tests. This is because it needs to be adaptive and flexible in order to effectively adapt to the frequent feedback iterations.

The Certified Agile Tester by ISQI, commonly known as "CAT", has come to be recognized, by the software test professionals looking to work in the Agile environment, as the primary international qualification. 

This certification process is a very rigorous one which combines theory and practical exams as well soft skill assessment.

The Certified Agile Tester Exam is split into 3 different parts.

  • Soft skill assessment concentrating on your capacity for teamwork
  • An open question examination that is used to demonstrate your profound theoretical knowledge
  • And a practical section where the testing skills of the examinee are tested.

The paper-based exam mentioned above is separated into 3 phases. The exam's passing grade is sixty-five percent. Participants should at least score fifty percent in both the written and practical exam in order for them to pass.

Non-native speakers, upon request, will be awarded thirty minutes extension.

Will The Agile Testing Book by Janet Gregory and Lisa Crispin Help You Prepare for this exam?

This book is highly recommended and should be read by every agile project tester, mostly because agile projects normally try to avoid specific roles.

The book begins by laying a little groundwork by attempting to effectively define what agile testing is all about.

In the second part of the book, the authors dwell on the organizational changes that will occur after testing while part three is undoubtedly the centerpiece of the entire book.

It is mainly designed around 4 testing quadrants initially conceived by Brian Marick, the co-author of Agile Manifesto. 

Because of these quadrants, Gregory and Crispin are able to cover a wide range of topics which include API, UI, reliability testing, usability, stress, and performance.

The fourth part of the book mainly deals with automation and this happens to be a topic that all agile team members should have in their minds. One section is particularly quite interesting and that is the part of the barriers to automation discussion.

Overcoming the resistance brought forth by these barriers is made easier once you've understood the advice provided in this part. In the final part of the book, the authors end it with a critical success factors short list.

What are the Agile Testing Quadrants?

Quadrant 1: Technology (Support Team Testing)

This quadrant covers tests such as API tests, Unit Tests, Component Test and Web Service Testing. Basically, this area concentrates on Automated testing. The main advantage of this quadrant is that it provides tests that improve the design without affecting functionality.

Its main objective is to use legitimate source code management skills as well as an integrated development environment to improve product quality.

Quadrant 2: Business (Support Team Testing)

This part dwells on Manual and Automated Testing. The tests it covers include Story tests, Functional Testing, Simulations and Prototypes. This quadrant provides you with a way to formulate the appropriate set of questions that drive tests which are aligned to your business.

Quadrant 3: Business (Product Critique Tests)

This quadrant mainly deals with Manual Testing. The tests it covers include Scenario-Based Testing, Exploratory Testing, User Acceptance Testing, Usability Testing, Alpha/Beta testing and Acceptance Testing. It's basically all about effectively evaluating the product.

Quadrant 4: Technology (Product Critique Testing)

The final quadrant mainly deals with Automated testing and the tests it covers include Security Testing, Performance and Load testing and the like.

Manual Testing vs. Automated Testing in Agile

Most experts will agree that both manual and automated training play a big role in the agility environment and are both very important. 

However, the type of testing you're doing is what will largely determine what the best choice will be. In the book by Lisa Crispin and Janet Gregory, they describe four quadrants of testing.

The first one deals with automated test efforts that include component and unit tests. These are usually done by the developer way before the initial code is written. 

The second quadrant may be manual or automated testing and is done by the testers as well as developers. These are functional tests such as prototypes, simulations, and story tests.

In the third quadrant, they involve some manual testing which includes usability testing, exploratory testing, alpha/beta training and acceptance testing.

Automation, in most fields, brings forth the benefit of reduced costs and increased productivity. In the agile software development arena, it's actually pretty vital.

They basically go hand in hand. You can do without manual testing in agile, however, you can't do without automation which in turn makes automation much more important than manual testing.

Conclusion

While this certification builds its popularity, it is a challenge to find as much specific resources, however, hopefully this article has provided some ideas and preparation needed to help you.

This certification was meant for those test practitioners that are looking to enhance their abilities when performing tests involving agile projects The Scrum flavour is the main focus of the entire course of agile development.

It's a course you just can't afford to do without if your a software tester or developer looking to make your way in the agile environment. It's both world renowned and well respected in the agility software development industry.

5 IT Contractor CV Tips to Get Fast Results

Your CV must stand out! This is not negotiable. You only have a
limited amount of time to grab the recruiters attention- the way you fill out
the A4 to represent you can make or break your career.

Companies don’t just hire people just for the sake of having a
large number of people to add to their workforce anymore. Gone are the days
where applying for a job as a contractor was just a cellphone call, followed up
by an interview that determines your fate.

The curriculum vitae, or CV as it more commonly known,  is a document that not only serves the purpose of signalling that you want a job, it is now the yard stick which your competence is measured with.

You can be a qualified and highly professional contractor, and still get it wrong when it comes to how you use your CV to represent your service to the employer.

With opportunities in IT becoming more accessible to everyone, the
competition for career positions in companies is getting harder by the day.

Recruiters have to deal with multitudes of CVs submitted to their inboxes or
physical address. You have to capture their attention with your application.
They literally go through heaps to find a perfect candidate. Here is a stress
reliever for every contractor on the hunt:

Here are The 5 IT Contractor CV Tips to Get Fast Results

01. Personal Information must stand out

This is your name and your contact information, preferably your phone number, website, email address and other communication channels you use.

Adding social media is not really best practice. Your name must be used as a bolded headline at the top of the page. Highlighting the name by either bolding, italicising or underling is a very effective method of getting it noticed and remembered by the recruiter.

The font must be complementary to the size, this is a recommended to be set at
14 to 16 points on average. Capitalizing your name is just as effective as the
currently mentioned guides.

02. State your role in your profile to make an offer they can’t refuse

This is where most contractors fail to communicate their offer. Be as explicit as possible in detailing what you want to do for the client or company in a brief paragraph and what you have already done for other clients.

03. Highlight your skills as much as possible without sounding irrelevant

Highlighting your functional skills is very important to make an impression on your CV. The need to add a lot of information just for the sake of filling up the page must be avoided.

Employees and recruiters look through your resume for a very short amount of time, so you must make an impact. 

The section that involves your work history, education, and your achievements must not be stuffed with irrelevant information. Adding very detailed and recent information helps the employer scanning through your CV understand exactly what it is that you can do for their establishment.

Job roles must be explained thoroughly by the candidate to show aptitude in the field of interest. 

This is done by mentioning the daily tasks or recurring requirements of the work
environment that the subject has operated in. Using as many verbs as you can to detail the tasks as they were respectfully carried out.

There is no substitute for this, the recruiter needs to only see you in a positive light. You need to include not only your skills but how those skills are or were used in your project. For instance, mentioning your role in the IT company you worked for.

Including tasks, for example, like, how you were the web-based Test Lead for a large retail company, responsible for overseeing a team of 10 automated Test Analysts, using loadrunner... and so on.

04. Give an eye-catching presentation that gets attention

The layout of your CV must be attractive to improve the chances of the recruiters scanning effectively over it. You must adopt a CV template that
is easily scannable and reader-friendly.

The format of your CV must be well organized in neat and orderly sections that embody their respective fields and must be labeled accordingly.

There are many fonts that are enlisted in typography that vary in degree of readability to each individual. The use of the font is paramount in increasing your visual appeal to allow for familiarity and "scan-ability" by the recruiter. 

A font like The Times New Roman is the most frequently used format
in most CVs and does little to make your CV standout.

Using a traditional font style like Serif is an important factor in increasing the likelihood of your CV getting noticed by capturing the reader because of it’s stylish appeal. This font also has enough traditional implications attached to it to still deem it fit to adhere to a traditional format.

Serif format styles include Georgie, Old style and many more that you can easily find by using this reference.

Use visual aids like bullets and numbering to draw attention to key points about your expertise and other information that is relevant to the job you are applying for.

05. Keep the pages at a maximum of two pages

The need to outshine the competition is natural, but keeping your
information as brief and tactful as possible improves the chances of
communicating your value to the employer.

Include only information and details that is important to the give the company a clear picture of who they are reading about.

Watch Your Tone

Literally, don’t use jargon on your CV. it paints a certain character to the reader that suggests that you are not ready for the workforce or that you have a way of not adhering to a civilized manner or lacking in professionalism

Conclusion

Creating a valuable CV is not rocket science, but it is very easy to get it wrong, use these simple tips to get the head start on your competition.

The Ultimate Guide: ISTQB Foundation Test Design Techniques

Shop Related Products
DEAL OF THE DAY
ENDS IN
$30.79$50.00
(6)
DEAL OF THE DAY
ENDS IN
DEAL OF THE DAY
ENDS IN
DEAL OF THE DAY
ENDS IN
DEAL OF THE DAY
ENDS IN
DEAL OF THE DAY
ENDS IN
DEAL OF THE DAY
ENDS IN
$23.96
(61)
DEAL OF THE DAY
ENDS IN

What is a Test Design Technique?

For any software development lifecycle to be effective, complete and accurate information is a very essential element. These two elements are what enable your test teams to work together cohesively in a systematic manner.

This, in turn, ensures that your end product matches the expectations of your customers as well as your business in general. The goal of a test design technique is the testing of features and functionalities using effective test case scenarios.

The process of analyzing your organizations requirements from a business point of view goes hand in hand with proper testing. Determining the accuracy of completed information can be done using ambiguity testing techniques, which happens to be one of the top testing design techniques.

Basically, a test design technique's main goal is to determine a proper series of tests from a pool of all the possible tests for a particular system. There are numerous types of software testing techniques. 

Each one of them has their own weaknesses and strengths. Each technique has it's own way of identifying different types of defects.

What Are the Main Categories

So what are the Test Design Techniques covered in the ISTQB exam? Coincidentally, the two main categories covered by the ISTQB exam (Click here to see the difference between ISQI & ISTQB) are the same categories we're going to cover in this article herein below:

01. Dynamic Test Techniques

Dynamic techniques are divided into another three major categories. These are:-

Black Box Techniques: 

This technique is also referred to as specification based or behavioural techniques. This technique uses the software's external descriptions such as customer requirements, design, technical specifications and so on.

In this technique, when the tester doesn't fully understand the software's code or its internal structure they can perform tests using methods such as Boundary Value Analysis (input values are tested at the boundaries), Decision Table Testing, State Transition Testing, Equivalence Class Partitioning and Use Case Testing.

White Box Techniques: 

This type of technique is based on the software code as well as the program's internal structure, testing each of them individually, one after the other. In this type of technique, testers and developers usually have a proper understanding of the internal structure and the program's software code.

Experience Based Testing: 

This test-design technique doesn't concentrate on external or internal structures. The testing is based on experience and the following test methods are usually adopted when it comes to scenarios such as; Fault attack (here errors are anticipated by testers) and Exploratory Testing (application testing without test case documentation).

02. Static Techniques

This technique is all about manually testing your software product. This process is usually started in the early stages of the software development process. This means that it is most likely going to happen during the verification stage. 

The fact that the testing is done without the need to execute the program means that you will not have any need for a computer. These testing techniques can be applied to several forms of documents. These include design documents, source code etc.

What is Boundary Value Analysis?

In the input values' extreme ends is where errors, for the most part , are observed. These extreme values like lower/upper or start/end values are known as Boundary Values

Boundary Value Analysis is the analysing of these Boundary Values. It's sometimes also referred to as Range Checking. Boundary Value Analysis is based on black box testing technique principles and it's main objectives are to locate errors at input domain boundaries rather than finding the errors at the input's center.

Boundary value analysis and Equivalence partitioning are kind of intertwined and can both be used together at different levels of testing. Test cases are derived for the equivalence classes edges.

Each individual boundary contains invalid boundary values as well as valid boundary values. Normally, each boundary will contribute one test case each. Finding defects using this technique can be quite effective and it has the capability of functioning at most levels.

Your previous experiences or needs are what will determine your choice from the multiple test case applicable from invalid and valid input domains, however, you must remember that you will still be required, from each input domain, to select one test case.

This testing technique is quick, easy and a fantastic way to catch input anomalies that may play a major role in interrupting the programs functionality. So, to cut short testing procedures and save time, experts delivering quality management services as well as software testing heavily rely on this method.

Equivalence Partitioning

Equivalence Partitioning is basically selecting single input values from every range from a range of values that is made up of divided test input data. It also happens to be a black box based testing technique and its main objective is the calculation of the effectiveness of certain test cases. 

This technique also has the ability to function at all testing levels from integration, unit, system testing etc.

In this technique, input is split into several different classes. The equivalence class input criteria represented by each individual class. One input is then chosen from each class.

What this method does is it reduces the number of test cases from an infinite number to a finite one. All this while still securing the effectiveness of each selected test case that has been assigned to monitor all the possible scenarios.

A basic Equivalence Partitioning concept is if a range from one to hundred is being accepted by one application, then those inputs can be divided into classes using Equivalence Partitioning principles. Example, design, invalid as well as valid input all get each class to provide them with one test case each.

Final Words On Test Design Techniques

One of the most vital components in the testing phase is Test Case. These are basically the predefined variables and conditions that are used to check whether your application and software is working like it's supposed to.

For a testing process to be successful, then as a competent software developer you will have to learn and understand how to use some of these techniques. Understanding some of these testing methods will make your work so much easier.

Digging Deeper Into Static Testing

Secret Static Testing Techniques that appear in the ISTQB Exam Questions?


Secret Static Testing Techniques ISTQB Questions

What Is Static Testing?

Static testing involves the testing of documents and software without actually running the code. Static testing is the opposite to dynamic testing, which requires the code to be ran. 

According to Guru99, this can be in the form of walkthroughs, peer reviews, informal reviews and inspections.

What Are The Main Uses Of Static Testing?

Testing the software in the initial phase leads to greater efficiency of the code. Static testing offers just that. During the early development phase, the code undergoes various tests and makes sure that the changes in the current part of the code do not affect the other parts.

The main uses of static testing is that it is tested keeping the work environment in mind. During a review process, the software tester engineer can debate whether a certain form of code is applicable in the real world environment or not.

Testing the software at the early stage before implementing it at a large scale saves a lot of time and more impotantly for any project, is the cost saving.

The outputs from this exercise are typically uncovering deviations from code standards, code that will be hard to maintain in the future, design issues and potentially missing requirements.

How Is It Different From System Testing?

System testing requires the code to be ran, whereas static testing does not. It is effectively an offline method to uncover defects early on in the development process.

What Are The Different Roles And Responsibilities?

According to Guru99, there are five major roles in static testing:

  • Moderator
  • Author
  • Scribe
  • Reviewer
  • Manager

Moderator

The moderator coordinates the activities and tracks the progress of these tasks, to ensure a timely completion.

Author

This person, for example a developer, takes the responsibility of fixing the error that has been identified. This does not have to be a developer, the defect could be a design document, for example. In this situation, an architect may be the author in this context.

Scribe

This person will keep notes and minutes of meetings. They are typically members of the Project Management Office (PMO), but does not have to be.

Reviewer

As the name suggests, responsible for reviewing defects and providing feedback, to maintain quality.

Manager

Manages the process and each individual involved in the static testing activities.

What Are The Different Types Of Reviews Involved?

The foremost step of static testing is the review. It is carried out in four stages depending upon its level of formality. The four types of reviews are

  • Informal review - This kind of review includes a single person or two persons who just conduct a top down review of the code. There is no restriction on the number of persons reviewing the code at the informal review level.
  • Walkthrough review - This review consists of a group of engineers who collectively conduct a thorough review of the code before passing it to the next level.
  • Peer review: This includes a review by a person of similar knowledge and caliber who spots the errors and corrects them.
  • Inspection - The inspection is the final level of review in the static testing. It is conducted by some senior software testing engineer who is well proficient in the product requirement and corrects the code accordingly if any flaws are to be spotted.

These four levels of reviews are inter-connected and intertwined, and work in liaison to collectively bring out an error free code.

Final Words on Static Testing

All in all, static testing is the most important part of the software testing process which builds the foundation for a flawless software.

Its importance is based on the fact that it is done manually where there is a greater probability of spotting an error and before executing the code itself.

The early stage of the development of a software product lies heavily with the static testing where each bit of error code is identified and rectified making the software error free.


Is White Box Testing also Called Unit Testing?

white box testing is also called as unit testing


What is White Box Testing?

White Box Testing, which is also commonly referred to as Glass Box, Clear Box, Open Box or Structural Testing, is basically all about testing software solution's internal infrastructure and coding.

Its main objectives are to strengthen security, improving usability and design, as well as strengthening the flow of outputs and inputs. This type of testing examines outputs using a particular knowledge of programming code.

The "box testing" approach often used in software testing has two parts to it. One of them is what we're here to discuss, White Box Testing. It's counterpart is known as Black Box testing and this, unlike Clear Box testing, involves the testing of software from an end user type or external perspective.

In White Box testing, the process is concentrated on internal testing and is all about the inner workings of a certain applications.


The concept of a see through box was what was used when coming up with the term "white box". The white box, glass box or clear box name represents the ability to effectively see through the developed software's outer shell right through to its inner workings. Similarly, the "black box" terms used in Black Box testing represents the lack of ability to be able to see the software's inner workings. This approaches main goal is the testing of end user experiences.

Difference Between White Box Testing and Unit Testing?

So, is White Box testing also called Unit testing? Let's find out. First of all, Unit testing, in computer programming, is a process whereby source-code's individual units are tested to determine whether they are okay for use. An application's smallest testable part is known as a unit. 

A unit, in procedural programming, may be an individual procedure or function. Unit tests are occasionally created by testers that use the white box approach or regular programmers.

Each individual test case is, ideally, independent from one another. Substitutes such as mock objects, method stubs, test harnesses and fakes can be used to help test modules in isolation. Software developers are the ones that typically write and run unit tests with the goal of ensuring the code meet the behaviour and design it was intended for.

In White Box testing, if you want to effectively design test cases, you will require adequate programming skills as well as an internal perspective of how the said system works.

For the tester to determine the appropriate output levels, they will need to choose exercise path inputs through the code. It is quite similar to the testing of nodes within a circuit as is experienced in the In-Circuit Testing process (ICT). Clear box testing is normally done at unit level. 

It is used to test paths between as well as within units. Hopefully now you can see the difference between the two. The two testing approaches are somewhat different in the few ways explained above.

Advantages of White Box Testing

  1. Ability to Automate
    Knowledge of the internal perspectives of the application will in turn allow for unit testing. As was explained earlier, unit tests are all about testing small pieces of units or code with the goal of seeing whether they function and operate as expected.

    The simplicity of these tests makes it possible for programmers and developers to run these tests automatically, to see whether there's anything wrong. Unit tests are actually a very effective way of catching errors in the system.
  2. Its Thoroughness
    White box testing's main tenant is its complete code coverage. The idea here is to basically test as much code as you possible can, which happens to be way more thorough and effective compared to your traditional black box test approach.

    Its thorough nature also gives you a clear testing structure to rely on. Testing must have a clearly defined set of rules and must be engineering based as well.
  3. Time
    Software development will always have deadlines you'll have to meet. This means that during the development process, time is a priority. White box testing helps significantly speeds up testing processes.

    Most often than not, developers can see the bugs early, instantly have a slight idea of what the problem is and how to rectify the situation. It also eliminates the cost of communication between the QA and developer.
  4. Optimisation
    When developers go through the system's code on section after the other, it allows them the ability to condense existing code as well as remove superfluous code sections. Also, removing hidden errors that may have been missed during normal testing will help optimize the code.

Disadvantages of White Box Testing

  1. Expensive
    Due its thorough nature, the cost and time it will take to conduct proper white box testing will usually prove to be very expensive. Even though unit tests may somewhat alleviate this issue, writing the unit tests give rise to an initial investment which will inevitably increase the procedures overall cost.

    Also, large applications can sometimes perform poorly when tested using this approach. Testing each and every individual branch of code can, at sometimes, prove to be virtually impossible.
  2. Missed Cases
    The white box test approach only tests as well as validates features that already exist in the system. If something is missing or the feature is partially implemented, this testing approach will not be able to pick up on this issue. This is where black box testing requirements proves to be superior.
  3. Rapidly Changing Code Base
    Rapid changes of the code base will make automated test cases a waste. Usually, reworks or redesigns will make written test cases useless as well as giving rise to the need for a rewrite.

Final Words on White Box Testing

This type of testing approach can sometimes prove to be quite complex, however, the complexity levels will be determined by the particular application being put through testing.

Small applications, when put through this type of testing, can be completed in a matter of minutes. while larger applications may take several days, and sometimes even several weeks, to complete. White box testing works best during the course of the development of the application software. And with that, hopefully you now know a lot more about White box testing

What is black box testing also known as?

What is black box testing also known as?

What is it Also Known As?

So, what is Black Box testing also known as? Well, most programmers and developers in the IT realm also commonly refer to this method as "Behavioural Testing", or functional testing.

This testing strategy ignores the application or system's internal mechanisms and mainly concentrates on execution conditions and selected inputs responses.

The program's structure is not taken into consideration in this testing technique. It only takes into account the application's functionality. This testing method is also sometimes referred to as functional testing.

In this strategy, the software tester's main concern is how the application is validated and not how it was produced.

Implementation logic or knowledge of programming isn't required for the software testers that are using this technique. It usually applies at the high levels of testing; System Testing and Acceptance Testing. The software that houses inputs and where you expect the known outputs to be is what IT professionals refer to as a black box.

Transformation of known inputs to known outputs is done using the system and usually goes unchecked in this testing technique. The transformation process in this system is also referred to as a black box

This technique is basically functional testing whereby development and program testers concentrate on providing the known inputs and checking whether those known inputs have been obtained. 

This strategy is usually followed while acceptance testing is being carried out. Here the software developer is merely a user and not the end user.

Black Box Testing Techniques

  1. Equivalence Partitioning
    Rework is greatly reduced when you use this testing method. Test conditions are grouped together by software testers so that only 1 condition in each group requires testing.

    This means that all the other conditions probably work if that one particular condition works. A clear example of this is when an uploader is involved, this testing strategy can be used for testing file sizes and types while avoiding the overlapping of every combination.
  2. Boundary Value Analysis
    With this testing strategy, the values boundaries that have been allowed is what is tested.

    This means that if your system only accepts a number from one to one hundred, then you will want to focus your testing on those boundaries, along with the slightly over as well as slightly under numbers. However, testing the in-between numbers is not something you will have to waste your time doing.
  3. Decision Table Testing
    This type of testing is ideal for those situations where you might be dealing with complicated combinations whereby different decisions are produced by various inputs (unlike boundary value analysis and equivalence partitioning).

    Cause and effect tables are something this technique is also called and decision tables can not only, during format testing, make sure combinations aren't missed they can help when clarifying expected outputs.
  4. Error Guessing
    Error guessing sounds just like what it is. A software tester finds errors by guessing where they're most likely going to be.

    However, the term might not be really fair due to the fact that the following factors herein are involved in the decision; understanding of the application, the software tester's own experience, customer issue tickets, test cycle's previous results and risk report.

    Error guessing is vital when you're deciding which application part will get the most thorough tests run on them.
  5. Exploratory Testing
    With this technique, test coverage is maximized by the tester by strategically moving through system actions while closely simulating the behavior of the user.

    This has black box technique written all over it because you're not required to have knowledge of the internal code.

    This means that they are allowed to behave like users but should always keep the tester caps on.
  6. Cause Effect Graphing
    In the cause effect graph technique, effects are set off using a set of causes that have been mapped out through direct graphing. You can think of the causes as the program's input and the effects as the program's output.

    The graph usually shows the nodes that represent effects on the right-hand side while causes are represented on the left-hand side. Causes and effects may have additional constraints. A dashed line will represent a constraint symbol and it is usually in the form of an edge label.

Benefits of Black Box Testing

Here are some benefits of Black Box Testing:

  • You will not need to have programming knowledge nor will you need to have implementation knowledge as well. The software tester can be a non-technical individual.
  • The developers and testers are independent and have no dependencies between them
  • The application's quality is assessed by analyzing expected outcomes with actual outcomes
  • Helps develop software in a way that is much more user-friendly than the techniques used in requirement document for here the application is tested using the user's point of view.
  • Once the system application has been released, the development team can proceed with testing and development team dependency is avoided.
  • The designing of test cases can be done after the completion of the function specifications.
  • This testing technique is very effective when the system application is complex as well large.

Disadvantages of Black Box Testing

  • The absence of programming structure knowledge allows for the risk of leaving unidentified conditions.
  • Practically, manual testing can only test a limited number of possible inputs.
  • If the software tester isn't aware that they might have already tested the application then you will inevitably run the risk of having repeated test results.
  • Not all the logic or paths are usually tested.
  • Achieving one hundred percent test coverage is very difficult when the application happens to be relatively large or if it's one that is of a complex nature.

Final Words on Black Box Testing

The main thing that makes this technique so different from white box testing is the fact that here the software tester does not really have to have programming knowledge and does not also have to understand the code being used in the application's test procedure, however, it's still effective in very many ways. As a modern-day IT professional you'll need to learn how to use this testing strategy if you want to be fully effective when it comes to modern-day software testing.

What is the V Model Used For in Software Testing?

So, what is the V-Model?

Many people ask the question, what is the V Model used for in software testing? Well, the V model is basically the classic waterfall model but in overdrive. Meaning it's an enhanced version. 

In this model before a development life cycle can move on to the next level, they must be verified. This basically means that software testing starts as soon as written requirements have been produced, so testing explicitly commences at the very start of the procedure.

Here, the term testing translates to verification by way of inspections and reviews, which is static testing. What this does is it helps you identify errors early, during the life cycles early stages, and also reduces the potential for defects showing up in the software's code in future.

A corresponding test plan is assigned to each level of the development process, that is, each phase that is being worked on is assigned a test plan for the preparation of product testing in that particular phase. Expected results can be can be defined using these developed test plans.

Test and design activities, in the V model, are constructed with the same level of detail. The model's left hand or downhill part is where software is designed while on the model's right hand or uphill part is where it is all built and tested. Correspondences between the right and left-hand side are defined by the line that runs through the center of the V.

The Verification Phases

  1. Requirements Analysis
    This is the verification processes first step, which is also commonly referred to as the requirements analysis phase. System requirements are gathered analyzing user needs.

    This phase is all about the establishment of what the ideal systems are meant to do. However, it doesn't determine the design nor the build of the software.

    The documents containing the user requirements will normally describe the software system's functional performance, interface, security and data requirements in accordance with user expectations.
  2. System Design
    In this phase, system developers and programmers can study the documents that contain user requirements of the overall business of the proposed application.

    They figure out techniques and possibilities of how to implement the user requirements. The user is informed whenever the requirements aren't feasible. When this happens the document that contains the user requirements is edited and a resolution is quickly found.
  3. Architecture Design
    The software or computer architecture-design phase is also commonly known as the high-level design phase.

    The baseline of architecture selection in this phase is it should typically realize all that consists of each model's functionality level, list of modules, interface relationships, database tables, dependencies etc.
  4. Module Design
    Last on the verification phase list is the module design phase. It is also commonly known as the low-level design phase.

    Here, the system is split into smaller modules or units and the programmer or developer gets an explanation of each of them so that they can start the coding process directly.

The Difference Between The V-Model and Waterfall Model

These two models approaches are quite similar in very many ways, however, the major difference that sets them apart is the testing emphasis in both situations as well as how they are presented.

The V shape representation flow chart helps point out the differences that come prior to coding such as architecture-design and requirements as well as everything else that follows coding which is testing.

While the waterfall model has testing at 1 out of its 5 steps, the V model methodology basically improves on that significantly.

What all this means is that what makes these two models differ is that for the V Model, for testing activities to fully commence, the development process has to have been completed.

The waterfall method technique seems to be continuously iterative while the V model seems to have a clear start as well as an end. The fact that the V model is a simultaneous process is what makes the approaches differ a little bit. 

This happens to be a big reason why most IT professionals prefer to learn, understand and use this method rather than its waterfall counterpart.

Advantages of the V-Model

  • It's very simple and easy to use
  • Covers all the functional areas
  • Testing activities like test designing, planning happens well before you start the coding procedures. This usually proves to be quite the time saver. hence the higher chances of success it experiences as compared to the waterfall method
  • Proactive error tracking. This means that defects are detected at an early stage.
  • Helps avoid defect downward flow
  • In small projects, where understanding the requirements is easy, nothing would do better than the V Model approach system.

Disadvantages of the V Model Method

  • This process isn't ideal for the more complex, fast changing software projects.
  • If your requirements keep frequently changing then this option might not be the best approach for you. You might want to consider something else, like Agile, if that's the case.
  • The implementation phase is where the software is developed, which means that software prototypes are not produced early.
  • If any changes occur midway through the course of the procedure, then the requirement documents, as well as test documents, have to be constantly updated.
  • The client does not get to see intermediate modules and only has access to the end result.
  • Does not scope for risk mitigation and risk management.

Final Words on the V Model

All in all, the V Model method should generally be used when you as a programmer or developer are working on small or medium-sized projects, whereby requirements are clearly fixed and defined.

You need to have a high level of confidence in your client if you want the V Model technique to be completely effective. It's an approach than many people doing work in the IT realm should learn and understand for it is one of those things for the future.

Having this knowledge will prove to do more harm than good. Most experts around the globe will agree with this. And with that, now you're in the know. So if you haven't already, start reading up!

Is this What You’ve Been Told a User Story in the Agile Methodology is?

What is a User Story?

Simply put, a user story is the smallest unit of work in the agile framework that serves as a software system requirement.

Here is an in depth look into User stories and Agile characteristics:

What is an Initial User Story

Initial user stories are much smaller and basically define the interaction between the end user and the system in certain usages and scenarios.

Two types of Initial User stories exist: Formal and Informal.

  1. Formal User Stories:
    These are detailed sentences that help programmers identify the actors (team leaders, members and product owners) and their business value as a requirement

    A formal approach is usually applied with the template:
    e.g. As a (role) I want (something) so that (benefit).

    For example: As a reporter, I want a transport allowances so that I can travel and cover stories.
  2. Informal User Stories: -These are usually high level stories with no specified format in the actual story card. Their simplicity with no rules makes them easily distinguishable from other Agile stories.

What is an Epic?

Looking at the bigger picture after writing your user story lies an epic. This is a much broader chunk of work with a common objective.

A product owner can write a user story that seems really simple at first and puts it under a single sprint. In real sense, it becomes impossible to finish it in time and is then carried forward as an Iteration backlog.

The big user story now an epic, needs to be split into smaller user stories to obtain a better estimate of the sprint

Both the epic and user stories are used to classify the amount of work to be done. Epics differ from each organization.

Giant tech companies have bigger epics as compared to smaller companies whose epics could probably be done within a single sprint.

It’s also important to mention features under agile methodology. Features refer to the strategy layer that user stories try to accomplish.

An epic comprises of several features within which also comprise of a couple of user stories.

What is a Theme?

As a product owner, you may choose to diversify and change to other aspects to maximize on profits. A theme a large area of focus usually assigned to different teams.

A theme may or may not include epics of related proportions. The user stories in a particular team may be totally unrelated thus spanning the organization.

In the same way epics are made of different user stories, a theme is made of different epics. It is important to also mention Initiatives. 

Just like features, initiatives lay the foundation of epics driving them towards a common goal.Initiatives take much longer to complete than epics. Initiatives have structural designs that clearly define the epics and their time frames.

One major characteristic of a theme is that its overly ambitious. It mostly defines the product owners’ dreams and goals in partnership with the stakeholders. They sometimes inspire the teams to create reasonable epics in regression to the original Agile idea.

The themes are used to organize the epics for better processing.

What is a User Persona?

To fully understand what a user persona is, a background check into the world of marketing is in order. Remember a developer cannot create a program without actually knowing about the consumer base and their needs.

In software development, there is a team responsible for researching related topics on the project and give feedback to their teams. This data obtained which usually contains a list of pros, cons, goals and complications are arranged in a manner that reflects a data persona.

A user persona is that a character that is a representation of a user who will interact with the product you are passing. It may be a program, an app or another software entirely designed to target how best your product will perform in the market. 

If your product is a web-based feature, it is expected that it will receive more than one user. Therefore, it is advisable to create more than one use persona to adapt with the increasing number of traffic inside your website.

As mentioned above, a user persona’s initial stages of development usually comprise of market research. These include the use of prototypes that are released to beta testers who have already subscribed into testing of the persona. 

The beta testers give out their general feedback of the working of the program on interviews or focus groups where they share their opinion. Areas of improvements are shared and worked on in the tasks to come.

What is an Acceptance Criteria?

According to leadingagile, they are a group of conditions that need to be met to satisfy and accepted by a user or customer.

They are one of the most important things to get right, from the start, so you know when you have done enough testing to exit the process.

Final Words on User Stories

The incorporation of user stories into software development has made the task more human friendly as opposed to other impersonal methods. Its launching is more thrilling as it contains actual conversations of the user requirements that a client demands.

As part of the team, you may need to complete a user story diligently and fast since anyone in management including the stakeholders can write a user story and add to your collection.

If not properly handled, user stories can pile up to form company backlogs which are enemies of progress.

Before you go, lets delve into another buzz word in Agile, ATDD...

Really? Is this What ATDD in Agile Stands for? The inside scoop!


Really? Is this What ATDD in Agile Stands for? The inside scoop!

What is ATDD?


One framework that has been gradually rising is ATTD, which stands for Acceptance Test Driven Development.

What is ATDD?

​
ATTD is an Agile based developmental framework that involves communication between the business stakeholders, customers, developers and down to the beta testers. 

At the same time, the user stories once executed are passed through several detailed acceptance tests that check on how the system will perform as per the user’s point of view.

The difference between this tool and Scrum is that the latter’s User story is scrutinized by the developer and the product owner and run against several Acceptance criteria to check on its overall functionality. In other words, the tests are done immediately the user stories are written prior to any development work.

Is it also referred to as Story Test Driven Development (STDD)?

In order to clearly define what an STDD is, it is fundamental to learn about the Test-Driven Development (TDD). This methodology involves a short development cycle that is usually repeated until it passes the required test criteria.

It can be very tiresome since the first test is usually targeted to fail and with the subsequent tests geared towards software improvements.

The Story Test Driven Development is subset of the TDD that focuses on higher level acceptance tests. So, in a way the collaborative framework is also sometimes referred to as a STDD though less commonly.

The STTD comprises of four major key components namely:

  1. System specifics: - Written in HTML the document briefly describes how the software is expected to function.
  2. Acceptance Test Fixture: - This reads the system specifics Html to ascertain that the specifications are adhered to
  3. Unit Test cases: - As the name suggests, these are tests specifically run as a unit to make sure the software runs as intended.
  4. Story test results: - With all said and done, a summary of all the acceptance tests and their results are recorded here.

What about Behaviour Driven Development (BDD), is it the same?

According to gaboesquivel, BDD is a subset of the TDD. It is totally different from the collaborative framework in that its software operates on principles like, designing and programming a unit test and ensure they fail before finally implementing and verifying the implementation of the unit.

BDD generally gives a consistent customer-based reception allowing for the inclusion of everybody involved in the process whether they are conversant with developer options or not.

What this means is that as a customer, your needs will be put first before anyone else. Another difference of the BDD is that it focusses on how the system operates whereas the framework in discussion drives at carefully meeting the acceptance tests needed for efficient software functionality.

The tool structures that support the BDD include the JBehave and RBehave developed by Dan North. In these structures, the framework specifies and executes the tests for each scenario bearing in mind the schematics of the scenario.

What are the benefits of ATDD?

The long chain of activities involved in this framework finally pay off in the following ways.

  • Quick solutions to problems arising: - the world of designing and developing software is challenging and filled with setbacks. As such, it requires a tool that can instantly solve some of these problems. It accomplishes these problems by sharing the design and testing it in its early stages
  • Simpler to Manage: - Unlike TDD, this framework is known to incorporate everyone into it meaning, smaller user stories will be assigned to each team to be completed during a shorter timeframe. Smaller builds are usually easier to monitor and manage especially in distribution of resources.
  • Customer focused: - this design puts the needs and preferences of the customer above all else. Through prior research within the market, developers have it easier to do their work especially with the needs of the consumers in mind.
  • Bridges the gap between different teams: - According to qasymphony, it improves the efficiency in the development process. It's collaborative efforts initiate communication between the developers and the stakeholders alike thereby closing the gap.

What are the common Pitfalls?

Like every other software framework, the ATDD isn’t lacking in a few cons:

  • This method is geared towards the customer’s satisfaction which can be a a huge blow to the product owner especially if their interests don’t align.
  • The framework is designed to operate under specific tools like Cucumber that requires mastery and constant practice. As such, this will deter the primary objective of the framework to improve on the collaborative interaction between the stakeholders and developers.

Final Words on ATDD

ATTD is becoming more popular for simple reasons like anyone being able to write and run the acceptance tests. In the ever-digital competitive world, it offers more dynamic and efficient improvements to your product throughout its automation features.

If you can use a method that will get you faster results, why not take the chance?


Should You Really Be Using Risk Poker in Agile?

What Is Risk Poker In Agile?

Risk Poker is an Agile method for risk based testing. Testing is a way of mitigating risk and in Agile Risk based Poker is a method to handle this.

Planning poker is a fun game based method that oversees user story points matched with related functional elements within an agile project.

Risk poker, on the other hand, is a risk based testing method, similar to planning poker, with the difference being, identifying key risks rather than estimation on user stories.

What is Risk based testing?

Software developers have it hard in their work. Their programs often undergo a lot of scrutiny before getting released into the market. Testing is a method used to identify product defects and software problems which are then returned to the developers. The criteria used in testing is solely based on the owner’s specifications.

Products are often at a risk of failing if they do not satisfy the consumers hence a product risk directly related to its failure. A risk based testing is an agile based approach that oversees tests conducted on a product based on the chances that it may not perform well on the market. This may be as a result of defects in its software coding or simply put as bugs or just shift and preferences in general consumerism.

Pressure from the market to deliver the finished product based on the fixed time frame as per the Iterations could also be another factor for product risk failures.

A risk based testing approach also determines the overall impact of failure and the importance of the consequences that may arise from the risk of failure.

What is Product Risk Management?

Different methodologies exist in identifying the gross mismatch between the market expectations and the finished product. Product Risk Management tops the list as one of the most effective way of managing the set of failures that may arise.

Proper analysis of the influencing factors that may result to the negative output of a product constitute risk management.

It is sometimes referred to as Risk mitigation because management tends to control the severity of the outcomes. Risk management is a lengthy process and often comprises of 6 steps.

  1. Identifying the two dimensions of risks: -by focusing on their strengths and weaknesses.
  2. Classification: -organizing and categorizing risks according to the criteria of your own choosing.
  3. Quantify: - you may need to use probability vectors to properly assess the veracity of the impact each risk poses.
  4. Plan: - this involves coming up with quick solutions to the already identified set of categorized risks.
  5. Implement: - you may need to put your idea solutions into good use at this stage and run them.
  6. Reiteration: - the need to repeat the analysis to make sure old risks remain buried and find out new ones.

What is a Product Risk Matrix?

After identifying the most crucial risks to be tested and quantifying them, rough estimates are drawn and numerical values assigned to their impacts.

A product risk matrix is a mathematical representation of the numerical values expressed divided into 4 different regions each representing a different level and type of risk involved.

Other mathematical based methods of graphical representation such as the use of Histograms and tabular like drawing of often complicated values aren’t as appealing as a risk matrix.

One advantage it holds over the rest is that it is very simple and easy to decipher. The horizontal axis can represent the impact of the risk while the vertical axis can represent the chances of occurrence of the risk involved.

As a result stakeholders may not need to rack their brains trying to figure out exact figures as seen in graphs.

What is the objective of Planning Poker?

Planning poker specifically aims at gathering feedback from all the team members on which way to deal with the project backlogs.

Planning poker also eases the overall estimation process by resizing an already existing story before its implemented. For overall success, you need to have self- control in order to determine when best to quit even if you are winning. Setting a limit becomes a bother especially if you are losing with the hopes of performing better.

In Scrum poker, how hard a story is doesn’t have a definitive method of determination. A dynamic process exists with non-definitive methods like vagueness in level of risks and uncertainty involved.

Contrast exists when defined values like countable figures specify planning poker. The most common poker method used is the Fibonacci sequence of numbers which each team member picks to represent a story value. Other examples include

What is Protection Poker?

The internet world is prone to security risks and unauthorized entry into organizations encrypted files. A method to counteract these illegal activities by malicious hackers is an agile based security risk game called Protection Poker.

The security based game is interactive, collaborative and comprises of a collection of ideas sharing past experiences that offer a better exposure for software security.

Brainstorming for solutions to patch up bugs and defective software coding as an overall risk is also included in the game experience. Team members are required to think like a software attacker and close up any breaches within the product’s network.

Final Words on Risk Poker

Quality service delivery is key in the final product, hence the reason we have the Agile Manifesto, for example. A substantial amount of funding should be set aside to assess and analyze the level of risks involved. It may not be possible to completely analyze every risk and test every aspect of a system as per the orders of the stakeholders.

Methods like Risk Poker, a light weight approach crucially takes care of this problem and gives you a more in depth analysis of the impacts of failures, should they arise. All in all, not infringing on your limited budget.

Before you go, lets look at some key Agile Sprint activities...

7 In Sprint Testing Activities You Need to Do to Get Paid

in sprint testing activities

Introduction - The 7 In Sprint Activities

The mobile and web applications development sector has never seen a better platform than the Agile based methods of software development. If you are new to this technological advancement, here is an in-depth analysis of one the methods and terminologies used: Sprint testing.

A sprint goes hand in hand with Scrum as an agile approach to development which is extremely difficult to master. It’s a form of Iteration that involves quite a number of activities and if you aren’t careful to its approach, the overall structure may collapse. Here are what agile testers need to do in a sprint before the project can be termed as 'done’.

1. Test Estimation

Agile may have fully changed software development but testing software proves quite a challenge. The first step usually entails making a rough estimation for each user story created. 

This involves a detailed time account for all the steps involved that provide an overall scope for the entire project. This may include:

  • Identifying references to different user stories
  • Analysis of the requirements of the story
  • Sizing the whole story by giving proportional values depending on the amount of work to be done

A sprint is usually a development cycle. The scope of the estimate should cater for all challenges that may be encountered within the process. Many agile developers often complain about the possibility completing all the testing in one sprint especially if the sprint also includes backlogs from previous designs.

2. Design Test Cases

If you are a product owner, you would definitely employ the best team to meet your conditions and specifications. Test cases simply outline whether the system being tested meets the variables and requirements of the stakeholders.

A common misconception during the design of a test case is that a user story is a requirement. A test case is created manually with regards to the accepted criteria. Each and every product backlog goes into the sprint backlog where it is analyzed. This includes items like epics, features and user stories.

3. Work Closely with your team

Agile methodology is not to be confused with the traditional waterfall approach that run test checks at the final stages of the software development. Instead testing is done through each development stage.

This may increase product backlog as coding may be prone to bugs which may require technical support and knowledge acquisition.

High level descriptive functionalities are often specified under the user stories. Its complexity may prove quite challenging and its therefore important to grace the team with your presence to offer technical support and smoothen the whole process.

You may need to outline the user stories as the simplest increments that need to be built upon. Once the team understands this, you may need to reiterate the features which are usually too general to build. Using this knowledge, high level features need to be refined greatly to be done under a single sprint if possible.

4. Defect Management


Sprint testing often aims at ensuring the final program is devoid of any glitches and runs as smoothly as intended. This may be achieved through defect management which is the ultimate software debugging process.

Simply put, it’s a process that pin points to the exact bug and its location in a program and developing ways to fix it

Defect management involves four easy steps

  • Detecting the source of the error
  • Defect report writing
  • Debugging
  • Preparation of a defect list that includes all defects identified and fixed

5. Add Value in Stand-Up Meetings

Don’t always be the member of the team who is always absent in important group gatherings. It is important to always show up punctual to daily stand-up meetings to review the overall progress report.

In Agile, silence Is never golden. Share your thought and ideas on how to tackle the most troublesome processes encountered. Your focus should be purely on ways to complete backlogs and new challenging projects.

For instance, do not focus on what you have already achieved or what you are intending to achieve as this will come off as a bit of a show off. Instead, psych up the team and provide solutions to general problems they may encounter.

6. Have a clear exit criteria

Even before you start testing, it is important to have a clear, and agreed exit criteria. The "agreed" part is probably the most important. This means you know when you can exit the process, without going round in circles, continuously raising defects, and re-testing.

An example may be, maximum of five sev 3 defects open, after test completion.

7. Work Closely with Stakeholders

One of Agile’s tenets is its dynamic ability to welcome change. You may need to learn a few details of the task at hand through working closely with the responsible authoritative figureheads.

These may include additional funding in cases of limited resources. Coming from a traditional based developer methodology, you may need to learn about the agile based software. There isn’t anyone more knowledgeable regarding your line of work as the stakeholders.

Conclusion - In Sprint Activities

As an agile tester, negative afterthoughts like the sprint being too short should be discouraged. Planning and collaborative effort is usually key to these kinds of problems.

Trying to mitigate problems during a sprint test is usually a bad idea as the problem will keep on recurring. To ensure you reap the benefits of your work, you may need to simply create test automations that will check on regression and performance during each sprint.

Skip to toolbar