Intel startup program #IntelAccelerator https://t.co/fh78LFwP69
from Facebook https://t.co/fh78LFwP69
via IFTTT
Programming & Techno Geek
Asp.Net, MVC, Jquery and Open Source
Saturday, April 25, 2015
Thursday, April 23, 2015
Apple starts kicking Pebble apps out of iOS App Store
Expected move from #apple. Rejecting #ios #pebble apps. http://t.co/HJmCNfTVLq
from Facebook http://t.co/HJmCNfTVLq
via IFTTT
from Facebook http://t.co/HJmCNfTVLq
via IFTTT
Creating an Android Wear Watch Face - Tuts+ Code Tutorial
Creating an #android wear #watch face. http://t.co/i12A1s9znA
from Facebook http://t.co/i12A1s9znA
via IFTTT
from Facebook http://t.co/i12A1s9znA
via IFTTT
Monday, September 29, 2014
Software Testing For Developers
These days
Software touches every aspect of our lives. Not only does it runs on personal
computers like Smartphone or Smartwatches, but it is also present in every
industry.
As vital as
software has become, it's not perfect. After all, it's built by humans, and we
are known to make mistakes from time to time.
To correct
those mistakes in the software world we have software testing.
So what
is Software Testing anyways?
Software testing is the process of analysis
conducted to provide information about the quality of the product or service
under test.
It can also provide an objective, independent
view of the software to allow the business to appreciate and understand the
risks of software implementation. Test techniques include, but are not limited
to, the process of executing a program or application with the intent of
finding software bugs errors or other defects.
Making mistakes it's not the problem everyone
does it, we are not machines that eat pizzas and write perfect code, we (the
developers) are human beings too. We have software testing to address those
mistakes. But the problem starts when developer finishes coding his/her
software and says it is DONE! Without
even considering testing as the part of the development life cycle.
Why I should care about testing?
No matter how
good you are, you are not Chuck Norris!
Sometimes you may end up working with other people's software and APIS that will not always work as
intended, but you will assume that it does, or should, leading to a defects in
your "perfect" case. In any of this cases we need to check everything
and anything we produce because things can always go wrong.
The ABC of testing for Kids!
To get started
with testing let's get a look at smoke
testing, which is the very basic set of fundamental test cases that you will need to run to make sure at
least the basic functionality of the software remains rock-solid. It does not
guarantees software as release worthy but failing a smoke test will confirm
that the software is certainly not
release worthy. Since you want to do
the smoke test on regular basis, it makes sense to automate it.
It is always
challenging to create a piece of a software system that fulfills the client
needs, ready for use. Especially when it should be done in a very short amount
of time, from an idea to a fully functional and tested piece of the
application. Achieving the Definition of
Done is hard but not impossible.
Below are some of the tips that may help you in achieving the impossible.
Focus on your client, think: "Where the
presence of bugs would hurt your client the most?", then let your answers
drive your testing.
Keep the Bigger picture in mind: While testing
needs to be meticulous and thorough, there is no point being fanatical about
it. If you get bogged down by trying to achieve high coverage over one part of
the system, you might end up not testing some other parts at all.
Increase communication with client to avoid
misunderstandings: In the meeting, discuss all points whichever unclear or need
some additional information. These communications will resolve the problem
easily and quickly and will help to avoid any misunderstandings. Once you
discuss these points, it should be communicated over email as well. Basically,
simple rule is that don’t keep verbal communications.
Start writing early test cases: If you start
writing test cases during early phase of Software Development Life Cycle then
you will understand whether all requirement are testable or not. While writing
test cases first consider Valid/Positive test cases which cover all expected
behavior of application under test. After that you can consider invalid
conditions/negative test cases.
Make a Test
Plan: Start testing
by first writing a Test Plan. It's a
document describing the testing scope and activities. It is the basis for
formally testing any software/product in a project.
Start with obvious and simple tests:
"Make everything as simple as possible,
but not simpler" -Albert Einstein.
If any such
case fails, developers will want to know it sooner rather than later. While you
need to check invalid and unexpected input, check valid and expected input
first. Make sure you do sufficient testing i.e. unit and integration testing
before you release your code to the client.
Note that
debugging is not software testing.
Start testing with positive mindset: Start with a
positive attitude and don’t think that there will not be a bug in the code. If
you are testing application with intention of finding bug then you will
definitely get bugs in the code.
Test broadly before you go deep: Check all
parts of the program quickly before focusing. Start with core/primitive
functions. You may have to fix those before you test the rest.
2 heads are better than 1:
Involve someone, may be a team mate to
assist you with your testing. In this way there is a good chances that you may
be able to get better results.
Happy Coding and Testing!
Saturday, March 10, 2012
Tuesday, February 28, 2012
Write less do more, Juice UI for Asp.Net WebForms
At MVP Summit that was held today, Scott Hunter
commented about an open source project “Juice UI”, it is more or less like the
ajax control toolkit for asp.net except that Juice UI is a collection of Jquery components, that
is targeted for Webforms developers. To use it you need to install Juice UI
Nuget Package to your project, right click on project reference and click
Manage Nuget Packages and search for Juice UI.
Official Website: http://juiceui.com
Controls List at: http://juiceui.com/controls
When the installation completes you will get some new
scripts files in your script folder.
Also in web.config you will get something like this…
Now on the aspx page add a script manager, a textbox
and then a juice ui autocomplete.
Here I have defined the Minimum length of autocomplete
to 3 and source to some random data
Note: targetcontrolid must match the id of the textbox.
Now the autocomplete is ready for action..
Sunday, February 26, 2012
TPL or Task Parallel Library (Parallel.Invoke)
TPL or Task Parallel Library:
It is a set of public types and APIs, which are under the namespaces of the .Net 4 Framework
System.Threading
System.Threading.Tasks
In short the purpose of the TPL is to make developers more productive by simplifying the process of adding parallelism and concurrency to applications.
Pros:
The TPL scales the degree of concurrency dynamically to most efficiently use all the processors that are available. The TPL handles the partitioning of the work, the scheduling of threads on the ThreadPool, cancellation support, state management, and other low-level details.
It can maximize the performance of your code while focusing on the work that your program is designed to accomplish.
Cons:
Not all code is suitable
to work in parallel; for example if i have a loop that iterates few times or it
performs a small amount of work, the overhead would be visible in the
performance of the application, causing it to work slower as compared running
the code in serial.
It adds complexity to
the program.
Based on my experience
the threadpool culture may not match the culture of applications that were
upgraded from previous version of .net framework.
To use TPL in our code
first we will add both namespaces:
using System.Threading;
using System.Threading.Tasks;
First let's look at Parallel.Invoke method
try
{
Parallel.Invoke(
() =>
{
SomeMethodA();
},
() =>
{
SomeMethodB();
},
() =>
{
SomeMethodC();
}
);
}
catch (AggregateException
e)
{
string
AggregateError = e. InnerException.ToString();
}
Now, what happens here
is that SomeMethod A, B and C will run concurrently, if you look in the catch
exception I used AggregateException, in TPL you will probably use it more
often. Basically it is used to consolidate
multiple failures into a single, throwable exception object.
Friday, January 20, 2012
Subscribe to:
Posts (Atom)