To choose testing during software development, Bugraptors always uses the Continuous Integration and continuous deployment to decide the way of testing i.e: Automation or Manual. It is very important to decide the testing during software development to ensure quality meeting project constraints.
2. Introduction
Software systems are an integral part of life from business applications
to consumer products. Quality has become a major paradigm these
days. Software testing itself is a vast area to be classified. Primarily,
testing can be performed in two ways; either manually or automated
testing. It is very crucial to decide when to choose manual or
automation testing during software development to ensure quality
meeting project constraints. Hence, latest deployment methods are
required to provide well-functioning software in production as
frequent as possible. This is where Continuous Integration and
continuous deployment comes into use.
3. What is CI/CD?
It means continual integration of the code to the relevant branch of
working project. It implies that "integration tests" are run at every
code change while Continuous Delivery means that every change
that passes tests are automatically deployed.
For instance, this technique can be implemented through agile
model in which teams work on small increments and deploy it to
live environment after each sprint.
Unfortunately, this approach introduces problems due to
troublesome testing strategies followed in numerous
companies. Some organizations emphasize on automation and fully
avoid manual testers. Others concentrate on automation testing but
not allowing testers to get involved in test strategies. Therefore, a
moderate approach needs to be followed to take full advantage of
automation testing.
4. Verification vs. Testing
The test strategies created in a CI-environment where focus is on
automation, mostly guarantees checking or verification and
negligible testing (as in exploration). Hence, testers could not find
something out of the box. Good testing includes both.
In addition to this, focusing on automation checks fulfilling the
acceptance criteria when developing a new feature will only enable
you to reach a small part of the way towards good quality. It can
seem easy to develop and check (not test) the functionality. In
addition to this, it is thought to perform the same tests repetitively.
But they are failed at finding one important scenario which could be
the most valuable one. On the flip-side, if focus is on finding things
which have not been considered by the team yet would ensure great
quality.
5. Advantages of manual over automation
It is impossible to test each and every scenario using automated
tool. When an application or product is arrived for testing; testing
team starts planning its software testing life cycle activities. A
number of test cases are created for the application beforehand to
carry out the testing. Some test cases would be non-repetitive which
might be complex and too costly to automate. There are other tests
which are repetitive and are executed every time the build is
received. It could be functionality that must be in a working
condition at all times. Out of all those, the desired test cases which
we want to automate are filtered.
6. Furthermore, only a fraction can be automated out of the planned
ones because automation is time consuming and difficult
task. Apparently, it will not provide full assurance to the
stakeholders in context of quality.
In addition to this, automation testing cannot replace human
implications, intuitions and reasoning. Only a known set of test
cases are automated in real life scenario. The most of test
automation is performed on checking one view of the system.
Testers have the tendency to design repeatable tests on items that
are familiar.
This repeatable checking finds things that were conjectured to be
known. These items can probably change as time passes with the
system development. In this area specifying the expected outcome
correctly is feasible.
7. Exploring beyond the specification will recognize things to be
explored and learnt more about. This might include areas for
research, particular risks or just a desired idea to understand. It is
not possible to clearly state outcome before examining here.
Moreover, it is unlikely to automate such things.
Testers have the tendency to discover new things while
exploring/testing.
Occasionally, testers identify something surprisingly valuable.
Similarly as mentioned before, such scenarios can also not be
automated. Automation is majorly performed on the known things.
Hence, it would not be ok to ignore things that are valuable and not
known until enough time is spent on testing or exploring.