AddThis

Bookmark and Share

Sunday, August 8, 2010

Startup testing part 1


I am starting here my new sharing “Startup testing part 1” for those who likes to start career of software testing. This will give a basic idea about testing and glimpse of it.

Definition:

  • Testing is a process of evaluating a system by manual or automation means and verifies that it satisfies specified requirements or identifies difference between expected and actual result.
  • Quality provides customer satisfaction for the first time and every time. It is the factor affecting an organizations long term performance and improves productivity and competitiveness.

Why Testing?

  • Software testing is important as it may cause mission failure, impact on operational performance and reliability if not done properly.
  • Deliver quality software products; satisfy user requirements, needs and expectation.
  • Uncover defects before the products install in production, it can save a huge loss.

Participants in Testing:

  • Software Customer
  • Software User
  • Software Developer
  • Tester
  • Information Service Management
  • Senior Organization Management

Some Recent Major Computer System Failures Caused by Software Bugs:

  • According to news reports in April’04 software bug was determined to be a major contribution to the 2003 Northeast blackout, the worst power system failure in North American history. The failure involved loss of electrical power to 50 million customers, forced shutdown of 100 power plants, and economic losses estimated at $6 billion. The bug was reportedly in one utility company’s vendor supplied power monitoring and management systems, which was unable to correctly handle and report on an unusual confluence of initially localized events. The error was found and corrected after examining million of lines of code.

  • In India September ’04 Aircel Cell Company got a defect in their prepaid subscriber billing system. Result nearly one month we got all free outgoing. They found the defects earlier but correcting the defects itself it took long time. I don’t have the exact official estimation of loss. But I made all ISD call nearly 100 hours free of cost.

  • A software bugs in a Soviet early warning monitoring system nearly brought on nuclear war in 1983, according to news reports in early 1999. The software was supposed to filter out false missile detections caused by Soviet Satellites picking up sunlight reflections off cloud tops, but failed to do so. Disaster was averted when a Soviet commander, based on what he said was a’...funny feeling in my gut’, decided the apparent missile attack was a false alarm. The filtering software was rewritten.  

Software Development Life Cycle:


  • Requirement- SRS (Software Requirement Specification)
                             SRAS (Software Requirement & Analysis Specification)
                             FS (Functional Specification)
  • Design- HLD (High Level Design)
                    LLD (Low Level Design)
  • Coding- According to code format
  • Testing
  • Implementation
  • Maintenance

Testing Economic & Cost:

Traditional Test
Continuous Test
Accumulated Test Cost
Accumulated Error Remaining
Development Cycle
Accumulated Test Cost
Accumulated Error Remaining
0
20
Requirement
10
$10
0
40
Design
15
$25
0
60
Code
18
$42
$480
12
Testing
4
$182
$1690
0
Production
0
$582

Testing:
Static (Review)
Dynamic (Execution)

Static:
       Only review not execution of the program

Dynamic:
Structural (logic, white box testing, developer)
Functional (no logic, black box testing, tester)

What is Test Plan?

·        Road map for the entire testing activity

What are Test Cases?


·        Set of procedures which we execute in our system to find defects

Primary Role of Software Testing:

·        Determine whether the system meets specification (Producer View)
·        Determine whether the system meets business and user needs (Customer View)

Role of Tester:

    • Find defect not correcting the defects

What is Defects?
    • A defect is a variance from a desired product attributes
    • Variance from customer/user expectation

Classification of Defects:
  • Wrong (ER! = AR)
  • Missing (Missing some point)
  • Extra (Extra point)

Regression Test:

Tester-> 1000-test cases-> 100 defects-> developer-> tester

Functional Testing:

  • Structure of the program is not considered
  • Test cases are decided base on the requirements or specification of the program or module
  • Hence it is called “Black Box” testing

Structural Testing:

  • Concerned with testing the implementation of the program
  • Focus on the internal structure of the program
  • The intention of structural testing is not to be exercise all the different I/P or O/P condition but to exercise the different programming structure and the data structure of the program

Testing Levels:
  • Unit Testing
  • Integration Testing
  • System Testing &
  • Application Under Test (AUT) or
User Acceptance Test (UAT)

Unit Testing:

  • LLD
  • Module Testing
  • Individually Testing
  • White Box Testing
  • Developer job

    1. Test each module individually
    2. Follow White Box Testing (logic of the program)

Integration Testing:

      • LLD+ HLD (Developer+ Tester)
      • Communication+ Data Flow
      • WB+ BB= Gray Box
      • Integrate two or more module i.e. Communicate between modules
      • Follow a White Box Testing (testing the codes)

System Testing:

  • Confirms that the system as a whole delivers the functionality originally required.
  • Follow Black Box Testing
  • Functionality Testing, Tester job

User Acceptance Testing:

  • Building the confidence of the client and users is the role of the acceptance testing phase
  • It is depend on the business scenario
  • Red Box Testing (crucial)

