RSS
 

Archive for the ‘Uncategorized’ Category

#30: Different Software Design Life Cycle (SDLC) Models

11 Dec

Software Design Life Cycles (SDLC) Models:
- Waterfall Model
- Incremental or Iterative Development Model
- Prototyping Model
- Agile Methodology (Agile methodology has various derivate approaches, such as Extreme Programming, Dynamic Systems Development Method (DSDM), and SCRUM. Extreme Programming is one of the most widely used approaches. Test-driven development is one of the core practices of Extreme Programming. We talked about Test-driven development in post#21.)

For more information about above mentioned different software design life cycle models, please read here.

The above article describes Extreme Programming in details, but doesn’t mention much about SCRUM. To understand how SCRUM works, please read “How to implement Scrum in 10 easy steps“.

What are the differences between SCRUM and Extreme Programming?
1. Scrum teams typically work in iterations (called sprints) that are from two weeks to one month long. XP teams typically work in iterations that are one or two weeks long.
2. Scrum teams do not allow changes into their sprints. A new feature of equivalent size can be swapped into the XP team’s iteration in exchange for the unstarted feature.
3. Extreme Programming teams work in a strict priority order. By contrast, the Scrum product owner prioritizes the product backlog but the team determines the sequence in which they will develop the backlog items.
4. Scrum doesn’t prescribe any engineering practices; XP does.

For more information about the differences between Scrum and Extreme Programming, please read here.

 
No Comments

Posted by Jia Qi in Uncategorized

 

#2: Basic testing ideas

07 Apr

If you are experienced tester, then you may want to skip this posting. If you are not, and looking forward to become one, then please read:

How does the testing world work?

First, you need the spec, which is the requirement of the software or website you will test. We will use a general term – application (app) – to describe software and/or website.

Second, you need to write your test cases based on these specs, but in a more expanded way, test from different angles with different data.

Third, if you find bugs, of course you will, log them into the bug tracking system.

Fourth, after the developer fixed your bugs, verify them, and expect to reopen some of them. If some of the bugs are reopened, you will need to verify them again.

How does automation testing fit in the testing world?

Not all the applications are suitable for automation testing. If an app undergoes drastic changes that means most time will be exhausted in maintaining the scripts. These apps are then considered bad choice for automation. If the test cases need to be retested in different builds, or the same test cases need to be executed for many data, then I would say you should automate them to save you time and energy.

There are different kind of testings, such as unit testing (most time done by developers), integration testing, validation testing and regression testing. Automation testing is designed for regression testing.

Before you make the testing automated, I think you should at least test the app manually at least once. Beside finding bugs, the manual testing can also help you to get familiar with the app. In this way, when you write the automation test scripts, it will be easier for you.

Will automation testing find a lot of bugs?

No, most bugs will be find during manual testing, as I said above, automation testing is designed for regression testing, and we are not expecting (m)any bugs in regression testing.

However, if you really want to use automation testing to find bugs, there are 2 suggestions:

First, run all the automation test scripts in a batch with random orders.
Second, run the automation test scripts with a lot of different data.

Why bugs can be found in the above 2 cases? This is because it is almost impossible to do the same thing manually.

 
No Comments

Posted by Jia Qi in Uncategorized