Software applications are today’s integral part of human
life and plays a vital role in our daily life. We humans are addicted to the
use of software all through the day 24X7. No matter where we are and what we
are doing. The cell phones we use, the car we drive, the home appliances we use
at home for our daily needs are in some form or the other driven by software
inbuilt with in the device.
Software used involves the user’s emotions and experience
highlights the, affective, meaningful and valuable aspects of human-computer interaction. Additionally,
it includes a person’s perceptions of the practical aspects such as utility,
ease of use and efficiency of the system.
Software – its prominence:
Users don’t have to buy what is tested. Instead,
they get forced to use it the way it works.
The important
aspects of software are
- Accomplishments – When using the software, people need to feel a sense of accomplishment without disrupting the momentum of their lives. They need to feel like they are getting something done that was otherwise difficult. They need to do this without giving up any part of their life. Example: Can they accomplish something while waiting in line?
- Connection – When using your software, they should be motivated to connect with people they actually care about (e.g., not Facebook friends). These connections should be enriched in some manner. Example: Were they able to share it with Mom? Did they talk about it over Thanksgiving dinner?
- Identity - When using the software, they should feel like they’re not alone. They should be asking themselves, “Who am I?”, “Do I fit in with these other people?”. They should be able to share their identity with joy.
- Sensation – When using the software, they should experience a core sensory pleasure. Examples: Can they interact with it in a fresh way via some new interface? Can they see or hear something delightful?
The User expectations in short:
- Modern users have no tolerance for anything but the most amazing experience.
- The app should help them get from thought to action, nothing in between.
- Users expect software to gather all the data they need and think for them.
Why software Testing
Software testing is a process used to help identify the
correctness, completeness and quality of developed computer software.
With that in mind, testing can never completely establish the correctness of
computer software.
The definition of testing is "the process of
questioning a product in order to evaluate it", where the "questions" are things the tester tries to do with the
product, and the product answers with its behavior in reaction to the probing
of the tester.
Testing helps is Verifying and Validating if the Software
is working as it is intended to be working. This
involves using Static and Dynamic methodologies to Test the application.
Because of the fallibility of its human designers and its
own abstract, complex nature, software development must
be accompanied by quality assurance activities. It is not unusual for
developers to spend 40% of the total project time on testing.
Testing objectives include
1. Testing is a process of executing a program with the intent of finding an error.
2. A good test case is one that has a high probability of finding an as yet undiscovered error.
3. A successful test is one that uncovers an as yet undiscovered error.
1. Testing is a process of executing a program with the intent of finding an error.
2. A good test case is one that has a high probability of finding an as yet undiscovered error.
3. A successful test is one that uncovers an as yet undiscovered error.
Taxonomy
There is a plethora of testing methods and testing
techniques, serving multiple purposes in different life cycle phases. Classified
by purpose, software testing can be divided into: correctness testing,
performance testing, reliability testing and security testing. Classified by
life-cycle phase, software testing can be classified into the following
categories: requirements phase testing, design phase testing, program phase
testing, evaluating test results, installation phase testing, acceptance
testing and maintenance testing. By scope, software testing can be categorized
as follows: unit testing, component testing, integration testing, and system
testing.
Software testers –
The thought process
- If you want to be excellent at testing, you need to use System 2 Thinking. Testing is not a straight forward technical problem because we are creating stuff that is largely invisible.
- Don’t plan or execute tests until you obtain context about the test mission.
- Leaping to assumptions carries risk. Don’t build a network of assumptions.
- A tester’s job is to preserve uncertainty when everyone around us is certain.
- Avoid assumptions when:
o
critical things depend on it
o
when the assumption is unlikely to be true
o
the assumption is dangerous when not declared
Huh? Really? So? (James
Bach’s critical thinking heuristic)
o
Huh? – Do I really understand?
o
Really? – How do I know what you say is true?
o
So? – Is that the only solution?
The art of being
happy at work
I came across an article
to make ways to make my day
funnier and more adventurous. Came across an explanation on the word F.L.O.W
FLOW in psychology
is the mental state, where a person loose sense of time by doing something very
interesting. So when you feel that way, that’s a full happiness at work.
People
who experience flow describe it as “a state of effortless concentration so deep
that they lose their sense of time, of themselves, of their problems,“ and
their descriptions of the joy of that state are so compelling that
Csikszentmihalyi has called it an “optional experience”
everybody experienced that state in some kind of
activity. Kids like to play video games a lot losing sense of time.
F
|
Focus
|
Focus on something in particular task, goals achievements
|
L
|
Learning
|
Learn Something New
|
O
|
Optimize
|
Keep Balance between Boredom and anxiety areas
|
W
|
Wow
|
Enjoy Every Single Moment
|
F.L.O.W
|
A state of effortless concentration by doing something interesting
|