12 comments:

  1. I wouldn't even categorize this as a blog post. It's more like BAD notes. There is a reason I said "bad". As you begin to read the post you are presented with the most uninteresting and flawed definition of software testing, i.e. testing "verifies that it satisfies specified requirements or identifies difference between expected and actual result". There are so many half-truths and wrongs in this post that I don't think I have the patience to describe them all out in this particular comment.

    Take a look at the $dollar$ estimate, pathetic. Then there is the static vs dynamic, test cases, roles, etc; pretty lame. No doubt these are teachings of various certification trainings. If I read this when starting my testing career, I would have considered dropping out.

    Now it would have been another matter if you had used these points or definitions and pondered and questioned them. That would have made this post interesting and worth reading. Otherwise you are basically writing for people who are not thinkers. We don't need those people in testing!

    ReplyDelete
  2. Sajjad Bhai,

    You are true. These are from testing certification courses and I have not just copied and pasted rather while studying I have taken notes and after completion of my course I have made documents.

    My intention here to share the basic things on testing and still you know people might not think the same of it; there are people with examples dislike “certification contents” and still you know certification won’t stop. And I will not say “certification is the best way to learn; but it added values and beside this there are lots of ways to learn. I know we have passed enough years on testing to expect something but not this type of writings. But I thought these basic ideas will help the beginner and I know this is not all. Definitely I will try to share things from my experience; it’s not like always I will write from certification contents.

    While working in testing there will so many things to learn to cope up with the Industry and upgrading oneself for his own career.

    Still if you disagree with me; maximum I could write in all my post “this writing has essence of certification contents”.


    Thanks.

    ReplyDelete
  3. I don't see how your post will help testers. Lets take the definition of testing for example. Do you really think testing is about matching requirements or expected results? If not then why trivialize your craft like that? And then these testers wonder why they are not respected at work.

    ReplyDelete
  4. Sajjad Bahai,

    I do again agree with you; this is not the perfect definition of software testing but partial. Because if I like to give the definition of testing then I have to cover more points but I have added only one; even then too others may feel that’s not enough or disagree some sorts of points.

    Again I believe if I have given to a child with full meals that a mature person can have then there will be problem that’s what the step wise happening in the world all the way all the sectors.

    I have followed that and then if anyone thinks “software testing definition is one line? May be not and I want to learn more of it”. Then the person will pursue to know more and there are huge resources for this definition itself. May be I will write the proper/full explanation of each section one day.

    Any kinds of learning starting from short and then gradually get the broader view. One cannot be master within a day and if someone gets the broader view of things might not learn and will flee and I guess you will not like that. Let give someone idea may be partial and start and then one day will be the master of it. I am sure I have not written something that will make anyone master; Cem Kaner, James Bach, Rex Black, Pradeep Soundararajan, and you are there for it.


    Thanks.

    ReplyDelete
  5. You have not really addressed my question regarding your thoughts on what is testing.

    You have to ask yourself who you want as readers for your blog. Boneheads who don't want to think and basically thank you for whatever scrap you throw at them. Or intelligent readers (includes freshers) who would want to invest time reading your blog and making their own comments so both of you can learn from each other.

    The kind of testers you want to attract, who you think would run away with fear of indigestion, is not the kind I care about. I think our craft has too many of these wrong people.

    In any case, if brevity is what you believe in why choose a pathetic misguided definition of testing, that most delusional testers follow just to be disrespected. Here is a one liner that is much better and explains the kind of testing that others would value, "Questioning a product in order to evaluate it". This is even shorter.

    And how about this one which is even more descriptive, "Testing is an empirical, technical investigation of a product, done on behalf of stakeholders, with the intention of revealing quality-related information of the kind that they seek."

    How about even adding some source links to the above if you want to just leave it to that so that the smart ones go look it up.

    Testing is not about verifying and validating. That's the least interesting or least useful part of it. Yet that is what you choose to highlight. That strikes me as very odd.

    ReplyDelete
  6. Sajjad Bhai,

    Finally I am accepting your comments and from the next posting itself I will update my old writings before posting.

    Sorry for the incovenience for all and keep it up.


    Thanks.

    ReplyDelete
  7. Now this makes me excited to read your upcoming posts!

    ReplyDelete
  8. Could you to outline approximately common salary of testers in India?

    ReplyDelete
  9. @Rett Pop

    Sorry Dude, I have no idea about it and one more thing; I am from Dhaka, Bangladesh.

    ReplyDelete
  10. Thanks for your post. I am having difficulties in understanding the role of developers and the testers in testing. Specially who should write unit tests?and who should write the test cases? Thanks in advance.

    ReplyDelete
  11. Wow. You have got a great knowledge in this field. I wanted to know about agile testing. I have heard it so many times but is not able to get it well.

    ReplyDelete
  12. You can reach me here: jshaiful@gmail.com

    Thanks.

    ReplyDelete